Mercurial - все файлы, которые изменились в наборе изменений? - PullRequest
89 голосов
/ 24 сентября 2010

Как вы можете определить все файлы, которые изменились в данном наборе изменений?

Я не ищу diff в этом случае, просто список добавления / удаления / модификаций.

hg log -vprX делает список различий, но я просто хочу файлы.

Ответы [ 7 ]

137 голосов
/ 24 сентября 2010

Если вы хотите перечислить только файлы, которые были изменены, тогда вы должны использовать «команду статуса» Ниже приведен список изменений файлов в редакции REV

hg status --change REV
15 голосов
/ 24 сентября 2010

Просто удалите p из вашего hg log -vpr покажет список файлов. -p означает показать патч. Вы также можете использовать шаблон для форматирования вывода на свой вкус.

10 голосов
/ 01 ноября 2012

Я знаю, что вопрос касается одной ревизии, но если вы хотите изменить все файлы для диапазона ревизий, вы можете сделать

hg status --rev 1 --rev 10 -m
5 голосов
/ 15 мая 2018

Current Committed Revision

hg status --change .

. является сокращением для текущей версии, точно так же, как @HEAD в Git

Текущая незафиксированная версия

hg status

Произвольная совершенная редакция

hg status --change REV_ID
2 голосов
/ 01 ноября 2014

Нашел этот вопрос через Google, чтобы найти похожую концепцию.Чтобы показать все файлы, которые были изменены с помощью диапазона наборов изменений, просто:

hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" | sed -e 's/ /\n/g' | sort -d | uniq
  1. hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" покажет вам список каждого файла, который был изменен или добавлен вкаждый набор изменений, от [start rev] до [end rev], с файлами каждого набора изменений в новой строке.Поменяйте {file_mods}{file_adds} на {files}, чтобы показать все файлы, измененные, добавленные или удаленные.
  2. sed -e 's/ /\n/g' разделит все файлы на отдельные строки, а
  3. sort будет,ну, отсортируйте список, чтобы мы могли отфильтровать список с помощью uniq
  4. uniq, чтобы отфильтровать список для удаления дубликатов - файлов, которые были изменены более чем в одной ревизии.
0 голосов
/ 21 декабря 2016

Я знаю, что этот вопрос старый, и я удивлен, что никто не предлагал модифицированную форму кода OP.Я получил список измененных / добавленных / удаленных файлов (не помеченных, который есть что), просто запустив hg log -v.Или то, что мне действительно нужно было hg log -v -l5, чтобы увидеть файлы, которые были изменены / добавлены / удалены за последние 5 коммитов (включая те, которые я еще не помещал в репо)

0 голосов
/ 21 июля 2015

Если вы похожи на большинство магазинов, вы используете систему тикетов для отслеживания изменений. Если вы знаете номер заявки и хотите найти все коммиты, связанные с этим билетом (при условии, что вы включили номер заявки в сообщение о коммите), вы можете использовать:

hg log -k TICKET_NUMBER

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

Для упрощения, комбинируя информацию из предыдущих ответов, вы можете сделать следующее для поиска коммитов, включая измененные файлы:

hg log -vk TICKET_NUMBER
...