我们这里有一个非常复杂的存储库,我正试图从我们最近切换到Subversion中获得最大的收益。我们通常会设置如下设置:
parent_dir (unversioned)
->module1_dir (versioned)
->module2_dir (versioned)
->module3_dir (versioned)
->etc
等等。其中modules1-x通常是各个模块的所有相同分支。需要修改模块1(服务器)和模块2(客户端)中的代码是一种相对常见的情况。以前在CVS下,我只需要分别手动检查每个模块的更改。我希望能够做的是同时为每个服务器和客户端更改(两个不同模块(或者更多模块)中的每个模块的更改)。
无论如何在Subversion(特别是在Tortoise SVN / Windows中)这样做?如果我只是导航到那个parent_dir,选择文件夹并执行提交,提交对话框,甚至列出我的所有文件,但实际提交失败说:
Error 'D:\parent_dir' is not a working copy
似乎我可能距离完成这项工作只有一两步,但不太确定我需要做什么。哦,我们不会很快改变目录结构,所以请不要建议这样做。另外,如果我要求的内容不清楚,请询问后续问题。提前谢谢。
奖励积分:有没有办法可以同时将多个模块的更改提交到多个分支?例如。我做了一个客户端+服务器更改,需要进入1.0和2.0分支。
答案 0 :(得分:2)
module1,module2和module3在存储库中是否有共同的父级?如果是这样,您可以查看该父目录。 (授予您最终可能会在工作副本中添加许多与之无关的额外文件)
答案 1 :(得分:1)
在Subversion 1.7中可以从命令行以原子方式提交多个模块的更改。就这样做:
$ svn commit module1_dir/ module2_dir/ ...
虽然我无法在TortoiseSVN中尝试它,但是在Subversion 1.6及更早版本中执行相同命令时会出现您提到的错误。因此,我认为相信它在TortoiseSVN 1.7.X中“正常”是合理的。
答案 2 :(得分:-1)
我不知道是否有使用Tortoise的方法,但是一个小脚本并使用命令行 像Slik SVN这样的SVN客户端可以完成这项工作。