2010-05-05 2 views
8

Ich mag es, benannte Zweige in Mercurial zu erstellen, um mit Funktionen zu arbeiten, die eine Weile dauern könnten, um Code, also wenn ich drücke, mache ich eine hg push -r default um sicherzustellen, dass ich nur Änderungen an den Standardzweig dränge. Es ist jedoch ein Schmerz, sich an jedes Mal, wenn ich einen Push- oder Outgoing-Befehl mache, an zu erinnern.Wie ändert man den Standardzweig, um mercurial einzubringen?

Also habe ich versucht, dieses Problem zu beheben, indem Sie diese Konfiguration auf das Hinzufügen meiner ~/.hgrc:

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

Das Problem ist, sie diese Config-Linien sind nicht wirklich Standardwerte, Aliase sind. Sie arbeiten wie beabsichtigt, bis ich versuche, eine zu tun. Und der "Standard", den ich eingerichtet habe, löscht nur die Revision, die ich übergeben habe. (Ich sehe das defaults are deprecated, aber Aliase haben das gleiche Problem).

Ich habe versucht, mich umzusehen, aber ich kann nichts finden, das mir erlauben wird, einen Standardzweig zu setzen und zu erlauben, dass ich ihn überschreibe, wenn es notwendig ist. Wer weiß von etwas anderem, das ich tun könnte?

PS: Ich weiß, dass ich für jeden Zweig separate Klone haben könnte, aber ich würde das lieber nicht tun. Es ist ärgerlich, Verzeichnisse wechseln zu müssen, insbesondere wenn Sie Konfigurations- oder Editor-Arbeitsbereiche freigegeben haben.

Antwort

5

Ich denke nicht, dass Sie es mit reinem Quecksilber tun können, kurz, einen Klon mit nur diesem Zweig darin zu haben (was ich vorschlagen sollte, bis Sie sagten, dass es nicht Ihre Tasse Tee war). Wenn es wirklich Sie töten können Sie einen kleinen Wrapper-Skript wie erstellen:

#!/bin/sh 
HG=/full/path/to/hg # executable 
if echo $* | grep -P -q -- 'push.*\s-r($|\s)' ; then 
    $HG $* 
else 
    $HG $* -r default 
fi 

Namen es ‚hg‘ und legen es früher in dem Weg.

+0

Ich hatte das Skript zu ändern, einige es „-r default“ auf Befehle anders als Push-und ausgehenden nicht machen hinzufügen, aber dank sehr viel für den Schub in der richtigen Richtung. – timmfin

1

Verwenden Sie Tortoise HG vielleicht? Wenn Sie eine vollständige Zurücksetzung auf einen expliziten Zweignamen vornehmen, erinnert sich Tortoise HG an den Zweig, an dem Sie während nachfolgender Commits arbeiten. Ich bin mir nicht sicher, aus welchen Metadaten das stammt.

hg up -r {branchname} 

z.B.

hg up -r dev