Git-svn
Le but est de definir un workflow afin de faire du développement décentralisé sur un dépot tel que Subversion.
Pour cela nous allons utiliser Git-svn
– Création du dépot Git à partir du Subverion :
$ git svn init -s https://path/to/svn/repo dest/
ou
$ git svn init -T trunk -b branches -t tags https://path/to/svn/repo dest/
Ceci va créer un répertoire dest/
contenant le reposirory .git
Cette commande n’importe pour l’instant rien de Subversion.
C’est la commande $ git svn fetch
qui importera effectivement toutes les branches, tags et le trunk (cela peut prendre du temps !).
P.S. une autre possibilité est de directement cloner le dépot :
$ git svn clone -s https://path/to/svn/repo dest/
– Si l’on utilise svn:ignore : $ git svn show-ignore > .gitignore
– Bon ! Passons aux dev (comme d’hab, on évite de toucher à la branche master) :
$ git checkout -b dev [remotes/trunk]
$ git add ...
$ git commit -a -m "..."
– Maintenant que les dévs sont fait, on reporte sur le dépot svn :
$ git svn rebase
a pour effet de se réaligner avec la branche svn.
Ok, maintenant, reste à comitter :
$ git svn dcommit
P.I. quelques commandes utiles :
$ git branch -a
montre toute les branches (remotes compris).
$ git repack -d
permet de *packer* le dépot Git après un fetch de Subversion (diminu l’espace disque).
Un peu de conf :
$ git config --global core.name "klnavarro"
$ git config --global core.email "klnavarro@gmail.com"
$ git config --global core.editor vi
Des alias :
~/.aliasrc
alias git-svn-pull="git svn rebase"
alias git-svn-push="git svn rebase && git svn dcommit"