如何在一次提交中签入本地副本AND svn:externals子目录?

我们有一个svn项目,在vendor/plugins中也有几个vendor/plugins – 所有vendor/plugins都是通过svn:externals

我有一个提交,它同时涵盖主项目和其中几个插件。

当我执行svn st它会在所有正确的子目录中列出我所有已更改的文件,但是当我尝试执行svn ci ,它只显示来自我本地项目的文件。

如何进行包含本地更改 svn:externals目录的单个提交?

好吧,看起来并非完全可以将本地更改与svn外部组合在一起,但您可以将所有多个外部组合在一起,然后检查您当地的工作更改。

要提交回svn:externals项目,您必须在checkin中显式地放置svn:externals目录名,例如:

 svn ci vendor/plugin/ 

您可以在同一命令行中同时检查任意数量的不同插件:

 svn ci vendor/plugin/ vendor/plugin/ ... 

但是,您的本地工作副本更改必须单独完成。 如果你不这样做,你最终会得到一个令人讨厌的警告,告诉你“无法锁定”你的本地工作副本,并询问“所有目标是否属于同一工作副本?” 或者你会得到一些奇怪的消息说

 svn: Commit failed (details follow): svn: Illegal repository URL '' 

因此,您似乎必须独立于您的svn:externals commit提交工作副本更改。 仍然 – 至少它只是,而不是N(其中N是插件的数量加上工作副本)。 您仍然可以使用相同的提交消息将两个提交绑定在一起。