Подтвердить что ты не робот

Выполните пустую фиксацию с помощью меркуриального

С помощью расширения Mercurial queues я могу сделать пустую фиксацию с некоторым сообщением фиксации следующим образом:

hg qnew patch_name -m "message"

Есть ли способ сделать это без очередей Mercurial? Я просто попробовал:

hg commit -m "message"

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

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

4b9b3361

Ответ 1

Вы можете использовать hg commit --amend для создания пустых коммитов.

Просто создайте произвольную фиксацию и отмените изменение. После этого сбрасывайте оба фиксатора вместе.

Пример:

touch tmp                               # create dummy file
hg add tmp                              # add file and...
hg commit -m "tmp"                      # ... commit
hg rm tmp                               # remove the file again and ...
hg commit --amend -m "empty commit"     # ... commit

Ответ 2

Вы можете сделать фиксацию, закрывающую ветвь:

hg commit --close-branch -m "message"

Update:

Вы можете закрыть ветвь один раз, но ее можно снова открыть с помощью другой фиксации. Самый простой способ повторно открыть ветвь без изменения файлов - отметить некоторую ревизию. Таким образом, вы можете использовать hg commit --close-branch для пустой фиксации, а затем hg tag для повторного открытия.

Обновить v2

На самом деле вы можете создавать новые пустые коммиты только с помощью команды hg tag. Он имеет параметр -m для установки сообщения фиксации. Если вы не уверены в правильности этих тегов, вы можете использовать только одно имя тега, вызывая hg tag с параметром -f:

hg tag t1 -f -m "message"