Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 在Subversion中同时提交多个模块_Svn_Tortoisesvn - Fatal编程技术网

Svn 在Subversion中同时提交多个模块

Svn 在Subversion中同时提交多个模块,svn,tortoisesvn,Svn,Tortoisesvn,我们这里有一个相当复杂的存储库,我正试图充分利用我们最近切换到Subversion的过程。我们通常有如下设置: parent_dir (unversioned) ->module1_dir (versioned) ->module2_dir (versioned) ->module3_dir (versioned) ->etc $ svn commit module1_dir/ module2_dir/ ... 等等。其中,模块1-x通常是属于同一分支的各种模块。需要

我们这里有一个相当复杂的存储库,我正试图充分利用我们最近切换到Subversion的过程。我们通常有如下设置:

parent_dir (unversioned)
->module1_dir (versioned)
->module2_dir (versioned)
->module3_dir (versioned)
->etc
$ svn commit module1_dir/ module2_dir/ ...
等等。其中,模块1-x通常是属于同一分支的各种模块。需要修改模块1(服务器)和模块2(客户端)中的代码是一种相对常见的情况。在之前的CVS中,我只需分别手动检入每个模块的更改。我希望能够同时将我的服务器和客户端更改(两个不同模块(或者更多模块)中的每个模块中的更改)提交给每个模块

在Subversion中(特别是在Tortoise SVN/Windows中)是否有这样做的方法?如果我只是导航到父目录,选择文件夹并进行提交,提交对话框会出现,甚至列出我的所有文件,但实际提交失败,原因是:

Error 'D:\parent_dir' is not a working copy
似乎我离完成这项工作只有一两步之遥,但我不太确定我需要做什么。哦,我们不会很快改变目录结构,所以请不要建议这样做。另外,如果我的要求不清楚,请提出后续问题。提前谢谢


优点:有没有一种方法可以将对多个模块的更改同时提交到多个分支?例如,我做了一个客户机+服务器更改,需要同时进入1.0和2.0分支。

存储库中module1、module2和module3是否有一个共同的父级?如果是这样,您可以直接签出父目录。(当然,你的工作副本中可能会有很多不相关的额外文件)

我不知道是否有办法用乌龟来解决这个问题,但需要一个小脚本和一个命令行
SVN client-like将完成这项工作。

在Subversion 1.7中,可以从命令行自动提交多个模块中的更改。就这样做吧:

parent_dir (unversioned)
->module1_dir (versioned)
->module2_dir (versioned)
->module3_dir (versioned)
->etc
$ svn commit module1_dir/ module2_dir/ ...

虽然我无法在OrtoiseSVN中尝试,但您提到的错误发生在Subversion 1.6及更早版本中执行相同命令时。因此,我认为有理由相信它在OrtoiseSVN 1.7.X中也“起作用”。

不,它们没有共同的父母。这无疑会使这一过程变得更简单。它们确实有一个共同的父级—存储库的根。如果你可以重新定位你签出的目录,你可以从根目录进行稀疏签出,只获取你需要的文件和目录。如果你不能重新定位它们,你也许可以这样做,然后使用文件系统连接将它们现在的位置链接到稀疏签出中它们需要的位置。嗯。。。这主意一点也不坏。这肯定是一个相当大的工作量,因为根目录下有很多东西,但肯定是一个可行的回退解决方案。使用命令行工具,您可以使用“svnco-N”进行稀疏签出,在这里您只获得根目录。然后,您可以仅“svn up”要签出的目录和文件。它们仍然与回购协议中的层次结构相同,但至少不会有额外的文件。YMMV和乌龟,当然。我们使用Slik SVN进行自动化的ANT构建,所以我已经安装了它。脚本不会那么复杂,但我会失去龟GUI的易用性,这肯定会让我伤心。