我正在尝试使用mercurial将3个repos合并为一个。 Repo A是我想将Repo B和C合并成的。这些是AS3项目,A依赖于B和C的文件。
我尝试按照这篇文章中的步骤操作: Merging two different repositories
但是,我认为这取决于回购不分享任何东西的事实。在我的情况下,因为项目具有相同的文件结构,它似乎只是覆盖前一个(例如:两个都有/ images文件夹)。
任何建议?
答案 0 :(得分:1)
让我们确保我们完全理解我们的目标:
我们希望保留所有三个项目的所有文件。如果相同的文件名出现在多个存储库中,我们想要做什么?
--tool internal:local
或internal:other
执行合并。 Local保留了我们当前拥有的版本,其他版本保留了我们合并的版本。--tool internal:merge
或者根本不指定选项。这可能会产生丑陋的合并冲突,我们将不得不解决这个问题。--tool internal:fail
在这种情况下会抛出错误而不会尝试合并文件。所以,这是修改后的程序:
$ hg init combined
$ cd combined
$ hg pull ../A
$ hg update
$ hg pull ../B --force
$ hg merge --tool something # see above
$ # Manually fix up any files that throw merge conflicts
$ hg resolve --all -m # Mark all files as resolved, only if there were conflicts
$ hg commit -m "Merge A and B"
$ hg pull ../C --force
$ hg merge --tool something # see above
$ # Fix conflicts
$ hg resolve --all -m # Only if there were conflicts
$ hg commit -m "Merge A+B and C"