【问题标题】:I was working in the wrong repo. They are almost the same but not associated data. How do i diff/merge?我在错误的仓库中工作。它们几乎是相同但不相关的数据。我如何区分/合并?
【发布时间】:2013-04-23 19:30:50
【问题描述】:

您可以与还原的副本进行比较吗?

我在错误的仓库中工作。它们几乎相同,但没有实际关系。

我刚刚进行了拉取和更新,然后我可以将更改的文件复制到右头,然后在其上运行差异或类似的东西,然后将两者正确合并在一起吗?

我觉得另一种选择是做类似的事情 复制代码并提交,然后恢复,并与提交合并以区分所有更改的内容..

我在 9 个文件中更改了 1500 行之类的内容,所以我不想重写一堆代码段。

我该如何处理?

【问题讨论】:

    标签: version-control mercurial


    【解决方案1】:

    这实际上取决于“几乎相同,但没有实际关系”的存储库的相似程度。

    如果它们非常相似(因为文件具有相同的名称并且文本几乎相同),您可能会在源代码库中导出补丁,然后将相同的补丁导入目标回购。

    在源代码库中:

    hg export -r tip > path\to\oops.patch
    

    在目标仓库中:

    hg import path\to\oops.patch --no-commit
    

    我使用了--no-commit,因为我认为您需要先进行一些清理以确保一切正常。

    或者,您可以使用 kdiff 或 BeyondCompare3 比较两个目录,然后将您想要的差异从源 repo 带到目标 repo 并以这种方式提交。这可能是我的方法。

    (我故意忽略了为什么你有两个相似但没有共享历史的存储库的问题。据我所知,这可能是正确的做法。 )

    【讨论】:

    • 所有这些选项看起来都不错。我将研究 kdiff 和 BeyondCompare3 以查看它们是否有效。如果他们不这样做,我将尝试补丁方法。这三个似乎都可以工作。当我成功时,我会提供更新,给你竖起大拇指,告诉你哪种方法最适合我。
    • 我使用了 kdiff。它奏效了,我喜欢它,因为它会在 2 个目录或文件上做一个差异......然后会输出它。
    猜你喜欢
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2011-06-07
    相关资源
    最近更新 更多