precio - mercurial svn
¿Cuáles son las mejores y imprescindibles extensiones hg/mercurial? (5)
He estado metiéndome en hg / mercurial últimamente, concretamente en colaboración con Fogcreek''s Kiln, y estoy intentando descubrir cuáles son las extensiones imprescindibles. Es un poco complicado revisar su lista de extensiones porque no estoy interesado en probar ninguna extensión defectuosa o poco práctica, incluso si su descripción suena increíble.
Entonces, ¿qué extensiones de hg usas?
Vea el uso de extensiones
Aún no mencionado: mercurial_keyring
https://www.mercurial-scm.org/wiki/KeyringExtension
"La extensión de Keyring utiliza los servicios de la biblioteca de claves para guardar de forma segura las contraseñas de autenticación (HTTP / HTTPS y SMTP) utilizando una base de datos de contraseñas específica (Gnome Keyring, KDE KWallet, OSXKeyChain, soluciones dedicadas para Win32 y línea de comandos)."
Uso ssh para acceder a mis repositorios en GitHub y Bitbucket, y mi frase clave está en el llavero. Esta extensión le permite a Mercurial obtenerla siempre que sea necesario.
También es necesario para mí: hg-git
El complemento Mercurial le permite extraer y enviar repositorios git usando hg como cliente. Úsalo todo el tiempo.
Mi lista:
Gramlog Lo uso mucho más que hg log. (desearía poder restringirlo a las ramas)
purga. eliminar todos los archivos que no estén en Mercurial. Uso esto en lugar de o como una versión más limpia de make clean.
Menos utilizado, pero agradable:
- niños (le permite decir "hg children -r XXX")
- parentrevspec: te permite decir cosas como "foo ~ 2 = foo ^ 1 ^ 1 = foo ^^ = primer padre del primer padre de foo"
Sigo tratando de usar las herramientas de edición de historial, pero sigo corriendo en las limitaciones. Quiero que trabajen.
- colapso
- histedit
- Considero que rebase una edición de historia tol también
Por cierto, tenga cuidado: hgk y fetch no son amados: https://www.mercurial-scm.org/wiki/UnlovedFeatures . Pero entonces, los SubRepos no son desagradecidos, sino una característica de último recurso, y yo uso subrepos.
Mi propia lista de aciertos:
Los simples que debes tener:
-
color
:color
salida de comandos comodiff
ystatus
, lo que hace que sea más fácil de evaluar. -
pager
: explore la salida larga de una página a la vez. -
fetch
: extraer, actualizar y fusionar de otro repositorio en un solo paso. -
graphlog
: muestra gráficos de revisión en tu caparazón, increíblemente útil para mirar las ramas en tu historial de registro. -
hgk
:hgk
el repositorio con una interfaz gráfica (vea también TortoiseHg y Murky)
Si habilita el pager
, debe configurarlo para que no interfiera con ciertos comandos:
[pager]
pager = LESS=''FSRX'' less
ignore = version, help, update, serve, record
Las extensiones intermedias que recomiendo (y uso con frecuencia):
-
record
: le permite seleccionar de manera interactiva trozos de archivos para comprometer, perfecto para cuando se encuentra en medio de un conjunto de cambios, y termina arreglando algo que debería tener su propio compromiso. -
extdiff
: configure una herramienta externa diff (como meld) -
share
: tener varios clones usar el mismo historial de repos.
Las extensiones avanzadas no me quedarían sin:
-
mq
: gestiona una pila de parches. Muy potente, permite la superposición de parches en la parte superior del árbol. -
notify
: enviar notificaciones por correo electrónico cuando se cambia unnotify
. -
rebase
:rebase
aplicar los cambios locales encima de una nueva revisión principal. -
largefiles
: trabaja con archivos binarios grandes fuera de la tienda hg
Todo lo anterior está incluido con Mercurial, y es estable y está bien probado. Los recomiendo a todos.
Extensiones no centrales vale la pena investigar:
-
shelve
: selectivamente dejar de lado los cambios (en la granularidad de los trozos) y restaurarlos. -
acl
: selectivamente permite el acceso a diferentes partes del árbol de repositorio
Extensiones reemplazadas y migradas al núcleo (información de @ durin42):
-
forest
fue reemplazado por el soporte desubrepo
introducido en v1.3 -
bookmarks
están en el núcleo y siempre están habilitados -
transplant
es reemplazado porgraft
, un comando central -
histedit
está en core a partir de v2.3, pero está deshabilitado por defecto - no se recomienda
inotify
, ya que aparentemente hay un error debido a una condición de carrera
Si está trabajando con un host lento como Bitbucket, el progress es esencial. De lo contrario, hg push
parece que está colgado: /
graphlog
y mq
son especialmente sabrosos.
- Convertir: convertir hacia y desde otros sistemas
- Mq (Mercurial Queues): trata los cambios como una pila de parches
- Bosque: le permite comprometerse y actualizar muchos repositorios Mercurial anidados a la vez
- Compartir: para ahorrar tiempo y espacio en disco cuando se trabaja con repositorios similares
- Hgk: da una vista gráfica de la historia
- Graphlog: siempre escribo ''hg glog'' no ''hg log''. Una visión de arte ascii de la historia
- Trasplante: Útil cuando solo quiere fusionar algunos conjuntos de cambios desde otra rama. La nueva base de datos
hg rebase
puede tener cierta superposición. - Rebase: una forma diferente de lidiar con los cambios como un conjunto de conjuntos de cambios en la parte superior de una rama.
git
usuarios degit
les gusta rebasear. Puede reemplazarmq
para muchos casos de uso. - Dejar de lado: un lugar donde esconder los cambios de la copia de trabajo si tienes que trabajar en otra cosa por un tiempo.
- Marcadores: nombra la confirmación más reciente en una rama en particular. Similar a las ramas de
git
.