tag - qué tipos de etiquetas existen en git
¿Cuál es el enfoque de Git para publicar una cola de parches? (4)
AFAICT del enlace proporcionado sobre Mq, ¿tiene los mismos problemas de publicación que git rebase?
En general, creo que publicar su sucursal, con la advertencia de que es una sucursal de rebasado, es su mejor opción. Por ejemplo, así es como se mantiene la rama linux-next.
Estoy acostumbrado a la extensión mq
Mercurial para mantener un conjunto de parches personalizados en el sentido ascendente. Se pueden publicar como un repositorio separado, aparte de la línea ascendente. Ahora en git utilizo sucursales privadas y rebase
, y funciona bien hasta que quiero compartir mis parches con alguien más.
En Mercurial, la cola de parches es un repositorio independiente, y puede publicarse como de costumbre. Bitbucket incluso ofrece una función de cola de parches para vincularlo al repositorio principal. En Git, si publico una sucursal privada con mis parches, pierdo la capacidad de volver a clasificarlos (a menos que rompa las combinaciones), pero los parches deben actualizarse de vez en cuando.
De otra pregunta de SO que encontré, que en el mundo de Git, StGit se propone como un equivalente para mq
. Es similar en uso a mq
, pero ¿cómo publico una cola de parches con StGit?
(Parece que stg publish
está destinado a crear una nueva sucursal "merge friendly", no a publicar los parches por sí mismos)
¿Cuáles son otros enfoques para publicar colas de parches en Git?
Hay una extensión de git llamada git-series
que usa git para mantener una cola de parches versionada. Permite una funcionalidad similar a mq
en el sentido de que puede mantener varias series (equivalentes a varias colas de hg), refactorizar parches según los comentarios y confirmar la serie en git. Es lo más cercano a mq
, pero es lo suficientemente diferente como para que pueda esperar algunos disparos con el pie.
Para resumir las respuestas y comentarios. Con git
hay dos enfoques para publicar pequeñas modificaciones personalizadas en el flujo ascendente remoto:
- Olvídate de
rebase
, publica una sucursal y fusiones nuevas según sea necesario - Declare que una sucursal está cambiando de base, solo haga rebase y publique (pro: clean history, contra: puede ser un dolor ser usado continuamente por otra persona, por ejemplo: linux-next)
Hasta ahora, el flujo de trabajo de la cola de parches pura no parece ser factible con git, pero la guilt parece ser muy cercana a mq
, incluso los nombres de los comandos. No permite una cola de parches controlada por versión (y publicable).
Teniendo en cuenta los comentarios dados, parece que un enfoque más o menos equivalente al mq de Mercurial sería utilizar la culpa. A diferencia de mq, la culpa no proporciona directamente una interfaz para un "repositorio de parches", pero puede convertir .git/patches/<branch>
en un repositorio de .git manualmente.