Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/10/2011, à 22: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