我有一个很大的源代码树(> 2 GB,WINCE构build树),我想开始使用Subversion进行pipe理。 到目前为止,已经通过保留树的多个副本来pipe理“版本控制”,并使用Beyond Compare来发现差异。
我看到使用Subversion的最后一个绊脚石是它将文件时间戳修改为提交时间。 这使得“比较比较”比较耗时更多,因为您必须执行二进制比较来查找更改。
我已经看过Subversion源代码树的元数据版本控制分支,但我宁愿不尝试将2006年的代码合并到当前的svn源代码中。
谢谢,
戴夫
有一个svn配置选项,用于控制存储库中时间戳的存储方式:
use-commit-times
通常情况下,你的工作副本文件有时间戳,反映了他们最后一次被任何进程触及的时间戳,无论是你自己的编辑器还是某个svn子命令。 这对于开发软件的人来说通常是很方便的,因为构建系统经常将时间戳看作是决定哪些文件需要重新编译的一种方式。
但是,在其他情况下,工作副本文件的时间戳有时会反映上次在存储库中进行更改的时间。 svn export命令始终将这些“最后提交时间戳”放在它生成的树上。 通过将此配置变量设置为yes,svn checkout,svn update,svn switch和svn revert命令也将在它们所接触的文件上设置最后提交时间戳。
请参阅运行时配置区域和配置选项
顺便说一句,超越比较石头! 我使用所有提到的svn diff,TortoiseMerge和BC2。 BC2是最完整的。
Subversion会做比较比甚至超越比做会更快
如果你使用tortoiseSVN你甚至可以使用无法比较的外部Diff工具。
经过快速检查:如果您从工作副本提交文件,它将保留时间戳(上次修改时间)。 即使在更新之后(没有对该文件进行进一步的远程更改),该文件也会保留上次修改的时间戳。 这个测试是在Subversion版本1.4.6的Linux上进行的。
如果你更新一个文件,那是远程改变它得到一个新的时间戳。
所以你保留最后修改的时间戳。
此外:为什么你想使用“比较”比较。 您将不再需要保留不同的目录以反映不同的版本。 而Subversion有自己的差异特征来为修订组合准备差异。
是否需要在每个客户端的m / c配置文件中将“use-commit-times”设置为yes或者是否有任何选项将其集中在Subversion安装目录中?