我是SVN Tortoise的新手,在理解修订版本和外部外观的组合时遇到了一些麻烦。
我正在研究的SVN项目具有多个外部组件。其中一些是标签,一些指向其他SVN库项目的主干。
当我尝试回滚并查看该项目的较旧版本时,看来我签出的内容与几周前的情况不完全相同。指向库项目主干的外部对象不会回滚,但包含最新的更改。
是否所有外部对象都应指向其他项目的标签,否则,是否意味着您无法轻松获得先前修订的快照?
当我尝试回滚并查看该项目的较旧版本时,看来我签出的内容与几周前的内容不完全相同
是。如果外部定义中没有PEG修订版,则SVN会针对历史状态“按原样”运行,而无需进行任何其他试探,例如“哪个修订版是 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
Run Code Online (Sandbox Code Playgroud)
即使/subversion-trouble-shooting/trunk/lib
以后会有其他提交,具有此类定义的外部项目也将始终获得修订版2
Properties on 'trunk':
svn:externals
https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib lib
Run Code Online (Sandbox Code Playgroud)
对于这个定义,旧版的trunk版本将不会lib
自动恢复现有状态,您必须手动完成
如果他们不这样做,是否意味着您不能轻松获得以前版本的快照?
绝对可以(如果“轻松”对您而言纯粹svn up REV
是超级回购)