La gestion des sources avec subversion

Le but est d'acquérir les connaissances de gestionnaire de code source subversion utilisé par la communauté Plone.

Savoir

  • Création d'un dépôt

  • Dump d'un dépôt

  • Utilisation de subversion en ligne de commande

  • Commandes :

    add cat changelist (cl) checkout (co) cleanup commit (ci) copy (cp) delete (del, remove, rm) diff (di) export help (?, h) import info list (ls) lock log merge mergeinfo mkdir move (mv, rename, ren) propdel (pdel, pd) propedit (pedit, pe) propget (pget, pg) proplist (plist, pl) propset (pset, ps) resolve resolved revert status (stat, st) switch (sw) unlock update (up)

  • Introduction à subversion

  • Un livre de référence : svnbook Red Bean

Création d'un dépôt via Apache

http://doc.ubuntu-fr.org/subversion

Création et configuraton d'un dépôt à travers Apache :

$ sudo apt-get install apache2 libapache2-svn subversion
$ sudo vim /etc/apache2/mods-enabled/dav_svn.conf
<Location /Formation>
    DAV svn
    SVNPath /home/svn/Formation
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dav_svn.passwd
    Require valid-user
</Location>
$ /etc/init.d/apache2 restart
$ htpasswd -cs /etc/apache2/dav_svn.passwd anthony
$ htpasswd -s /etc/apache2/dav_svn.passwd vincent
$ htpasswd -s /etc/apache2/dav_svn.passwd stephane
$ mkdir /home/svn
$ svnadmin create /home/svn/Formation
$ chown -R www-data:www-data /home/svn/Formation

Installation du client subversion

Sous Linux :

$ apt-get install subversion

Sous Windows, installez SlickSVN à partir du site http://subversion.tigris.org

Administration d'un dépôt subversion

Faire un dump d'un dépôt existant

Exécutez :

$ svnadmin dump /home/svn/Formation > /tmp/svn_agile.dump

Importer les révisions dans un autre dépôt

Commandes :

$ svnadmin create /home/svn/autre
$ svnadmin load /home/svn/autre < /tmp/svn_agile.dump

On vérifie :

$ svn co file:///home/svn/autre

Mettre à jour la branche de production

Vous avez commité un changement dans le trunk, il faut le backporter dans la branche production.

Le commit sur le trunk est la révision 1023, pour merger ce commit sur la branche de production :

$ cd path/to/trunk/workingcopy
$ svn info
URL : <url_to_repository>/trunk
trunk$ cd ../branches/production
branches/production$ svn merge -c 1023 <url_to_repository>/trunk .

Puis il faut commiter le résultat en précisant dans le message les numéros de versions et leur origine :

$ cd path/to/branches/production
$ svn info
...
Révision : 1025
...
branches/production$ svn ci -m"Merged -r1023:1025 from trunk"

Connaitre les révisions mergées

Sur un serveur subversion >= 1.5 seulement :

$ cd path/to/branches/production
$ svn mergeinfo <url_to_repository>/trunk .

Connaitre les révisions à merger

Sur un serveur subversion >= 1.5 seulement :

$ cd path/to/branches/production
$ svn mergeinfo --show-revs eligible <url_to_repository>/trunk .

blog comments powered by Disqus