suivi des sous-modules git le plus récent
nous sommes en train de déplacer notre (énorme) projet vers git et nous envisageons d'utiliser des sous-modules. Notre plan est d'avoir trois têtes différentes dans le superproject: release, stable, dernière. Les chefs de projet s'occuperont des branches release et stable. Ils déplaceront les sous-modules selon les besoins.
la question est La "dernière" de la tête. Nous aimerions que le superproject" latest " head suive les branches maîtresses de tous les sous-modules (automatiquement). Et aussi ce serait génial si il montrerait l'histoire de tous les engage au sous-module.
j'ai regardé gitslave, mais il n'est pas tout à fait ce que nous voulons. Toutes les suggestions?
1 réponses
Mise À Jour Mars 2013
Git 1.8.2 a ajouté la possibilité de suivre les branches.
"
git submodule
"a commencé à apprendre un nouveau mode pour intégrer avec la pointe de la branche distante (par opposition à l'intégration avec la propagation enregistrée dans le gitlink du superproject).
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
Voir Aussi Le submodules .
Voir " Comment faire un sous-module existant suivre une branche " (si vous en avait un sous-module déjà présent vous désirez permettrait de suivre une direction)
Note:
git submodule add -b . [URL to Git repo];
^^^
Voir git submodule
l'homme page :
une valeur spéciale de
.
est utilisée pour indiquer que nom de la branche dans le sous-module doit être le même nom que la branche courante dans le référentiel actuel .
voir commit b928922727d6691a3bdc28160f93f25712c565f6 :
submodule add
: si --branch
est indiqué, inscrivez-le dans .gitmodules
Cela vous permet d'enregistrer facilement un
submodule.<name>.branch
option.gitmodules
lorsque vous ajoutez un nouveau sous-module. Avec ce patch,
$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>
réduit à
$ git submodule add -b <branch> <repository> [<path>]
cela signifie que les appels futurs à
$ git submodule update --remote ...
recevra les mises à jour de la même branche que vous avez utilisée pour initialiser le sous-module, ce qui est généralement ce que vous voulez.
Signed-off-by: W. Trevor King
réponse Originale à cette question (février 2012):
un sous-module est une commit unique référencée par un parent repo.
Puisqu'il s'agit d'un git repo à part entière, l ' "histoire de tous les commits" est accessible à travers un git log
à l'intérieur de ce sous-module.
ainsi pour un parent de suivre automatiquement la dernière commit d'un donné branche d'un sous-module, il aurait besoin de:
- cd dans le sous-module
- git fetch / pull pour s'assurer qu'il a la dernière propagation sur la branche droite
- cd de retour dans la mère repo
- ajouter et valider pour enregistrer la nouvelle livraison du sous-module.
gitslave (que vous avez déjà regardé) semble être le meilleur ajustement, , y compris pour l'opération de commission .
il est un peu ennuyeux d'apporter des modifications au sous-module en raison de l'exigence de vérifier sur la branche de sous-module correcte, faire le changement, commit, puis aller dans le superproject et commit la commit (ou au moins enregistrer la nouvelle localisation du sous-module).
les autres variantes sont détaillé ici .