Question

Je voudrais savoir s'il y a un moyen de marquer automatiquement une changeset telle qu'elle est engagée localement ou lorsqu'il est poussé au dépôt du four.

Je voudrais tout d'avoir une changeset étiquette avec le numéro de version / build. Je prévois de stocker mes numéros de version / build dans une base de données et que vous souhaitez avoir un script récupérer cette valeur à partir de la base de données et ajouter une balise à l'changeset. Est-il possible d'invoquer automatiquement un script pour le faire comme un événement post-commit ou un événement post-poussée lorsqu'il est poussé au dépôt du four?

Je suis aussi ouvert à toutes les autres approches pour réaliser le marquage automatique sur tous les commits / push.

Était-ce utile?

La solution

Au lieu de créer une étiquette pour chaque changeset, pourquoi ne pas essayer une des options suivantes:

  • Utilisez le hachage changeset comme identifiant?
  • Utilisez une chaîne générée à partir du journal en tant que votre identifiant (voir ci-dessous)?

Une chaîne descriptive peut être générée à partir du journal à l'aide de cette commande:

hg log -r 1.7.2 --template '{latesttag}-{latesttagdistance}-{node}\n'

Le résultat prend la forme:

<latest tag>-<# changesets since latest tag>-<changeset hash>

Par exemple, sur mon clone local du repo Mercurial, cela génère:

1.7.2-2-5e51254ad4d4c80669f462e310b2677f2b3c54a7

Ce qui me dit qu'il ya eu deux commits depuis balise 1.7.2 et le hachage actuel est changeset 5e51254a.

Dans Mercurial, chaque balise crée un nouveau changeset. Donc, si vous marquez tous les commits, vous doublez le nombre de changesets dans la prise en pension. Vous devez utiliser les outils intégrés (comme décrit ci-dessus) plutôt que d'essayer de réinventer la roue.

Autres conseils

  

Je voudrais savoir s'il y a un moyen de marquer automatiquement une changeset telle qu'elle est engagée localement ou lorsqu'il est poussé au dépôt du four.

Vous pouvez toujours écrire un crochet poste engager à le faire.

  

Je voudrais tout d'avoir un changeset étiquette avec le numéro de version / build.

Les tags sont utiles pour identifier les moments importants de votre engagement historique. Fournir ces moments-là un nom significatif qui a trait au développement des produits comme la version 1.0, la version 1.3, etc.

Si vous deviez faire une étiquette à chaque changement de jeu alors vous simplement augmenter le niveau de bruit. Vous aurez toujours besoin de conserver des informations sur les balises importantes où certains.

Considérez étiquette comme méta-informations sur le changement ensembles. Tous ne méritent pas la même importance. Pas tous d'entre eux exigent que les informations de méta.

En regardant les balises peut vous donner l'histoire de sens que lorsque vous les utilisez avec parcimonie.

  

crochets

Voir:

Exemple: Exécuter après changegroup a été ajouté par push, pull ou dégrouper. Je l'ai utilisé pour déclencher automatiquement builds.

[hooks]
changegroup.yyyy = command 

De même, il est post-commit, crochets post-poussoirs

[hooks]
post-<command> =  command
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top