Как изменить ветку по умолчанию для push в mercurial?
мне нравится создавать именованные ветви в Mercurial для работы с функциями, которые могут занять некоторое время для кода, поэтому, когда я нажимаю, я делаю hg push -r default
чтобы убедиться, что я только нажимаю изменения в ветке по умолчанию. Тем не менее, это боль, чтобы помнить -r default
каждый раз, когда я делаю push или исходящую команду.
поэтому я попытался исправить это, добавив эту конфигурацию в мой~/.hgrc:
[defaults]
push = push -r default
outgoing = outgoing -r default
проблема в том, что эти строки конфигурации на самом деле не являются значениями по умолчанию, они являются псевдонимами. Они работают по назначению пока я не попытаюсь сделать hg push -r <some revision>
. И "по умолчанию" я установки просто стирает редакции прошел в. (Я вижу это значения по умолчанию устарели, но псевдонимы имеют ту же проблему).
Я попытался осмотреться, но не могу найти ничего, что позволило бы мне установить ветку по умолчанию для нажатия и позволить мне переопределить ее при необходимости. Кто-нибудь знает, что еще я могу сделать?
ps: Я понимаю, что я мог бы иметь отдельные клоны для каждой ветви, но я бы лучше этого не делать. Раздражает необходимость переключения каталогов, особенно когда у вас есть общая конфигурация или рабочие области редактора.
2 ответов
#!/bin/sh
HG=/full/path/to/hg # executable
if echo $* | grep -P -q -- 'push.*\s-r($|\s)' ; then
$HG $*
else
$HG $* -r default
fi
назовите его " hg " и поместите его ранее на свой путь.
возможно, вы используете Tortoise HG? Выполнение полного возврата к явному имени ветви заставит Tortoise HG помнить ветку, над которой вы работаете во время последующих коммитов. Я не уверен, какие метаданные он извлекает из этого.
hg up -r {branchname}
например
hg up -r dev