2011-02-23 12 views
27

Me gustaría definir un alias de comando Mercurial en mi archivo hgrc que invoca múltiples comandos. Por ejemplo, me gustaría hacer algo como lo siguiente:¿Cómo (es posible) crear un alias de comando hg que ejecuta múltiples comandos?

[alias] 
giveup = revert --all --no-backup; purge 
syncprod = fetch production; push production 

Esto me permitiría llamar hg syncprod y tienen que invocar una zona de alcance y luego un empujón. No se ha podido determinar si esta capacidad existe. (Supongo que eso significa que no.)

Respuesta

28

utilizar el estilo de alias de cáscara de esta manera:

giveup = !$HG revert --all --no-backup ; $HG purge 

Aunque, personalmente, que acababa de crear un alias de fiesta para aquellos que yo pudiera omitir la parte del todo hg .

+3

¿Hay alguna manera de hacer esto en Windows? –

+1

Bajo cygwin sospecho que lo mismo funcionaría, pero de lo contrario tal vez sea mejor escribir un giveup.bat (o cmd o lo que sea que use powershell). –

+3

Puede llamar a powershell o cmd desde el alias. P.ej. Utilizo el siguiente alias con powershell: 'amend =! Powershell -NoProfile -Command hg ci -m $ (cat.hg \ last-message.txt)' –

7

No puedo comentar la respuesta anterior, pero para cualquier otra persona que quiera hacer esto en Windows, la sintaxis siguiente funcionó para mí, sin tener que usar PowerShell o cygwin.

giveup = !hg revert --all --no-backup && hg purge 

Alternativamente, esta versión se ejecutará la purga con independencia de si la operación de revertir tuvo éxito:

giveup = !hg revert --all --no-backup & hg purge 

Es posible encadenar más de dos comandos, por ejemplo:

shebase = !hg shelve && hg rebase && hg unshelve 
Cuestiones relacionadas