Question

Je suis habitué au mercurial mq extension Pour maintenir un ensemble de correctifs personnalisés sur l'amont. Ils peuvent être publiés en tant que référentiel distinct en dehors de l'amont. Maintenant, en git, j'utilise des succursales privées et rebase, et cela fonctionne bien jusqu'à ce que je veuille partager mes correctifs avec quelqu'un d'autre.

Dans Mercurial, la file d'attente de patch est un référentiel indépendant et peut être publié comme d'habitude. BitBucket propose même une fonction de file d'attente de correctifs pour le lier au référentiel parent. Dans GIT, si je publie une branche privée avec mes correctifs, je perds la possibilité de les réprimander (à moins que je ne casse les fusions), mais les correctifs doivent être mis à jour de temps en temps.

De une autre question si J'ai trouvé que dans le monde git stgit est proposé comme un équivalent pour mq. Il est similaire à mq, mais comment publier une file d'attente de patch avec STGIT?

(stg publish Semble être imprégné de créer une nouvelle succursale «Fust Friendly», de ne pas publier les patchs eux-mêmes)

Quelles sont les autres approches pour publier des files d'attente de patch dans GIT?

Était-ce utile?

La solution

Pour résumer les réponses et les commentaires. Avec git Il existe deux approches pour publier de petites modifications personnalisées sur la distance en amont:

  • Oubliez rebase, publier une succursale et de nouvelles fusions si nécessaire
  • Déclarez qu'une branche reprend, rébase et publie (Pro: Clean History, Contra: peut être une douleur à utiliser en continu par quelqu'un d'autre, exemple: Linux-next)

Jusqu'à présent, le flux de travail de la file d'attente de patch pure ne semble pas être faisable avec Git, mais culpabilité semble être très proche de mq, même les noms des commandes. Il ne permet pas une file d'attente de correctifs contrôlée (et publiable).

Autres conseils

Compte tenu des commentaires donnés, il semble qu'une approche soit plus ou moins équivalente au MQ de Mercurial utiliserait la culpabilité. Contrairement à MQ, la culpabilité ne fournit pas directement une interface pour un "référentiel de patch", mais vous pouvez tourner le .git/patches/<branch> dans un référentiel .git manuellement.

Il y a une extension git appelée git-series qui utilise GIT pour maintenir une file d'attente de patch versionnée. Il permet aux fonctionnalités similaires de mq En ce que vous pouvez maintenir plusieurs séries (équivalent à plusieurs files d'attente HG), des correctifs de refactor basés sur la rétroaction et commettre la série à Git. C'est le plus proche de mq, mais c'est suffisamment différent pour que vous vous attendiez à une prise de vue du pied.

AFAICT D'après le lien fourni sur MQ, il a à peu près les mêmes problèmes de publication que Git Rebase?

Dans l'ensemble, je pense que la publication de votre succursale, avec l'avertissement qu'il s'agit d'une succursale rebasquée est votre meilleure option. Par exemple, c'est ainsi que la branche Linux-Next est maintenue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top