假设我有这种maven结构:
module1
- src/main/java
- com.app.func1
- file1
- com.app.func1.some2
- file3
- file4
module2
- src/main/java
- com.app.func1
- file1
- file111
- com.app.func1.some2
- file333
- file6
我想将module2中的整个src / main / java合并到module1
中合并后,它应如下所示:
module1
- src/main/java
- com.app.func1
- file1 // it would be nice if the tool would let me visually merge this item
- file111
- com.app.func1.some2
- file3
- file333
- file4
- file6
两个模块都已受版本控制,我不想放弃历史。
如果有人可以帮助我,那就太好了。
我已经尝试过Eclipse subversive / subclipse和Tortoise SVN,但我做得不对。
大部分时间我都收到一些错误消息,比如module1中已存在文件夹src。这是对的,但我实际上并不关心文件夹,它们应该像在Windows上一样集成。 通过合并的其他时间,module1中的所有文件都将被删除并被module2中的文件覆盖。
此致
答案 0 :(得分:1)
http://jv-ration.com/2014/01/merge-svn-directories/上描述的脚本有点类似。您只需要跳过步骤#3,它将删除目标文件夹中的文件(在您的情况下,模块1)。
执行完脚本后,您可以使用任何SVN工具来查看已更改文件的差异。
答案 1 :(得分:0)
我认为您必须为每个文件执行svn rename
。您可以使用svn list
输出的脚本来帮助自动化它。你不会让它合并具有相同名称的文件:你必须手动完成这些。
答案 2 :(得分:0)
看起来这个愚蠢的问题没有简单的解决方案。
作为一种解决方法,我在Java视角中使用eclipse移动了所有源代码。
标记com.app.func1和src / main / java(maven)下的所有文件夹,然后用鼠标移动到module1 src / main / java或使用Refactor - >移动
Eclipse自动做正确的事情,它使用svn move而不是愚蠢的移动,因此历史记录不会被删除。遗憾的是,您无法移动非Java文件夹,因为您将收到上述错误(文件夹已存在)。
提示:两个模块必须已经处于版本控制之下,并且必须安装某个SVN插件,否则您将丢失所有历史记录条目。
module2
- src/main/java
+ com.app.func1
+ com.app.func1.some2