2010-05-05 11 views
8

Me gusta crear ramas con nombre en Mercurial para tratar las características que pueden tardar un tiempo en codificar, así que cuando presiono hago un hg push -r default para asegurarme de que solo estoy presionando los cambios en la rama predeterminada. Sin embargo, es un dolor tener que recordar -r default cada vez que hago un comando push o saliente.¿Cómo cambiar la rama predeterminada para insertar mercurial?

así que he intentado solucionar este problema mediante la adición de esta configuración a mi ~/.hgrc:

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

El problema es que esas líneas de configuración no son realmente los valores predeterminados, que son alias. Funcionan según lo previsto hasta que intento hacer un hg push -r <some revision>. Y la configuración "predeterminada" que he configurado simplemente borra la revisión que pasé. (Veo eso defaults are deprecated, pero los alias tienen el mismo problema).

He intentado buscar, pero no encuentro nada que me permita establecer una rama predeterminada para presionar Y permitirme anularla cuando sea necesario. Alguien sabe de otra cosa que podría hacer?

ps: Me doy cuenta de que podría tener clones separados para cada rama, pero preferiría no hacerlo. Es molesto tener que cambiar de directorio, especialmente cuando tiene áreas de trabajo compartidas de configuración o editor.

Respuesta

5

No creo que puedas hacerlo con mercurial puro, salvo tener un clon con solo esa rama (que estaba a punto de sugerirte hasta que dijiste que no era tu taza de té). Si lo que realmente le está matando puede crear un pequeño script de envoltorio como:

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

nombre es hg 'y ponerlo antes en su camino.

+0

tuve que modificar el guión a algunos a hacer que no añade "por defecto -r" a los comandos distintos de empuje y saliente, pero muchas gracias por el empuje en la dirección correcta. – timmfin

1

¿Estás usando Tortoise HG quizás? Hacer un revertimiento completo a un nombre de rama explícito hará que Tortoise HG recuerde la rama en la que está trabajando durante los siguientes commits. No estoy seguro de qué metadatos recoge esto.

hg up -r {branchname} 

e.g.

hg up -r dev 
Cuestiones relacionadas