Как получить идентификатор набора изменений базового файла при слиянии с Mercurial? - PullRequest
3 голосов
/ 21 января 2011

У меня есть пара веток, которые мне нужно объединить, но я не знаю, откуда происходят некоторые изменения, которые появляются в моем инструменте слияния. Наборы локальных и других изменений очевидны, но как узнать, из какого набора изменений произошел базовый файл? Я работаю в хранилище с десятками веток, поэтому просмотр графика и отслеживание его не очень хорошо работают.

Ответы [ 2 ]

4 голосов
/ 22 января 2011

Используя revsets (Mercurial 1.6 и новее), вы можете получить общего предка двух наборов изменений с помощью:

hg log -r ancestor(rev1,rev2)
1 голос
/ 21 января 2011

Попробуйте команду 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"

и он сообщит вам, в какой ревизии он был впервые добавлен.

Если вы ищете что-то менее поисковое-y и более обзорное-y, вы можете использовать hg log -v, чтобы увидеть, какие файлы были изменениями в каждом наборе изменений, и hg log -p, чтобы увидеть фактические различия для каждого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...