在与mercurial合并时如何获取基本文件的变更集ID?

时间:2011-01-21 16:54:56

标签: mercurial merge

我有几个分支需要合并,但我不知道哪些变化来自我的合并工具中出现的变化。本地和其他的更改集很明显,但是如何找出基本文件来自哪个更改集?我在一个拥有数十个分支的存储库中工作,因此查看图表并跟踪它并不能很好地工作。

2 个答案:

答案 0 :(得分:4)

使用revsets(Mercurial 1.6及更高版本),您可以获得两个变更集的共同祖先:

hg log -r ancestor(rev1,rev2)

答案 1 :(得分:1)

尝试hg grep命令:

hg grep [OPTION]... PATTERN [FILE]...

search for a pattern in specified files and revisions

    Search revisions of files for a regular expression.

    This command behaves differently than Unix grep. It only accepts
    Python/Perl regexps. It searches repository history, not the working
    directory. It always prints the revision number in which a match appears.

    By default, grep only prints output for the first revision of a file in
    which it finds a match. To get it to print every revision that contains a
    change in match status ("-" for a match that becomes a non-match, or "+"
    for a non-match that becomes a match), use the --all flag.

    Returns 0 if a match is found, 1 otherwise.

options:

 -0 --print0               end fields with NUL
    --all                  print all revisions that match
 -f --follow               follow changeset history, or file history across
                           copies and renames
 -i --ignore-case          ignore case when matching
 -l --files-with-matches   print only filenames and revisions that match
 -n --line-number          print matching line numbers
 -r --rev REV [+]          only search files changed within revision range
 -u --user                 list the author (long with -v)
 -d --date                 list the date (short with -q)
 -I --include PATTERN [+]  include names matching the given patterns
 -X --exclude PATTERN [+]  exclude names matching the given patterns
    --mq                   operate on patch repository

[+] marked option can be specified multiple times

use "hg -v help grep" to show global options

您可以像以下一样使用它:

hg grep "a string"

它会告诉你它首次添加的版本。

如果您正在寻找更少搜索和更多概述的内容,您可以使用hg log -v查看每个变更集中的变更文件,hg log -p以查看每个变更集的实际差异。