2010-07-23 7 views
4

Je suis à la recherche d'un DVCS qui me permettrait d'utiliser quelque chose comme un « nommé commit » - semblable à ce que les files d'attente correctifs à atteindre, mais pas tout à fait ... (je vais comparer seulement à mq et stg, puisque je ne connais pas d'autres semblables)DVCS avec « nommé engage »

files d'attente de patch sont proches, mais je voudrais ces caractéristiques:

  • Création d'une nouvelle branche dans le référentiel, branches aussi série de patchs. (M q utilise des files d'attente de patch global, git perd l'information tout en stg branches et branches avec des parcelles actuellement appliquées)
  • Capacité à la liste des « nommés » commits, pop et les pousser comme des patches. (À la fois faire)
  • Lier le « nom commit » des modifications à commits normales - de sorte que lorsque je crée un patch à rev 1, je change le patch à rev 3, je peux encore la caisse rev 1 et voir l'ancienne version. (mq est à nouveau global, stg échoue avec "pas sur n'importe quelle branche" quand je reviens à la révision plus ancienne)
  • Comme ci-dessus vraiment - possibilité de marquer une révision de telle sorte que si je le vérifie, je reçois le " nommé commet "J'avais alors.

Y at-il quelque chose de semblable là-bas? Des extensions à certains DVCS? Ou peut-être il y a un moyen de faire mq ou stg se comporter comme je le veux? Aucune suggestion?

Il semble que qui conserve ses informations est dans le même rapport que d'autres fichiers, serait proche de ce dont j'ai besoin, mais est-ce encore possible?


Juste pour expliquer le but rapidement: je veux garder les correctifs appliqués tout le temps, mais ils ne sont pas « partie du développement ». Je veux juste que plusieurs caractéristiques spécifiques soient conservées séparément dans ma propre fourchette du dépôt principal.

+0

Est-ce ce que vous cherchez? http://mercurial.selenic.com/wiki/Tag – msw

+0

Je pourrais utiliser des étiquettes, mais je devrais les nommer d'une manière spécifique. Si créer 2 "tags spéciaux", alors branchez et supprimez le premier (et seulement ce) commité marqué dans cette branche - comment puis-je facilement dire quels correctifs sont appliqués en ce moment et lesquels ne le sont pas? Bien, je vais vérifier si je peux en quelque sorte le script dans mercurial ...Si c'était fait de façon transparente, ce serait une solution vraiment douce! Merci pour cette idée. – viraptor

+0

J'ai commencé récemment à utiliser des branches nommées dans mercurial pour chaque fonctionnalité que je développe et à la fusionner quand elle est terminée. Seules les fautes de frappe et les correctifs sont effectués directement dans la branche par défaut. Vous pouvez également utiliser des tags si vous recherchez une solution plus légère. – tux21b

Répondre

1

Vous pouvez le faire avec Mercurial en utilisant mq à l'intérieur de son propre repo. La plupart des commandes ont un drapeau --mq qui fonctionnera sur la file d'attente de patch. Pour commencer l'utilisation hg init --mq (hg qinit fonctionne également, mais ce modèle est plus limité, d'autant plus que qpush seraient surchargées). Cela crée un repo à l'intérieur de .hg/patches, qui est indépendant du dépôt principal. Ensuite, utilisez mq comme d'habitude. Lorsque vous souhaitez valider votre file d'attente de correctifs, utilisez hg commit --mq.

Vous pouvez également marquer et branche avec le drapeau --mq, de garder une trace des différentes têtes. Malheureusement, il semble que l'extension Bookmarks ne supporte pas encore mq, ce qui serait bien puisque vous voulez probablement des labels légers. Si vous le souhaitez, vous pouvez cependant définir un alias pour qbookmark qui ajoute simplement le -R .hg/patches afin qu'il fonctionne sur le repo de la file d'attente de correctifs.

Je ne l'ai pas beaucoup utilisé moi-même, mais il semble que suffisamment de commandes natives Mercurial supportent --mq pour en faire une solution possible pour vous.