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

时间:2010-02-25 19:04:35

标签: ruby-on-rails svn command-line commit svn-externals

我们有一个svn项目,在vendor/plugins中也有几个插件 - 全部通过svn:externals拉入。

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

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

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

1 个答案:

答案 0 :(得分:3)

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

要提交回svn:externals项目,您必须明确地将svn:externals目录名称放入签名中,例如:

svn ci vendor/plugin/<plugin_name>

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

svn ci vendor/plugin/<plugin_one>  vendor/plugin/<plugin_two> ... 

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

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

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