1

我们有一个相对 svn 外部的子文件夹(../project/subfolder)。在新的主干结帐中,它指向(...TRUNK/project/subfolder),在新的分支结帐中,它指向(...BRANCH/branchName/project/subfolder)。但是,如果您对包含子文件夹的项目进行切换,则子文件夹将始终指向 TRUNK。或者,如果您进行 BRANCH 结帐并切换到 TRUNK,它会一直指向 BRANCH。

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

4

5 回答 5

4

该问题的正确答案是“是的,它应该更新那些外部数据”。它没有的事实是一个错误:

见:http ://subversion.tigris.org/issues/show_bug.cgi?id=3390

修复目标里程碑是 1.6.10。修复显然已经完成,但我写这篇文章时的当前版本仍然是 1.6.6。

于 2010-04-24T13:31:32.530 回答
1

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

于 2010-11-26T12:45:04.677 回答
1

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

于 2009-01-13T16:27:08.550 回答
1

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

于 2009-01-13T16:29:34.893 回答
1

唉,我相信这仍然没有修复,尽管上面提到的错误修复是很久以前实现的。

我有一个外部对象,其名称包含嵌入空格并使用双相对路径。我的外部引用了同一分支中的文件,但反复引用,如下所示:../../myOriginFolder/itsSubfolder/my file name.pdf

一旦我重命名了分支,现在我的 repo 使用 TortoiseSVN 1.7.8(或其命令行 SVN 1.7.6)被破坏了。旧的工作副本在切换后无法正确更新,我也无法签出旧分支的新副本!所有命令 - checkout-to-old-revision、update-to-old-revision 和 switch-and-update - 都将失败。唯一可行的方法是重新结帐,然后继续前进,永不回头。

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

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

我还想知道上面提到的修复现在是否可能失败,因为在 1.6 和 1.7 之间工作副本格式已更改。现在只有一个顶级面包屑;可能与这个问题有关吗?如果我仍然可以签出该文件夹,我会比较 /.svn/ 信息以获取最新的最新签出与以前的名称。

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

TortoiseSVN 说:External failed 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 级别:信息描述:开关 /myRepo-Path/myOriginFolder/itsSubfolder/my file name.pdf/my file name.pdf /myRepo -Path/mySubfolder/我的文件名.pdf@7178

这是从重命名之前的修订版中重新检出 external-ed 文件夹的错误。外部失败:C:\VcsSvn\3.7.8.6328.RuntimeRefs\Stroz Review User Guide.pdf
错误:URL
错误:' http://myurl/svn/myOldRepo-Path/myOriginFolder/itsSuubfolder/my file name.pdf'
错误:在修订版 7179 不存在
已完成:在修订版:6328

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

//编辑2; 另一张海报建议避免使用外部: 如何在 SVN 中分支并让它分支我的 svn:external 文件夹?

于 2012-08-21T20:11:06.803 回答