Project

General

Profile

Utilisation de GIT

Le projet QExtend étant hébergé par dvp, il est proposé via le système Subversion. Cependant pour des raisons x ou y, on peut préférer l'utilisation de GIT pour travailler. Cette préférence ne sera pas débattu ici, nous nous intéresseront plutôt à la bonne manière de procéder.

Prérequis

  • GIT
  • Plugin git-svn

Windows

L'installation se fait grâce à msysGIT : http://code.google.com/p/msysgit/
Tout est compris dans le paquet et les options par défaut conviennent très bien.

Linux

Tout dépend de la distribution, mais toutes proposent le bon duo. Il suffit d'utiliser le gestionnaire de paquet de la distribution quelques exemples :
  • Archlinux
    # pacman -S git git-svn
    
  • Gentoo
    # USE="subversion" emerge git
    
  • Debian/Ubuntu
    # apt-get install git-core git-svn
    

Initialisation

Pour la suite, les instructions seront en lignes de commandes.
Une première phase, bien qu'optionnelle permet de donner un minimum d'information sur l'utilisateur :

$ git config --global user.name "Votre Nom" 
$ git config --global user.email ceci@estmonmail.com

Récupération pour lecture seule

Un clone, mis à jour une fois par semaine, est disponible sur gitorious.org. C'est la manière la plus simple de récupérer les sources de QExtend :

$ git clone git://gitorious.org/qextend/qextend.git

Récupération pour lecture / écriture

Pour pouvoir écrire des changements sur le repos svn, outre les droits d'écriture fournit par l'équipe Qt, il faut créer le lien entre git et le repos hébergé par dvp.
Deux méthodes se distingues par leurs temps d'acquisitions.

  • Récupération complète de l'historique. Plus simple, mais plus longue.
    $ git svn clone http://subversion.developpez.com/projets/qextend -T trunk -b branches -t tags
    
  • Répération partielle. Plus complexe, mais plus rapide.
    // Création du dossier pour QExtend
    $ mkdir mon-qextend
    $ cd mon-qextend
    // Initialisation GIT / SVN
    $ git svn init http://subversion.developpez.com/projets/qextend -T trunk -b branches -t tags
    // Récupération des sources de la révision 84
    $ git svn fetch --revision 84
    

Post-initialisation

Utilisation de la branche de développement:

$ git checkout -b mydev dev

Ajouter les paramètres svn:ignore à la liste d'exclusion de git:

$ git svn show-ignore >> .git/info/exclude

Utilisation

A partir de là, vous pouvez utiliser GIT de manière normale.

  • Mise à jour avec le svn de dvp : equivalent de git pull
    $ git svn rebase
    
  • Envoi des modifications vers le svn : equivalent de git push
    $ git svn dcommit
    

Ressources complémentaires

http://www.kernel.org/pub/software/scm/git/docs/git.html
http://www.kernel.org/pub/software/scm/git/docs/git-svn.html
http://git.or.cz/course/svn.html