代码之家  ›  专栏  ›  技术社区  ›  nash

将重复的目录结构相互移动

  •  0
  • nash  · 技术社区  · 14 年前

    我在两个位置有重复的目录结构,需要将它们合并到一个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 src\java\com .

    2 回复  |  直到 14 年前
        1
  •  0
  •   TheJuice    14 年前

    您可以将源“com”路径的整个历史记录合并到目标路径,这将保留这些文件的历史记录,例如。

    svn merge -r 1:HEAD svn://repository-path-to/com working-copy-path-to/com
    

    您需要确保修订范围包括将第一个文件添加到源“com”文件夹的修订。

        2
  •  0
  •   nash    14 年前

    在和几个人交谈之后,我得出结论,SVN不支持这种行为。

    可以通过编写一个脚本来读取相同的结果,该脚本读取Java\com的内容并生成每个项目的一个Svn移动命令。如果在许多级别上有重叠的文件和目录,那么这将不起作用。可以通过展开脚本来处理目录重叠,以对目录层次结构进行爬网、标记重叠并如上所述移动其内容。文件重叠必须手动处理,任何脚本都无法决定在任何情况下保存哪个文件。