Ответ 1
hg diff -r 182 -r 193 --stat
или
hg status --rev 182:193
Мое единственное предположение - что-то ужасное:
# files where something has been added
hg diff -r AA -r BB|grep -- +++|cut -f1|cut -d/ -f2- >/tmp/ka
# files where something has been removed
hg diff -r AA -r BB|grep -- ---|cut -f1|cut -d/ -f2- >>/tmp/ka
# filtering out "dev/null": it appears when a file is added or removed from the repository
sort -u /tmp/ka |grep -v dev/null
Что мне нужно, так это файлы, измененные между набором изменений AA и BB набора изменений. Что-то вроде hg diff -r AA -r BB
но только имена файлов вместо целого diff.
Может быть, там нету команды, которую я не заметил? Наборы изменений, которые я хочу исследовать, не являются последовательными, в противном случае я мог бы просто использовать hg status
.
hg diff -r 182 -r 193 --stat
или
hg status --rev 182:193
Основная команда поиска, когда вы хотите узнать что-то о статусе файла, hg status
. Командой status является команда имя файла, и вы хотите знать некоторые имена файлов.
Когда вы запустите его как
$ hg status
то он сравнивает рабочее состояние копирования с родительской версией рабочей копии (.
). Но если вы запустите его как
$ hg status --rev AA:BB
затем отобразятся файлы, измененные между AA
и BB
! Нет необходимости в grepping, разрезании, сортировке или шаблонах.
(Я объяснил это раньше здесь, здесь и здесь, ознакомьтесь с этими вопросами и ответами для получения дополнительных советов.)
Решение одно. Diff на основе
>hg diff -r 3 -r 4 --stat
comments.php | 14 +++-----------
functions.php | 15 +++++++++++++--
header.php | 2 +-
readme.txt | 17 ++++++++++++++---
sidebar.php | 43 ++++---------------------------------------
style.css | 18 ++++++++++++------
6 files changed, 47 insertions(+), 62 deletions(-)
вы можете получить измененные файлы с помощью grepping на "|" char или (лучший и лучший подход из моего POV) для вывода gawk, который для записи с ровно 4 полями печатает $1
Решение два. Log + templating + revsets
>hg log -r "3::4" --template "{file_mods}\n"
footer.php functions.php header.php search.php style.css
comments.php functions.php header.php readme.txt sidebar.php style.css
конвертировать в список, удалять (возможно) дубликаты, я оставлю для вас
Вы можете сделать что-то похожее на hg stat
в Tortoise Workbench.
Самый простой/самый встроенный способ:
Это создаст окно, похожее на следующий пример:
(Затем просто нажмите [X]).
Однако этот экран может иметь ограниченное использование... например, вы не можете легко его экспортировать, кроме как сделать снимок экрана. Однако вы можете копировать/вставлять текст отдельных строк по очереди.
Альтернативный способ получения полезного текстового вывода - автоматизировать использование hg stat
прямо из THG Workbench, добавив пользовательский инструмент.
Теперь, когда вы запустите этот инструмент, вы автоматически получите результаты в панели журнала. Вы можете выбрать один или несколько наборов изменений, и он будет сравнивать их соответственно.
Примечание - вы также можете настроить это в файле настроек, добавив:
[tortoisehg-tools]
filecomp.command = hg stat --rev {REVID}
filecomp.enable = istrue
filecomp.label = FILECOMP
filecomp.showoutput = True
Макрос {REVID}
расширится до текста, например 33a6bd983eab
если вы выбрали один 33a6bd983eab
изменений в списке, или, например, 33a6bd983eab+a41898ae15c4
если вы выбрали два, и т.д.
В этом методе вы можете фактически выбрать> 2 набора изменений, и он сообщит о комбинированных различиях между ними.
Также просто отметим, что есть альтернативный синтаксис для stat
чтобы получить список того, какие различия в файлах существуют между любыми двумя наборами изменений, которые, я не думаю, были упомянуты в других ответах:
hg stat --rev A --rev B
где A
и B
- идентификаторы 1c845eefe22e
изменений (которые выглядят как 1c845eefe22e
).
(Вы также можете использовать номер редакции, например 12345, вместо идентификатора набора изменений, но имейте в виду, что это не постоянные значения в отличие от идентификаторов).
A
и B
могут находиться в любых двух ветвях или в одной и той же ветке, это не имеет значения, если они существуют в локальном клоне, с которым вы работаете.