#1 Le 25/10/2011, à 21:04
- luron
Conversion d'un dépôt bzr en un dépôt git
Paquets nécessaires
Installons les paquets nécessaires:
sudo apt-get install bzr-fastimport git
Conversion
Ensuite, plaçons-nous dans le dossier du dépôt:
cd /chemin/vers/le/dépôt
et lançons la commande suivante (attention: les fichiers de versionnage de bzr seront supprimés; au besoin, faire une copie du dépôt avant de lancer la commande):
git init && bzr fast-export $(pwd) | git fast-import && rm -r .bzr && git reset HEAD
Fichiers à ignorer
Si un fichier .bzrignore était utilisé, renommons-le pour que git puisse le reconnaître:
git mv .bzrignore .gitignore
Et appliquons les changements:
git commit -m "Renommage de «.bzrignore» en «.gitignore» pour que git puisse reconnaître les fichiers à ignorer"
Étiquettes
Si des étiquettes étaient utilisées dans le dépôt bzr, elles auront été importées par git, par exemple:
git tag
1.0
Dans l'exemple ci-dessus, la commande git tag n'affiche qu'une seule étiquette, soit 1.0. Pour vérifier s'il s'agit d'une étiquette légère ou annotée, nous pouvons afficher ses détails:
git show -s 1.0
S'il n'y a pas de champ Tagger affiché au début, c'est qu'il s'agit d'une étiquette légère. Nous pouvons le vérifier également avec la commande suivante, qui liste seulement les étiquettes annotées:
git for-each-ref --format='%(tag)' refs/tags
Si la sortie est vide, il n'y a donc pas d'étiquette annotée.
Pour convertir l'étiquette légère 1.0 en étiquette annotée:
git tag -a -f 1.0 1.0 -m "Première version stable (ou tout autre message pertinent)"
Dépôt distant
Maintenant, ajoutons un dépôt distant (ne pas oublier d'adapter URL):
git remote add origin URL
ce qui va nous permettre de publier le code sur ce dépôt distant:
git push origin master
À noter que les étiquettes ne sont pas publiées par défaut sur le dépôt distant. Si nous voulons les publier, il faut donc le préciser explicitement, soit en deux commandes:
git push origin master
git push origin master --tags
soit en une seule:
git push origin master --tags :
Génération d'archives avec git
Si nous utilisons git pour générer une archive zip, par exemple:
git archive master --format=zip -9 --prefix=monLogiciel/ --output monLogiciel.zip
ou une archive tar, par exemple:
git archive master --format=tar --prefix=monLogiciel/ | bzip2 > monLogiciel.tar.bz2
il est possible de ne pas inclure certains fichiers dans l'archive, comme .gitignore. Pour ce faire, créer un fichier .gitattributes:
touch .gitattributes
et y inclure les commandes d'exclusion appropriées, par exemple:
echo ".gitattributes export-ignore" >> .gitattributes
echo ".gitignore export-ignore" >> .gitattributes
Note: d'autres commandes peuvent être ajoutées (voir la section Export d'un dépôt du livre Pro Git).
Ensuite, valider les modifications:
git add .gitattributes
git commit -m "Modifications de données d'attribut Git pour l'export d'un dépôt"
Hors ligne