SVN:如何使用TortoiseSVN更新工作副本以排除外部依赖?

9
有没有办法使用TortoiseSVN更新工作副本以排除外部文件?
我有一个已经检出了外部文件的工作副本。我正在更新我的包含路径,现在这些外部文件在另一个项目中。我想要更新我的当前工作副本以排除外部文件 - 实质上是从我的本地副本中删除外部文件。
由于我的工作副本中有大量更改,简单地删除和重新检查,省略外部文件,不是一种有效的选项。
我正在使用Tortoise SVN 1.7.2,使用1.7.x格式。
编辑:好吧,看起来我要找的东西是不可能的。似乎'SVN Update'将始终更新外部文件,即使使用“Omit Externals”(-ignore-externals)检出存储库。
编辑2:好的,找到了一个解决方案。似乎没有办法按每个存储库标记它。但全局设置:'TortoiseSVN' => 'Settings' => 'Advanced'将'IncludeExternals'设置为false。这将阻止'SVN Update'更新外部文件。看起来要强制更新外部文件,我需要转到'Update to Revision...'。这是可行的,因为这是不太可能发生的情况。(我有5个检出,只有1个需要外部文件,并且仅在属性更新时需要。2次检查只需要一次他们)
3个回答

6

svn up --ignore-externals可以完成此操作,您可以手动删除外部文件夹。


... nm。看起来这是不可能的。我刚刚做了一个测试。我正在尝试标记我的代码库以忽略外部内容,这样当我更新时就不会更新外部内容。结果发现:svn co --ignore-externals 只会在那个一次性实例中忽略外部内容。一旦我执行更新操作...它就会更新外部内容。我原以为它会在所有后续更新中都忽略外部内容。 - guice
2
不,您每次都需要添加它。在配置文件或其他地方没有这样的选项可供设置。在类Unix系统上,我建议创建一个别名,其中包括该选项,或者用一个Bash过程覆盖svn命令,以默认设置该选项。在Windows上,您需要创建一个Bash脚本,将参数传递给包含--ignore-externals的svn命令,这样您只需双击该bash文件即可更新它。 - zuloo
原来TortiseSVN在高级选项中有一个选项可以始终设置此标志。请参见我上面的编辑。 - guice

4
在TortoiseSVN中,您可以选择“更新到特定版本…”并勾选“省略外部引用”复选框来进行更新,而无需使用外部引用。

没有,不起作用。选择了“更新版本”,选中了“HEAD”,选择了“省略外部”。成功地进行了更新,并且没有外部内容。然后我执行了“SVN更新”,它带有外部内容更新了.... - guice

0

我知道这是一个非常晚的回复,可能已经过时了,但是,如果我理解正确,您遇到的问题的解决方案就是更新您的外部列表。

基本上,您有一堆外部文件被移动到另一个项目中,而您想要更新您的工作副本以 包括这些文件,对吧?

您只需要右键单击您检出的目录(或者如果您在文件夹内部,则在 Windows 资源管理器中的任何空白处),转到 Tortoise SVN > 属性。编辑包含您的外部文件的属性,并删除/添加您需要的任何目录。然后更新您的目录。它将不再包括已包含的目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接