tech:notes_svn_subversion
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| tech:notes_svn_subversion [2025/11/11 18:46] – Jean-Baptiste | tech:notes_svn_subversion [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # 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 ' | ||
| + | ~~~ | ||
| + | |||
| + | Changer les droits posix. | ||
| + | Equivalent à `chmod +x ` | ||
| + | ~~~bash | ||
| + | svn propset svn: | ||
| + | ~~~ | ||
| + | |||
| + | Revert all | ||
| + | ~~~bash | ||
| + | svn revert -R . | ||
| + | ~~~ | ||
| + | |||
| + | Undo commit | ||
| + | |||
| + | ~~~bash | ||
| + | svn update | ||
| + | |||
| + | # Undo range | ||
| + | svn merge -r UPREV: | ||
| + | |||
| + | # Undo single revision | ||
| + | svn merge -c -REV . | ||
| + | ~~~ | ||
| + | |||
| + | Proxy | ||
| + | |||
| + | `~/ | ||
| + | ~~~ini | ||
| + | [global] | ||
| + | # http-proxy-exceptions = *.exception.com, | ||
| + | # 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 `/ | ||
| + | |||
| + | |||
| + | ### SVN diff avec Vimdiff | ||
| + | |||
| + | `~/ | ||
| + | ~~~bash | ||
| + | #!/bin/sh | ||
| + | |||
| + | / | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | chmod +x ~/ | ||
| + | ~~~ | ||
| + | |||
| + | Utilisation | ||
| + | ~~~bash | ||
| + | svn diff --diff-cmd ~/ | ||
| + | ~~~ | ||
| + | |||
| + | Source : https:// | ||
| + | |||
| + | |||
| + | ## Pb | ||
| + | |||
| + | ### Pb - svn demande le mot de passe à chaque commande - linux svn keeps asking for password | ||
| + | |||
| + | #### Solution 1 | ||
| + | |||
| + | `~/ | ||
| + | |||
| + | |||
| + | ~~~ini | ||
| + | [auth] | ||
| + | password-stores = | ||
| + | ~~~ | ||
| + | |||
| + | **Le mot de passe est enregistré en clair** ici : `~/ | ||
| + | |||
| + | 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' | ||
| + | |||
| + | ~~~bash | ||
| + | svn --non-interactive --trust-server-cert --username toto --password ' | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Serveur | ||
| + | |||
| + | ### Install serveur Subversion | ||
| + | |||
| + | Voir : https:// | ||
| + | |||
| + | Voir aussi : | ||
| + | * https:// | ||
| + | |||
| + | Source : https:// | ||
| + | |||
| + | Si pas besion de HTTP | ||
| + | |||
| + | ~~~bash | ||
| + | svnadmin create / | ||
| + | ~~~ | ||
| + | |||
| + | Puis | ||
| + | Then you can check out local copies directly: | ||
| + | ~~~bash | ||
| + | svn co / | ||
| + | ~~~ | ||
| + | |||
| + | Ou over ssh: | ||
| + | ~~~bash | ||
| + | svn co svn+ssh:// | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
| + | #### Notes install avec Apache | ||
| + | |||
| + | |||
| + | Source : http:// | ||
| + | |||
| + | |||
| + | ~~~bash | ||
| + | apt-get install subversion libapache2-mod-svn libapache2-svn apache2 apache2-utils # | ||
| + | a2enmod dav_svn | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | mkdir -p / | ||
| + | svnadmin create / | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~apache | ||
| + | < | ||
| + | DAV svn | ||
| + | Require valid-user | ||
| + | SVNParentPath / | ||
| + | AuthType Basic | ||
| + | AuthName "Mon dépôt" | ||
| + | AuthUserFile / | ||
| + | AuthzSVNAccessFile / | ||
| + | </ | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | mkdir / | ||
| + | htpasswd -c / | ||
| + | htpasswd / | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~ini | ||
| + | [groups] | ||
| + | devfoo | ||
| + | |||
| + | [projet1:/] | ||
| + | @devfoo = rw | ||
| + | |||
| + | [projetprivejean:/ | ||
| + | jean = rw | ||
| + | * = r | ||
| + | |||
| + | [projetprivejean:/ | ||
| + | auteurdoc = rw | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | chown www-data: -R / | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | mkdir /tmp/plop | ||
| + | cd /tmp/plop | ||
| + | mkdir trunk tags branches | ||
| + | svn import file:/// | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | #### Notes install sans Apache | ||
| + | |||
| + | ~~~bash | ||
| + | cd /var/ | ||
| + | mkdir svn | ||
| + | svnadmin create / | ||
| + | #chmod o-r / | ||
| + | #chmod o-r / | ||
| + | |||
| + | cd / | ||
| + | mkdir trunk tags branches | ||
| + | #svn import / | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~ini | ||
| + | [general] | ||
| + | anon-access = none | ||
| + | password-db = passwd | ||
| + | realm = Projet 1 | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | `/ | ||
| + | ~~~ini | ||
| + | [users] | ||
| + | jibero = jibe | ||
| + | jiberw = jibe | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~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 ' | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
