我们有一个svn项目,在vendor/plugins
中也有几个插件 - 全部通过svn:externals
拉入。
我有一个提交,它同时涵盖主项目和其中几个插件。
当我执行svn st
时,它会在所有正确的子目录中列出我所有已更改的文件,但是当我尝试执行svn ci
时,它只会显示本地项目中的文件。
如何进行一次包含本地更改和 svn:externals
目录的提交?
答案 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是插件的数量加上工作副本)。 您仍然可以使用相同的提交消息将两个提交绑定在一起。