当重新安置一些工作副本时,我显然没有点击其中几个的“包含外部”按钮,现在还不清楚如何恢复。我试过运行一个包含外部的就地“开关”,但它没有任何效果。我很想做一个包括外部的“重新安置”,但警告很严厉!
答案 0 :(得分:3)
Subversion通过名为svn:externals
的属性跟踪外部。您需要做的是找到此外部属性所在的目录。不幸的是,这是Subversion的命令行版本比TortoiseSVN有很大优势的地方。幸运的是,大多数情况下,external位于svn:externals
属性所在的目录下。
找到定义svn:externals
属性的目录。然后右键单击该目录以获取上下文菜单,从上下文菜单中选择TortoiseSVN-> Properties。这将打开“属性”对话框。找到svn:externals
属性,然后双击它。您现在将获得另一个对话框,您可以在其中编辑外部属性。
单击编辑... 按钮,然后更新属性。
外部属性可以包含整个URL,但您也可以指定与目录本身相关的URL。
例如,我们有一个名为ivy.dir
的项目目录,其中包含所有项目使用的所有常春藤定义(以及FindBugs等其他插件)。假设这些项目在其根目录下包含此ivy.dir
。这些其他项目是ivy.dir的姐妹项目目录。
我们可以通过这种方式定义外部:
http://svn/rsvp/trunk/ivy.dir ivy.dir
问题是当我分支项目时,ivy.dir
仍然在中继线下并且将获得中继线的更改。这可能不是我想要的。另外,如果我重新定位整个结构或使用新服务器,我将失去外部定义 - 就像你一样。
相反,我用这种方式定义外部:
../ivy.dir ivy.dir
这表示外部位于一个目录中,然后位于ivy.dir
项目目录下。现在,当我分支,或者如果我重新定义使用的协议,或者移动我的服务器时,我的外部定义不会改变。
由于您正在编辑外部定义,因此您可能需要记住将外部关系重新定义为存储库定义的目录,而不是绝对URL。