使用外部检查旧版本

Q-b*_*uit 1 svn tortoisesvn

我是SVN Tortoise的新手,在理解修订版本和外部外观的组合时遇到了一些麻烦。

我正在研究的S​​VN项目具有多个外部组件。其中一些是标签,一些指向其他SVN库项目的主干。

当我尝试回滚并查看该项目的较旧版本时,看来我签出的内容与几周前的情况不完全相同。指向库项目主干的外部对象不会回滚,但包含最新的更改。

是否所有外部对象都应指向其他项目的标签,否则,是否意味着您无法轻松获得先前修订的快照?

Laz*_*ger 5

当我尝试回滚并查看该项目的较旧版本时,看来我签出的内容与几周前的内容不完全相同

是。如果外部定义中没有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是超级回购)