svn:switch不能与相对svn:external一起使用?

时间:2009-01-13 16:25:44

标签: svn branch switch-statement

我们有一个子文件夹,它是一个相对svn外部文件(../project/subfolder)。在一个新鲜的树干结账时,它指向(... TRUNK / project / subfolder)并在一个新的分支结账中指向(... BRANCH / branchName / project / subfolder)。但是,如果您对包含子文件夹的项目进行切换,则子文件夹将保持指向TRUNK。或者,如果你进行BRANCH结账并切换到TRUNK,它仍然指向BRANCH。

svn:switch不应该更新相对外部吗?是否有某种递归svn:switch我应该运行?

5 个答案:

答案 0 :(得分:3)

问题的正确答案是“是的,它应该更新那些外部因素。”事实上它不是一个错误:

请参阅:http://subversion.tigris.org/issues/show_bug.cgi?id=3390

修复目标里程碑是1.6.10。修复程序显然已经完成,但我写的当前发行版仍然是1.6.6。

答案 1 :(得分:1)

您可能想尝试svncopy.pl。 svn:分支或切换时不会更新外部。

答案 2 :(得分:1)

Subversion通常认为​​外部与其包含的项目是分开的。例如,“svn commit”只查看项目中的文件,而不是项目中包含的外部文件中的任何文件。 “svn switch”以同样的方式工作;你可以切换主项目,但是你需要在每个外部运行一个单独的“svn开关”。

答案 3 :(得分:1)

似乎在Subversion 1.6.11中修复了这个问题 http://svn.apache.org/repos/asf/subversion/trunk/CHANGES

答案 4 :(得分:1)

唉,我相信这仍然没有修复,尽管上面提到的bug修复很久以前就已经实现了。

我有一个外部,其名称已嵌入空格并使用双相对路径。我的外部引用同一分支中的文件,但是上下,如下: ../../myOriginFolder/itsSubfolder/my文件名.pdf

一旦我重命名了分支,现在使用TortoiseSVN 1.7.8(或其命令行SVN 1.7.6)来破解我的仓库。旧的工作副本在切换后无法正确更新,也无法查看旧命名分支的新副本!所有命令 - checkout-to-old-revision,update-to-old-revision和switch-and-update-都将失败。唯一可行的方法就是做一个新的结账然后继续前进,永远不要回来。

这似乎是一个非常糟糕的错误!这意味着由于我使用相对路径外部,我不能再重命名/切换/恢复我的分支

我想知道是否有人看过这个并且有一个解决方法?我想知道我是否应该对这些引用进行硬编码。即使这可能比这次失败更好。

我还想知道上面引用的修复程序现在是否会失败,因为1.6到1.7之间的工作副本格式已更改。现在只有一个顶级面包屑;可能与此问题有关?如果我仍然可以结帐该文件夹,我会比较/.svn/信息,以查看最新vs先前名称的新结帐。

以下是我看到的错误的详细信息。

TortoiseSVN说: 外部失败c:\ myRepo-keyword \ myDestinationFolder \ my file name.pdf 错误报告' / svn / myrepo /!svn / me':无法读取块大小:连接已被服务器关闭。

Apache / VisualSVN事件日志说; 来源:VisualSVN Server 2.5 日期:2012年8月21日上午11:20:57 事件ID:4000 级别:信息 描述:switch / myRepo-Path / myOriginFolder / itsSubfolder / my file name.pdf / my file name.pdf / myRepo-Path / mySubfolder / my file name.pdf@7178

以下是重命名之前修订版中外部ed文件夹的新签出错误。 外部失败:C:\ VcsSvn \ 3.7.8.6328.RuntimeRefs \ Stroz Review User Guide.pdf
错误:网址
错误:' http://myurl/svn/myOldRepo-Path/myOriginFolder/itsSuubfolder/my文件名.pdf'
错误:修订版7179不存在 已完成:修订时间:6328

//编辑感谢另一个stackoverflow用户,我发现这个可能相关的开放票证; http://subversion.tigris.org/issues/show_bug.cgi?id=4150

// EDIT2;另一张海报建议避免外部: How can I branch in SVN and have it branch my svn:external folders as well?