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)
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 .