Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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

Haut de page ↑