Как изменить ветку по умолчанию для 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