Я пытаюсь зафиксировать только определенные файлы с помощью Mercurial. Из-за того, что hg имеет автоматическое добавление всякий раз, когда я пытаюсь зафиксировать изменение, он хочет зафиксировать все файлы. Но я не хочу этого, потому что некоторые файлы еще не «готовы».
Там есть
hg commit -I thefile.foo
но это только для одного файла. Для меня было бы лучше, если бы я мог отключить автоматическое добавление, как в Git. Это возможно?
version-control
mercurial
commit
Правин Кумар Пурушотаман
источник
источник
hg ci foo bar baz
Ответы:
Вы можете указать файлы в командной строке, как пишет tonfa:
Это просто работает, и я делаю это все время. Вы также можете использовать
--include
найденный вами флаг, и вы можете использовать его несколько раз следующим образом:Вы даже можете использовать набор файлов для выбора файлов, которые хотите зафиксировать:
Нет настройки, которая отключила бы автоматическое добавление и заставила Mercurial работать так, как это делает Git. Однако расширение mq может быть интересно. Это расширенное расширение, но оно позволяет
Я лично не использую MQ для этой цели, поскольку считаю, что достаточно просто указать имена файлов в командной строке.
источник
Если вы хотите зафиксировать несколько файлов и исключить многие другие, явно укажите файлы, которые вы хотите зафиксировать.
-I
нужен только в том случае, если вы хотите использовать шаблоны вместо файлов.Если вы хотите зафиксировать много файлов и исключить только несколько файлов, использование
-X
более удобно.Например, для репозитория, содержащего "файл_1", "файл_2" и "файл_3", следующие значения эквивалентны, но последнее легче / быстрее набирать:
источник
Начиная с 3.8 вы также можете использовать
hg commit --interactive
для выбора файлов (до 3.8 вы можете использовать расширение crecord для аналогичных функций).--interactive
(Или только-i
) флаг будет вызывать рт.ст. запрашивать у вас файлы , которые вы хотите включить в коммит. В качестве дополнительного бонуса вы даже можете включать / исключать фрагменты файлов.Вот пример того, как выглядит интерфейс. Обратите внимание, что это старый снимок экрана (на самом деле Crecord), поэтому интерфейс немного изменился (но основы остались прежними).
Обратите внимание, чтобы получить этот интерфейс, вам необходимо включить интерфейс curses. Вы можете сделать это для одиночного прогона с помощью
hg commit --config ui.interface=curses --interactive
или в целом, добавив следующее к вашему.hgrc
:источник