Git équivalent de l'extension de mot-clé $ URL $ de subversion
Je suis envisagent la migration de subversion vers git. L'une des choses que nous utilisons à la subversion de nos administrateurs système de gérer les choses comme les fichiers de configuration. À cette fin, nous avons mis $URL$
dans chaque fichier, qui s'étend à l'emplacement du fichier dans la subversion de l'arbre. Cela permet aux administrateurs de rechercher un fichier sur certains arbitraire de l'hôte et de déterminer où dans l'arbre dont elle est issue.
Le plus proche de l'analogique que j'ai pu trouver est gitattributes. Il est le filter=
la directive, mais il semble que git n'a pas à communiquer au filtre de ce nom de fichier, c'est le filtrage, ce qui serait nécessaire pour activer $URL$
dans un chemin.
Il y a aussi le ident
directive, qui serait à son tour $Id$
dans le blob de hachage. Cela pourrait être utilisable si l'on pouvait la carte que de retour dans un nom de chemin, mais mon git-fu n'est pas assez fort.
Des suggestions?
Le flux de travail est comme suit:
- Admin valide les modifications sur le système des pensions de
- Admin mises à jour d'un emplacement central qui a vérifié les pensions de
- Admin tire les modifications de l'hôte à l'aide de cfengine
source d'informationauteur Rudedog
Vous devez vous connecter pour publier un commentaire.
Comme mentionné dans "Ne git avoir quelque chose comme
svn propset svn:keywords
ou pré-/post-commit crochets?"Git ne prend pas en charge l'expansion de mots clés."Traiter avec SVN expansion de mots clés avec git-sv" fournit une solution basée sur
git config filter
(ce qui n'est pas exactement ce que vous voulez) et/ou gitattributes.Le plus proche exemple, si les informations du fichier d'extension je trouve qu'il est toujours basé sur la purification, le nettoyage approche, avec cette git le filtre de Hachagemais la partie propre supprime le fichier, et pas de chemin peut être trouvé.
Ce fil en fait des sorts (ainsi que de mentionner certains git-fu commandes qui peuvent contenir ce que vous cherchez, je n'ai pas testé):
Car il est de nos jours la
%f
option, des scripts comme git-rcs de mots-clés peut faire la tâche.Il est déjà mentionné dans cette réponse.
gitattributes(5) page de manuel:
Venir le problème à partir d'un angle complètement différent, comment les fichiers en question de la fin jusqu'à la fin des hôtes? Je suppose que aujourd'hui c'est soit vérifié directement, ou copié d'une certaine manière, déjà vérifié référentiel sur un autre hébergeur?
Si oui, pourriez-vous modifier vos processus afin que les fichiers sont extraits dans un dépôt git, et un script ne le
$URL$
ou l'autre mot-clé de l'expansion après la caisse. De cette façon, vous pouvez faire tout ce que les substitutions que vous aimez, et n'est limité que par ce qui peut être compris par un script dans un extrait du référentiel.Nous utilisons un "canonique" chemin de la solution dans nos déploiements (ils sont tous internes, FWIW).
Tous les logiciels se passe dans, par exemple, /d/sw/xyz/un.c ou D:\SW\xyz\a.c
Toutes les Url pour les fichiers déployés refléter, par exemple, http://host/d/sw/xyz/a.c.
Url pour les fichiers du référentiel de commencer à "sw" par exemple git://githost/gitrepo/xyz/un.c
Nous codent ces canonique chemins dans la configuration (faut-il jamais besoin de changer), et nous avons scripts/Api qui génèrent de référence/l'Url à la volée pour la liaison dynamique entre les composants.