Outils pour utilisateurs

Outils du site


tech:notes_svn_subversion

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:notes_svn_subversion [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:notes_svn_subversion [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon}}
 +
 +# Notes SVN Subversion
 +
 +## Client
 +
 +Voir : [[Svn erreur svn cannot negotiate authentication mechanism]]
 +
 +Voir aussi : **Git**
 +
 +~~~bash
 +svn status
 +~~~
 +
 +~~~bash
 +svn revert plop/foo
 +svn rm plop/
 +svn commit -m "* message"
 +~~~
 +
 +
 +"svn unadd"
 +
 +~~~bash
 +svn revert --recursive folder_name
 +~~~
 +
 +Mode non interactif
 +~~~bash
 +svn --non-interactive --trust-server-cert --username toto --password 'P@ssw0rd' --no-auth-cache checkout https://srv-svn/projet
 +~~~
 +
 +Changer les droits posix.
 +Equivalent à `chmod +x `
 +~~~bash
 +svn propset svn:executable ON plop.sh
 +~~~
 +
 +Revert all
 +~~~bash
 +svn revert -R .
 +~~~
 +
 +Undo commit
 +
 +~~~bash
 +svn update
 +
 +# Undo range
 +svn merge -r UPREV:LOWREV .
 +
 +# Undo single revision
 +svn merge -c -REV .
 +~~~
 +
 +Proxy
 +
 +`~/.subversion/servers`
 +~~~ini
 +[global]
 +# http-proxy-exceptions = *.exception.com, www.internal-site.org
 +# http-proxy-host = defaultproxy.whatever.com
 +# http-proxy-port = 7000
 +# http-proxy-username = defaultusername
 +# http-proxy-password = defaultpassword
 +
 +http-proxy-host = 192.168.56.1
 +http-proxy-port = 3128
 +~~~
 +
 +Ou voir `/etc/subversion/servers`
 +
 +
 +### SVN diff avec Vimdiff 
 +
 +`~/.local/bin/svnvimdiff.sh`
 +~~~bash
 +#!/bin/sh
 +
 +/usr/bin/vimdiff ${6} ${7}
 +~~~
 +
 +~~~bash
 +chmod +x ~/.local/bin/svnvimdiff.sh
 +~~~
 +
 +Utilisation
 +~~~bash
 +svn diff  --diff-cmd ~/.local/bin/svnvimdiff.sh README.md 
 +~~~
 +
 +Source : https://stackoverflow.com/questions/7866286/how-to-view-svn-diff-in-vimdiff-style-in-svn
 +
 +
 +## Pb
 +
 +### Pb - svn demande le mot de passe à chaque commande - linux svn keeps asking for password
 +
 +#### Solution 1
 +
 +`~/.subversion/config` ou `/etc/subversion/config`
 +
 +
 +~~~ini
 +[auth]
 +password-stores =
 +~~~
 +
 +**Le mot de passe est enregistré en clair** ici : `~/.subversion/auth/svn.simple/`
 +
 +Ou sinon
 +
 +`~/.bashrc`
 +~~~bash
 +# gpg-agent is used by svn (svn keep asking for password if GPG_TTY is not set)
 +GPG_TTY=$(tty)
 +export GPG_TTY
 +~~~
 +
 +#### Solution 2
 +
 +Utiliser l'option `--no-auth-cache`
 +
 +~~~bash
 +svn --non-interactive --trust-server-cert --username toto --password 'P@ssw0rd' --no-auth-cache checkout https://srv-svn/projet
 +~~~
 +
 +
 +## Serveur
 +
 +### Install serveur Subversion
 +
 +Voir : https://doc.ubuntu-fr.org/subversion
 +
 +Voir aussi :
 +* https://technique.arscenic.org/services-web/subversion-et-trac/article/installation-du-serveur-svn
 +
 +Source : https://stackoverflow.com/questions/4797242/install-subversion-on-ubuntu-with-nginx-not-apache
 +
 +Si pas besion de HTTP
 +
 +~~~bash
 +svnadmin create /path/to/repository
 +~~~
 +
 +Puis
 +Then you can check out local copies directly:
 +~~~bash
 +svn co /path/to/repository /path/to/my/checkout
 +~~~
 +
 +Ou over ssh:
 +~~~bash
 +svn co svn+ssh://server/path/to/repository
 +~~~
 +
 +
 +
 +#### Notes install avec Apache
 +
 +
 +Source : http://hikage.developpez.com/linux/tutoriels/subversion/?page=page_2
 +
 +
 +~~~bash
 +apt-get install subversion libapache2-mod-svn libapache2-svn apache2 apache2-utils #subversion-tools
 +a2enmod dav_svn
 +~~~
 +
 +~~~bash
 +mkdir -p /var/subversion/depot/
 +svnadmin create /var/subversion/depot/projet1/
 +~~~
 +
 +`/etc/apache2/mods-available/dav_svn.conf`
 +~~~apache
 +<Location /svn>
 +        DAV svn
 +        Require valid-user
 +        SVNParentPath /var/subversion/depot/
 +        AuthType Basic
 +        AuthName "Mon dépôt"
 +        AuthUserFile /var/subversion/conf/htpasswd
 +        AuthzSVNAccessFile /var/subversion/conf/access
 +</Location>
 +~~~
 +
 +~~~bash
 +mkdir /var/subversion/conf/
 +htpasswd -c /var/subversion/conf/htpasswd jibe
 +htpasswd /var/subversion/conf/htpasswd utilisateur2
 +~~~
 +
 +`/var/subversion/conf/access`
 +~~~ini
 +[groups]
 +devfoo  = jean, utilisateur2
 +
 +[projet1:/]
 +@devfoo = rw
 +
 +[projetprivejean:/]
 +jean = rw
 +* = r
 +
 +[projetprivejean:/documentation/utilisateur]
 +auteurdoc = rw
 +~~~
 +
 +~~~bash
 +chown www-data: -R /var/subversion/
 +~~~
 +
 +~~~bash
 +mkdir /tmp/plop
 +cd /tmp/plop
 +mkdir trunk tags branches
 +svn import file:///var/subversion/depot/projet1 -m 'Initial project directories'
 +~~~
 +
 +
 +#### Notes install sans Apache
 +
 +~~~bash
 +cd /var/
 +mkdir svn
 +svnadmin create /var/svn/projet1
 +#chmod o-r /var/svn/projet1/conf/authz
 +#chmod o-r /var/svn/projet1/conf/passwd
 +
 +cd /var/svn/projet1
 +mkdir trunk tags branches
 +#svn import /var/svn/projet1/tags  file:///var/svn/projet1/ -m 'Initial project directories'
 +~~~
 +
 +`/var/svn/projet1/conf/svnserve.conf`
 +~~~ini
 +[general]
 +anon-access = none
 +password-db = passwd
 +realm = Projet 1
 +~~~
 +
 +
 +`/var/svn/projet1/conf/passwd`
 +~~~ini
 +[users]
 +jibero = jibe
 +jiberw = jibe
 +~~~
 +
 +`/var/svn/projet1/conf/authz`
 +~~~ini
 +[/plop]
 +jibe = rw
 +~~~
 +
 +~~~bash
 +sudo addgroup svn --system
 +sudo adduser svn --system --home /var/svn --no-create-home --ingroup svn
 +sudo chown -R svn: /var/svn
 +
 +su - svn  -s /bin/bash -c 'svnserve -d --foreground -T -r /var/svn/projet1 --listen-port=3690 --listen-host=localhost'
 +~~~
 +
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki