Inclure référentiel de services publics dans le principal dépôt de projet et permettre la personnalisation

StackOverflow https://stackoverflow.com/questions/9310675

Question

Je travaille sur l'amélioration de la redondance du code source dans certains projets et je suis confronté à un problème.

Disons que j'ai quelques utilitaires que j'utilise Acros plus de projets. Exemple: scripts de compilation et des scripts de test qui sont suffisamment génériques pour être utilisé sur tous les projets, mais aussi des fichiers de configuration qui peuvent être personnalisés pour chaque projet.

Je voudrais maintenir la logique build-script dans un seul endroit (la correction de bugs et l'ajout d'améliorations) et d'obtenir les changements facilement dans tous les projets qui l'utilisent, mais aussi sans casser les fichiers de configuration.

Je sais que je ne peux pas le faire avec des sous-modules git que le fichier de configuration devrait pe commited au référentiel de services publics au lieu de celui du projet.

J'ai aussi la recherche sur git- sous-arbre, mais je ne suis pas sûr que c'est faire ce que je veux.

Quelqu'un at-il entrer dans cette avant?

Était-ce utile?

La solution

Je sais que je ne peux pas le faire avec des sous-modules git que le fichier de configuration devrait être livré au référentiel de services publics au lieu de celui du projet.

Vous pourriez effectivement utiliser des sous-modules, si chacun de vos projets était un dépôt git dans son propre.
Ensuite, chaque projet (référentiel parent) renverrait commettre un particulier d'une branche spécifique du référentiel de services publics, chaque branche avec les services publics sur mesure pour chaque projet.

Cependant, pour le lien étroitement ensemble de fichiers (services publics d'un côté, les projets d'un autre), il est préférable de garder tout dans un référentiel et d'utiliser un pilote de filtre contenu :

pilote de filtre contenu

Vous auriez:

  • les utilitaires génériques versionnés en tant que modèle (sans leurs valeurs)
  • fichiers de valeur (un pour chaque projet)
  • un script versionné en mesure, à la caisse dans le script « smudge », afin de générer les utilitaires finaux dans chaque projet (à condition que votre script est en mesure de détecter du contenu des utilitaires modèle ).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top