0

我已经一起使用 mercurial 和 Beyond Compare 4 工具大约 2 周了,并且对我的使用很有信心,但是在将传入的变更集与我当前的本地代码库进行比较时,我似乎仍然遇到问题。当我尝试进行复杂的合并时,这个问题被强调了。

澄清一下,我避免使用 TortoiseHg 之类的工具,尽管我确实安装了它。我仅通过命令行操作搜索反馈。

我当前的模板化方法通过以下方式下拉传入的变更集(作为 [别名] )

hg in --verbose -T "\nchangeset: \t{rev}\nbranch: \t{branch}\nuser: \t\t{author}\ndate: \t\t{date(date,'%m-%d-%Y %I:%M%p')}\ndescription: \n\t{desc|fill76|tabindent}\n\n{files % ' \t{file}\n'}\n----------\n"

例如,这里是返回的简化(并且巧妙地抽象)块::

changeset:      4685
branch:         Feature-WI209825
user:           Jack Handy <jhandy@anon.com>
date:           01-19-2015 10:19AM
description:
        Display monkey swinging from vines while whistling dixie

        Zoo/MonkeyCage/Resources/Localization.Designer.cs
        Zoo/MonkeyCage/Resources/Localization.resx
        Zoo/MonkeyCage/Utility/Extensions.cs

如果我要在本地比较更改,我只需使用以下命令::

hg bcomp -r 4685 -r default <optional file name>

然后我会得到一个带有文件夹结构和文件的 Beyond Compare 实例,我可以相应地导航以查看更改...但是,当我尝试使用尚未拉入本地存储库的变更集时,我不能。

如何区分传入的变更集与我的本地存储库?

- - 更新 - - - - - - - - - - - - - - - -

我追求捆绑传入更改的想法,然后尝试使用 BC4 将捆绑包与本地存储库上的任何给定分支/修订版进行比较。

hg in --bundle "C:\Sandboxes\Temp\temp.hg"

这将创建一个包含所有新更改的压缩文件存档。

现在我只需要将这个捆绑包与我的本地包进行比较,但是在优化它时遇到了困难。目前,我正在使用以下命令的变体:

hg -R "C:\Sandboxes\Temp\temp.hg" bcomp -r default

唉,我仍然难以完善这一点......任何见解都值得赞赏。

4

2 回答 2

0

我不知道你怎么能,因为你的本地存储库还没有那个变更集,所以 mercurial 无法创建修订的本地副本,因为它不知道实际的变化是什么。

-p标志将向您显示每个修订版的hg incoming补丁,但这不是您想要的。

为什么不只是pull远程更改呢?它不会伤害,除非你真的update。然后你可以用正常的方式做你的差异。

于 2015-01-21T10:00:06.490 回答
-1

hg diff是本地操作。但是您可以简单地调用hg incoming -p以获得您将要提取的内容的差异视图。查看hg help incoming更多选项和改进(例如,如果您需要针对特定​​转速等进行比较)

于 2015-01-20T09:06:33.637 回答