Как изменить ветку по умолчанию, чтобы вставить в Mercurial - PullRequest
8 голосов
/ 06 мая 2010

Мне нравится создавать именованные ветви в Mercurial, чтобы иметь дело с функциями, которые могут занять некоторое время для кодирования, поэтому, когда я нажимаю, я делаю hg push -r default, чтобы убедиться, что я только выдвигаю изменения в ветку по умолчанию. Тем не менее, каждый раз, когда я делаю push-команду или исходящую команду, вспоминать -r default неприятно.

Поэтому я попытался исправить это, добавив этот конфиг в мой ~ / .hgrc:

[defaults]
push = push -r default
outgoing = outgoing -r default

Проблема в том, что эти строки конфигурации не являются значениями по умолчанию, они являются псевдонимами. Они работают, как задумано, пока я не попытаюсь сделать hg push -r <some revision>. И «настройки по умолчанию», которые я установил, просто стирают ревизию, которую я передал. (Я вижу, что значения по умолчанию устарели , но псевдонимы имеют ту же проблему).

Я попытался осмотреться, но не могу найти ничего, что позволило бы мне установить ветку по умолчанию для нажатия И и позволить мне переопределить ее при необходимости. Кто-нибудь знает что-нибудь еще, что я мог сделать?

ps: я понимаю, что у меня могут быть отдельные клоны для каждой ветви, но я бы не стал этого делать. Раздражает необходимость переключать каталоги, особенно когда у вас есть общая конфигурация или рабочие области редактора.

Ответы [ 2 ]

5 голосов
/ 06 мая 2010

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

#!/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" и поместите его ранее на своем пути.

1 голос
/ 14 января 2011

Возможно, вы используете Tortoise HG? Выполнение полного возврата к явному имени ветки заставит Tortoise HG запомнить ветку, над которой вы работаете во время последующих коммитов. Я не уверен, из каких метаданных это получается.

hg up -r {branchname}

, например

hg up -r dev 
...