我需要一个像Subversion一样工作的版本控制系统,但能够保留每个文件的“修改”时间戳(日期)。
我们需要对安装项目进行版本控制。在这种情况下,输入文件(dll / exe)保持其时间戳是不明智的。
这样做的最佳工具是什么? (操作系统:Windows)
更新:
以下是我希望它做的一个例子:
我们目前的解决方法是压缩每个dll(修改后的日期保存在zip中)但我更喜欢更简单的方法。
答案 0 :(得分:2)
Subversion具有use-commit-times
选项,这使得本地副本使用每个文件的最后提交时间的时间戳。此外svn export
始终设置上次提交时间。
答案 1 :(得分:1)
在git中,“提交”指向单个树,将其标记为项目在某个特定时间点的样子。它包含有关该时间点的元信息,,例如时间戳,自上次提交以来的更改的作者,指向先前提交的指针等。
答案 2 :(得分:1)
您可以尝试使用自己定义的subversion属性来存储时间戳。如果更改此时间戳,则文件的“已更改”状态可以提交。您可以使用命令行访问属性的内容。此外,每个文件的时间也不同。
但是,您可能需要一些小的附加脚本来设置/读取属性
答案 3 :(得分:0)
这是颠覆开发者对雷达的要求之一,但尚未实施。正如'Nerdling'所暗示的那样,git或mercurial可能是更好的选择,但你在Subversion中有几个选项(因为你正在寻找像SVN这样的东西):
SVN网站上有一个讨论和perl脚本有一些解决方法。它在初始提交时保留了修改日期...此后,它使用提交时间,但您可以修改脚本以使用修改时间。它是perl,所以你在Windows上的里程可能会有所不同(我没有在windows上使用cygwin和/或perl):http://svn.haxx.se/users/archive-2006-10/1345.shtml
您可以在提交后更改每个修订的svn:date属性以匹配修改的时间。这将改变提交中每个文件的修改时间,因此,如果这是不合需要的,请确保自己提交二进制文件:http://svnbook.red-bean.com/en/1.5/svn.ref.properties.html和http://svnbook.red-bean.com/en/1.5/svn.advanced.props.html
我认为Windows上的Tortoise SVN可能有一些选项来处理在提交时设置date属性。我只听过这个谣言,而不是用它,所以这是道听途说: - )
这些都不是特别优雅,需要你付出一些额外的努力,但如果你想坚持使用SVN,它们将会起作用,这肯定是一个很好的产品。如果您决定探索另一个SCM,如git或mercurial,请注意您可以像SVN一样使用它们,并忽略其他功能以帮助简化转换。