我在两个位置有重复的目录结构,我需要在svn存储库中合并在一起。通过“合并”我的意思是我希望将结构b
所特有的所有文件和文件夹移动到结构a
中。当我尝试使用svn move
执行此操作时,我收到错误
svn: Path 'com' already exists
文件夹如下:
src
-> com
-> (many more files and directories)
-> java
-> com
-> (some files and folders, some folders overlap but all files are unique)
src\com
为a
,src\java\com
为b
。
答案 0 :(得分:0)
您可以将源“com”路径的整个历史记录合并到目标路径,这将保留这些文件的历史记录,例如。
svn merge -r 1:HEAD svn://repository-path-to/com working-copy-path-to/com
您需要确保修订版本范围包含将第一个文件添加到源“com”文件夹的修订版。
答案 1 :(得分:0)
在与几个人交谈之后,我得出的结论是svn不支持这种行为。
通过编写读取java \ com内容的脚本并为每个项生成svn move命令,可以生成相同的结果。如果在许多级别上存在重叠的文件和目录,那么这将不起作用。可以通过扩展脚本来爬行目录层次结构,标记重叠并移动其内容来处理目录重叠。文件重叠必须手动处理,没有脚本能够决定在所有情况下保留哪个文件。