2013-03-26 2 views
1

Я работаю в этом файле, и я нахожу код, который, как я думаю, изменился в какой-то момент истории, и я хотел бы знать, где он изменился.Mercurial - загляните в историю файла без обновления

Это довольно большой файл с большой историей, поэтому, когда я использую hg diff, я получаю огромный список, и я не думаю, что это эффективно искать через это.

Было бы очень аккуратно, если бы я мог изучить старую ревизию файла, чтобы посмотреть, как выглядел файл в определенный момент времени. Затем я вижу, как работает код, поэтому я могу заключить, как произошла ошибка. Конечно, я хочу сделать это без обновления файла, потому что я сейчас работаю над ним и внесли в него изменения.

Итак, можно ли каким-либо образом просмотреть историю файла без его обновления?

ответ

2

Есть несколько инструментов, чтобы помочь вам:

Чтобы получить историю файла вы можете просто использовать hg log FILE, который, вероятно, является лучшей отправной точкой.

Вы также можете использовать hg annotate FILE, в котором перечислены все строки в файле, и указывается, какая версия изменила его так, как сейчас. Он также может провести ревизию с помощью хвоста команды --rev REV, чтобы посмотреть на старые версии файла.

Чтобы просто перечислить содержимое файла при данной ревизии, вы можете использовать hg cat FILE --rev REV.

Если вам сложно найти ошибку, используя эти инструменты, вы можете просто клонировать ваш репозиторий где-то в другом месте и использовать hg bisect, чтобы отслеживать его.

+0

Спасибо, hg cat FILE --rev REV был тем, что я искал – rednaw

0

hg bisect позволяет найти набор изменений, который вызвал проблему. Чтобы запустить поиск, выполните команду hg bisect --reset. Он хорошо документирован в Mercurial: окончательное руководство.

Смежные вопросы