Mercurial: список" HG diff " файлов
Как получить список файлов, измененных между двумя произвольными наборами изменений?
моя единственная догадка-что-то страшное вроде этого:
# 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
может быть, есть команда mercurial, которую я не заметил?
не измененные файлы из одного набора.
edit: мне нужно это сделать, потому что я работаю с некоторыми программистами из бронзового века, которые не понимают, что такое .разница в том, что, пожалуйста, потерпи меня...
3 ответов
основная команда для поиска, когда вы хотите узнать что-то о состоянии файла hg status
. Команда status - это имя файла ориентированная команда, и вы хотите знать некоторые имена файлов.
когда вы запускаете его как
$ hg status
затем он сравнивает состояние рабочей копии с родительской редакцией рабочей копии (.
). Но если вы запустите его как
$ hg status --rev AA:BB
тогда он покажет файлы, измененные между AA
и BB
! Нет необходимости в применение grep к, резка, сортировка или шаблоны.
(Я уже объяснял это раньше здесь, здесь и здесь, пожалуйста, посмотрите эти вопросы и ответы для получения дополнительных советов.)
решение одно. Diff-based
>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 полями, print $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
преобразовать в список, удалить (возможно) дубликаты, я оставлю для вас