Nous utilisons cette. Il s'appelle git-pup
:
#!/bin/bash
# Exists to fully update the git repo that you are sitting in...
git pull && git submodule init && git submodule update && git submodule status
Il suffit de le mettre dans un répertoire bin (/usr/local/bin). Si sur Windows, vous devrez peut-être modifier la syntaxe pour le faire fonctionner :)
Mise à jour:
En réponse à la remarque de l'auteur original sur le tirant dans tous les Chefs de tous les submodules -- c'est une bonne question.
Je suis assez sûr que, git
n'ont pas une commande interne. Pour ce faire, vous devez identifier ce que la TÊTE est vraiment pour un sous-module. Cela pourrait être aussi simple que de dire master
est la plus à jour de la branche, etc...
Suite à cela, créer un script simple qui est le suivant:
- vérifiez
git submodule status
"modifiés" référentiels. Le premier caractère de la sortie des lignes de indique ce. Si un sous-repo est modifié, vous ne voulez PAS continuer.
- pour chaque pensions de liste, cd dans son répertoire et lancez -
git checkout master && git pull
. Vérifier les erreurs.
- À la fin, je vous suggère d'imprimer un écran pour l'utilisateur d'indiquer l'état actuel de la submodules, peut-être les inciter à ajouter tous et de s'engager?
Je tiens à mentionner que ce style n'est pas vraiment ce que submodules ont été conçus pour. En général, vous voulez dire "LibraryX" est à la version "2.32" et va le rester jusqu'à ce que je lui dis de "mise à niveau".
C'est, en un sens, ce que vous faites avec la décrit script, mais juste plus automatiquement. Besoin de soins!
Mise à jour 2:
Si vous êtes sur une plate-forme windows, vous pouvez rechercher à l'aide de Python pour mettre en œuvre le script car il est très capable dans ces domaines. Si vous êtes sous unix/linux, alors je suggère simplement un script bash.
Besoin de précisions? Il vous suffit de poster un commentaire.