hg-git: borrar la twig remota?

¿Es posible eliminar una twig remota con hg-git ?

Puedo eliminar la label localmente ( hg bm -d old-branch ), pero no es obvio cómo decirle al server de git que haga lo mismo.

Esto fue discutido en la list de correo de Hg-Git el 13 de septiembre de 2012. La conclusión fue que eliminar las twigs remotas de Git no es algo que Hg-Git actualmente admita, y la solución consiste en usar un cliente Git separado para eliminar la twig remota .

He estado trabajando para mejorar la integración de Hg-Git con marcadores, por lo que es posible que esta capacidad esté presente en una versión futura de Hg-Git.

Discusión relacionada: https://groups.google.com/d/topic/hg-git/Zj_-JkYsFaA/discussion

Aquí hay un alias para tu hgrc

Si está en un sistema Posix, agregue este alias a su file hgrc :

 # Example invocation: # hg git-delete-remote default/bad-branch gitremotedelete = ! \ remote=`echo $HG_ARGS | sed 's_/.*__' | sed 's_.* __'`; branch=`echo $HG_ARGS | sed 's_.*/__'`; remote_url=$($HG paths $remote | sed 's_^git+ssh://__'); git_dir=$($HG root)/.hg/git; # Delete the remote branch git --git-dir=$git_dir push $remote_url :$branch; # Delete local ref to remote branch git --git-dir=$git_dir branch -rd $remote/$branch; # Delete local branch git --git-dir=$git_dir branch -D $branch echo "Don't forget to run "'`'"hg bookmark -d $branch"'`' 

E invocarlo como tal, si desea eliminar el 'default / bad-branch' de forma remota:

 # hg gitremotedelete <name of remote>/<branch to delete> hg gitremotedelete default/bad-branch 

Haciéndolo manualmente

Si desea saber lo que hace el post anterior, así es como haríamos lo mismo que una session interactiva. Esperemos que esto se pueda traducir a Windows.

Queremos eliminar la twig de Git en algún remoto. Descubramos la URL del control remoto default ; si necesita algún otro control remoto, modifique según sea necesario.

 hg paths default # git+ssh://[email protected]:some_user/some_repo.git 

¿Cuál es la raíz del repository?

 hg root # /home/You/current_repo 

Cambie al directory de Git bajo la raíz de repo

 cd /home/You/current_repo/.hg/git 

Exprese las palabras mágicas que hacen que Git elimine una sucursal remota, pasando la URL del repository remoto en el estilo que Git espera

 git push [email protected]:some_user/some_repo.git :branch-to-delete 

También elimine la twig de seguimiento remoto, porque Git no la elimina automáticamente. Hg-Git genera las tags de reference remota sobre la marcha desde las references de seguimiento remoto, por lo que eliminar la twig de seguimiento remoto en Git es necesario y suficiente para no ver la label en Mercurial.

 git branch -rd default/branch-to-delete 

Finalmente, elimine la sucursal local de Git (ref local de):

 git branch -d $branch