我是SVN Tortoise的新手,我在理解修订版和外部版的组合方面遇到了一些麻烦。
我正在研究的SVN项目有几个外部。其中一些是标签,一些指向其他SVN库项目的主干。
当我尝试回滚并查看该项目的较旧版本时,我看到的内容似乎并不像几周前那样。指向库项目主干的外部不会回滚,但包含最新的更改。
是否所有外部都指向其他项目的标签,如果不是,那是否意味着您无法轻易获得先前版本的快照?
答案 0 :(得分:4)
当我尝试回滚并查看该项目的较旧版本时,看起来我检查的内容与几周前不完全相同
是。如果外部定义没有PEG修订版,那么SVN就会按照#34;对于历史状态,没有任何额外的启发式,例如"哪个版本 HEAD用于主项目"中的修订版REV,并使用今天的数据
所有外部都应指向其他项目的标签
他们可以,不应该。但您也可以阅读SVN中的PEG |操作修订,并在可变目标中使用PEG规范(并在目标中出现新提交时更新定义)
只需比较这两个定义
Properties on 'tags\1.0.1':
svn:externals
-r 2 https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib@2 lib
即使/subversion-trouble-shooting/trunk/lib
稍后会有其他提交,具有此类定义的外部项目将始终获得修订版2
Properties on 'trunk':
svn:externals
https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib lib
对于此定义,旧版本的trunk不会自动恢复lib
的现有状态,您必须手动执行
如果他们不这样做,是否意味着您无法轻易获得以前版本的快照?
绝对是(如果"轻松"因为你在超级回购中是纯粹的svn up REV
)