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

Автоматическое нажатие на каждый фиксатор

Будучи очень знакомым с рабочим процессом subversion и тем фактом, что в 99,9% случаев мой компьютер подключен к Интернету, мне не нравится делать "hg ci" и "hg push" отдельно.

Я помню, что у bzr была команда "checkout", которая привязывала бы последующие команды "commit" к автоматической фиксации непосредственно на сервере ( "push" ).

Есть ли у mercurial что-то похожее на это?

PS: Написание оболочки script или псевдонима, которая запускает 'hg ci $* && & & hg push 'было бы последним, что я сделал бы.

4b9b3361

Ответ 1

Вы можете добавить hook, чтобы запустить push после успешной фиксации.

РЕДАКТИРОВАТЬ: Я только что попробовал, и, похоже, он работает нормально. Я добавил следующее в файл .hg/hgrc репозитория, в который я хотел активировать автоматическое нажатие для:

[hooks]
commit.autopush = hg push

РЕДАКТИРОВАТЬ 2: Кроме того, вам не приходится беспокоиться о чем-то вроде этого:

  • Вы находитесь в репозитории, который вы не хотите автоматически нажать.
  • Вы используете hg -R ~/another-repo-that-autopushes commit для совершения в другом репо, который делает автоматически.
  • Будет ли крючок hg push вставлять изменения в текущий каталог вместо того, который вы совершаете?

Нет, не будет. Согласно странице, которую я связывал:

Выполняемый крючок всегда запускается с его текущим каталогом, установленным в корневой каталог репозитория.

Это край, но Mercurial правильно его обрабатывает.