[subversion] Doc D'exploitation

[size=150]— SUBVERSION 1.6.13 —[/size]

1. - DESCRIPTION GENERALE

[b]1.1 - Qu'est ce que Subversion[/b]

Subversion (en abrégé svn,) est un système de gestion de versions, distribué sous licence Apache et BSD. Il a été conçu pour remplacer CVS.
SVN est un système de contrôle de versions client-serveur permettant à plusieurs personnes de travailler simultanément sur un même ensemble de fichiers. Les gros projets de développement s’appuient généralement sur ce type de système afin de permettre à un grand nombre de développeurs de travailler sur un même projet. SVN permet de gérer les accès concurrents, c’est-à-dire qu’il est capable de détecter les conflits de version lorsque deux personnes travaillent simultanément sur le même fichier.

Le fonctionnement de SVN s’appuie sur une base centralisée appelée « repository », hébergée sur un serveur, contenant l’historique de l’ensemble des versions successives de chaque fichier. Le repository stocke les différences entre les versions successives, les dates de mise à jour, le nom de l’auteur de la mise à jour et un commentaire éventuel, ce qui permet un réel suivi des modifications, tout en optimisant l’espace de stockage dédié au projet.

Le 14 février 2010, SVN est devenu officiellement un projet de la Fondation Apache, prenant le nom d’Apache Subversion.

[b]1.2 - Les apports d'Apache Subversion[/b]

Subversion a été écrit afin de combler certains manques de CVS. Voici les principaux apports:

• Les commits, ou publications des modifications sont atomiques. Un serveur Subversion utilise de façon sous-jacente une base de données capable de gérer les transactions atomiques (le plus souvent Berkeley DB) ;

• Subversion permet le renommage et le déplacement de fichiers ou de répertoires sans en perdre l’historique. ;

• Les métadonnées sont versionnées : on peut attacher des propriétés, comme les permissions, à un fichier, par exemple.

Du point de vue du simple utilisateur, les principaux changements lors du passage à Subversion, sont :

• Les numéros de révision sont désormais globaux (pour l’ensemble du dépôt) et non plus par fichier : chaque patch a un numéro de révision unique, quels que soient les fichiers touchés. Il devient simple de se souvenir d’une version particulière d’un projet, en ne retenant qu’un seul numéro ;

• svn rename (ou svn move) permet de renommer (ou déplacer) un fichier ;

• Les répertoires et méta-données sont versionnés.

1.3 - Branches et Tags

Une des particularités de Subversion est qu’il ne fait aucune distinction entre un label, une branche et un répertoire. C’est une simple convention de nommage pour ses utilisateurs. Il devient ainsi très facile de comparer un label et une branche ou autre croisement.

Quel que soit le système de gestion de versions, les numéros de révision à plusieurs chiffres sont difficiles à mémoriser. Pour cette raison de nombreux systèmes laissent l’utilisateur définir des tags comme des synonymes plus faciles à retenir. Mais ce que Subversion recommande d’utiliser comme tag est d’une nature complètement différente: une fois la commande “svn copy” a été effectuée, un tag Subversion ne se rappelle absolument plus de quel numéro de révision il provient. Alors que dans la plupart des autres systèmes un tag est une référence, un “tag” Subversion n’est qu’une copie. Seules quelques références prédéfinies sont disponibles: HEAD, PREV, BASE, COMMITTED.

Une autre différence est que les tags des autres systèmes sont des points dans le temps, alors que Subversion recommande de définir les tags comme des points dans l’espace du système de fichiers.

Cette absence de tag au sens habituel rend certaines opérations un peu moins pratiques dans Subversion. Par exemple retrouver ce qui a changé d’un tag à l’autre dans un fichier est un petit peu plus compliqué que de lancer une simple commande: "svn diff -r tag1:tag2 monfichier "dans le répertoire de travail.

D’autres opérations deviennent impossibles: par exemple une commande telle que "svn log -r tag1:tag2 monfichier " ne fonctionne pas et il n’y a pas d’alternative qui fonctionne.

Pour pallier ces manques l’ajout de “labels” ou “alias” a été proposé sur les listes de discussions de SVN. Ces labels seraient équivalents aux tags d’autres systèmes comme CVS, git ou autre. En 2010 cette suggestion n’a pas dépassé le stade de la discussion.

1.4 - Les principales commandes de Subversion

add	      : Déclare l'ajout d'une nouvelle ressource pour le prochain commit.
blame	      : Permet de savoir quel contributeur a soumis les lignes d'un fichier.
checkout (co) : Récupère en local une version ainsi que ses méta-données depuis le dépôt.
cleanup	      : Nettoie la copie locale pour la remettre dans un état stable.
commit (ci)   : Enregistre les modifications locales dans le dépôt créant ainsi une nouvelle version.
copy	      : Copie des ressources à un autre emplacement (localement ou dans le dépôt).
delete	      : Déclare la suppression d'une ressource existante pour le prochain commit (ou supprime directement une ressource du dépôt).
diff	      : Calcule la différence entre deux versions (permet de créer un patch à appliquer sur une copie locale).
export	      : Récupère une version sans métadonnées depuis le dépôt ou la copie locale.
import	      : Envoie une arborescence locale vers le dépôt.
info	      : Donne les informations sur l'origine de la copie locale.
lock	      : Verrouille un fichier.
log	      : Donne les messages de commit d'une ressource.
merge	      : Calcule la différence entre deux versions et applique cette différence à la copie locale.
move	      : Déclare le déplacement d'une ressource.
propdel	      : Enlève la propriété du fichier.
propedit      : Édite la valeur d’une propriété.
propget	      : Retourne la valeur d’une propriété.
proplist      : Donne une liste des propriétés.
propset	      : Ajoute une propriété.
resolved      : Permet de déclarer qu'un conflit de modifications est résolu.
revert	      : Revient à une version donnée d'une ressource. Les modifications locales sont écrasées.
status (st)   : Indique les changements qui ont été effectués.
switch	      : Bascule sur une version/branche différente du dépôt.
update (up)   : Met à jour la copie locale existante depuis la dernière version disponible sur le dépôt.
unlock	      : Retire un verrou.

2. - SUBVERSION 1.6.13

 [b]2.1 - Change log[/b]

Changements visibles pour l’utilisateur :

  • Ne perd pas les propriétés pendant les fusions
  • Améliore les messages d’erreur auto-props
  • Améliore les messages d’erreurs pour 403 avec le statut ra_neon
  • Ne permet pas «merge --reintegrate» pour les fusions de 2 liens
  • Améliore le traitement de fsfs.conf pendant le hotcopy
  • Ne prend pas en compte les caractères dangereux des URL pendant l’exportation
  • Prend en compte les verrous périmés dans FSFS
  • Détecte mieux les copies de travail non liées lors de l’actualisation ra_neon
  • Fsfs: rend les fichiers des révisions en lecture seul
  • modification canonical des URL
  • Correction les permissions pendant les réintégrations des fusions.
  • Correction les erreurs de calcul de mergeinfo pendant la fusion de 2 url
  • Correction de problème d’erreur de transmission dans svnserver
  • Correction des enregistrements de fusion mergeinfo auto-référentielle
  • Correction du bog short_circuit SVNPathAuthz
  • Gère les URL existante et non existante “propser svnmucc”
  • Ajout de la sous-commande "propsetf’ à svnmucc
  • Émet un warning limité sur les répertoires copiés pendant le CI

Changements visibles pour le développeur:

  • Correction des liaisons Ruby compatible Ruby 1.9

  • Utilisation des dépôts API vérifié par javahl

  • Configure ra_serf pour analyser MD5 avec les éditeurs de mise à jour

  • Laisser ra_sert travailler avec les versions actuelles de serf

    2.2 - BUG SVNPathAuthz short_circuit

Le module "mod_dav_svn de Subversion WebDAV serveur, peux interagir avec le serveur Apache et les modules associés, pour mettre en œuvre l’authentification et les stratégies d’autorisations différentes d’Apache pour le référentiels de Subversion. Cette solution consiste à mettre la valeur “short_circuit” de la directive SVNPathAuthz pour la configuration de "mod_dav_svn"
Une valeur autre que celle par défaut de mod_dav_svn permet de contourner les autorisations interne d’Apache à la place des requêtes directes d’autorisations intégrées dans Subversion.
Malheureusement, la mise en place de cette fonction (qui existe dans le but d’améliorer la performance des contrôles d’autorisation de Subversion) provoque d’ignorer les règles d’accès sur les référentiels nommés.
La politique d’accès au référentiel dépend de la configuration du fichier d’accès que Subversion consulte, ce qui peut provoqué de donner des informations d’un utilisateur à un autre utilisateur. .

Version vulnerable:

Subversion servers 1.5.0 through 1.5.7 (inclusive)
Subversion servers 1.6.0 through 1.6.12 (inclusive)

Bug résolut sur:

Subversion 1.6.13
Subversion 1.5.8

Détails:

Supposons qu’il existe un service d’Apache qui héberge Subversion et qu’il est configuré pour exiger l’authentification de tous les utilisateurs, en utilisant le fichier de configuration ci-dessous : on n’autorise l’accès à des parties spécifique du référentiel :
Tous les utilisateurs ont l’autorisation de lecture sur tous les référentiels dans leur Intégralité, sauf indication contraire

 [code][/]
 * = r

 # Masquer le répertoire '/ pokernight «référentiel "bureau"
 # de l'utilisateur: "pointy".
 [bureau:/pokernight]
 pointy = [/code]  

Maintenant, supposons que l’utilisateur “pointy” tente de voir ou
de vérifier la racine du référentiel “bureau”

Par défaut (ou lorsque la directive SVNPathAuthz est réglé sur “on” dans le fichier de configuration d’Apache, Subversion prendra en compte les deux ensembles de règle :
Le premier s’applique à tous les référentiels configurés pour utiliser ce fichier.

La seconde ne s’applique qu’au référentiel nommé “bureau”

Dans cette situation, lorsque l’utilisateur “pointy” tentera d’accéder au référentiel “bureau”, Subversion lui accordera l’accès à la racine du référentiel (par la première règle), mais refusera l’accès a “/pokernight” et a tout les sous répertoires. (par le deuxième règle).

C’est déterminations d’accès ce produise parce que l’accès à Suberversion
Envoi des sous-requêtes à Apache pour tester les privilèges d’accès pour chacun et chaque éléments dans le révérenciel qu’elle affiche à l’utilisateur "Pointy"
Si un module d’autorisation d’Apache refuse l’accès à un chemin donnée, il vérifie de cette façon le chemin et le contenue qui seront caché à l’utilisateur “pointy”

Si les Administrateurs de Subversion savent que les requêtes de la pile d’autorisation d’Apache concernant les dépôts de Subversion est Subversion lui-même, ils peuvent utiliser la directive “short_circuit SVNPathAuthz” dans le fichier de configuration d’Apache. Ce paramètre permet à Subversion d’éviter les sous-requêtes d’apache et fait confiance en sa propre règle d’accès. Malheureusement pour les serveurs affectés par le bug, Subversion ne tiendrait pas compte du deuxième jeu de règles car il a un préfixe sur les dépôts – "bureau:"
Le résultat serais un accès en lecture accordée à “pointy” à la racine du révérenciel et qui ne serais pas remplacer pour le sous-arbre “/pokernight” et l’utilisateur “Pointy” serait en effet capable de voir ce sous-répertoire et ses contenu. Pokernight serais annuler. Ou pire, Boss Man serais lié au répertoire Pokernight

Parce que les mêmes mécanismes sont utilisés pour régir les permissions d’écriture, et pour accorder des autorisations supplémentaires ce bug pourrait interdire l’accès d’un utilisateur à des parties du référentiel ou il a les droits, et également permettre aux utilisateurs qui n’ont pas de droit d’écrire dans des zones référentiels.

Enfin, parce que Subversion détermines les droits d’accès pour la révision des métadonnées (messages du journal, nom d’auteurs, etc) basé sur les droits de l’utilisateur vers les divers fichiers et répertoires modifié par la révision. Ce bug pourrait accorder une mauvaise écriture et / ou un accès en lecture aux métadonnées de révision aussi.

Gravité :

Medium : Un serveur affecté par ce bug, avec une configuration particulière pourrait afficher le contenu des fichiers versionnés et les métadonnées, les métadonnées des répertoires, et les métadonnées de révisions défavoriserais les utilisateurs distants ou des classes d’utilisateurs, qui pourrait modifier le contenue du révérenciel, ou afficher des informations sur les fichiers et répertoires. (Subversion est après tout un système de contrôle de version)
Les Métadonnées de révision pourrait être silencieux, modifiés, ou détruits, selon si les dépôts ont été configuré pour notifier les utilisateurs des modifications ou de tenir des registre externes des changements.

Recommandations :

Nous recommandons aux utilisateurs qui emploient la directive de configuration “short_circuit SVNPathAuthz” de mettre à jour leurs Subversion vers la version 1.6.13 immédiatement.

Ceux qui sont incapables ou refusent de mettre à niveau leurs version devrais envisager une ou plusieurs solutions suivantes :

1 : modifier la valeur de la directive de configuration SVNPathAuthz à "on"
Cela peut affecter la performance de vôtre dépôt Subversion, mais permettra d’éviter la problématique. Vous pourriez avoir besoin de revérifier le reste de votre configuration afin de s’assurer que cette démarche ne sera pas causée involontairement.

Afin de s’assurer que les contrôles d’autorisations de Subversion ne passeront pas à travers les modules d’autorisation supplémentaires, qui jusqu’ici ont été effectivement contournés.

  1. Refactor accède à vos fichiers et à la configuration d’Apache afin que les règles d’un fichier donné ne s’appliquent qu’a un seul référentiel, puis retirer tout les préfixes et référentiel de ces fichiers.
    Cela permettra au règles d’autorisation de Subversion de correspondent logiquement et correctement.
    Trouver toutes les sections qui s’appliquent à chaque dépôt, l’utilisation de l’exemple précédent reviendrait à créer un fichier d’accès qui régiraient les autorisations du référentiel pour le “bureau” seulement

Tous les utilisateurs ont l’autorisation de lecture sur ce référentiel dans son Intégralité, sauf indication contraire.

     [code][/]
     * = R

     # Masquer le répertoire '/ pokernight «référentiel du « bureau »
     # Du Boss Man (pointy).
     [Pokernight /]
     pointy =[/code]

Et aussi la création de fichiers similaires pour chaque dépôt supplémentaire régie par le fichier d’accès d’origine.

Patches:

The following patch applies to Subversion 1.5.x and 1.6.x.

[[[
Index: subversion/mod_dav_svn/authz.c

— subversion/mod_dav_svn/authz.c (revision 1001856)
+++ subversion/mod_dav_svn/authz.c (working copy)
@@ -59,7 +59,7 @@
allow_read_bypass = dav_svn__get_pathauthz_bypass®;
if (allow_read_bypass != NULL)
{

  •  if (allow_read_bypass(r,path, repos->repo_name) == OK)
    
  •  if (allow_read_bypass(r, path, repos->repo_basename) == OK)
       return TRUE;
     else
       return FALSE;
    

]]]

[b]2.3 - Installation de SVN 1.6.13[/b]

Les sources de SVN 1.6.13 sont disponibles à l’adresse suivante :
svn.haxx.se/dev/archive-2010-10/0023.shtml

Dépendances :

  - autoconf 2.59 or later (Unix only)
  - libtool 1.4 or later (Unix only)
  - a reasonable C compiler (gcc, Visual Studio, etc.)
  - libapr and libapr-util (REQUIRED for client and server)
 - The Apache Portable Runtime (APR)
 - SQLite  (REQUIRED for client and server)
 - libz  (REQUIRED for client and server)
 - Subversion uses zlib for compressing binary differences.
 - libserf  (OPTIONAL for client)
 - The Serf libraries both allow the Subversion client
 - OpenSSL (OPTIONAL for client and server)
 - Berkeley DB (OPTIONAL for client and server)
 - libsasl (OPTIONAL for client and server)
 - Python, Perl, Java, Ruby  (OPTIONAL)

  [b]2.4 - Compilation SVN 1.6.13[/b]

Contenue du répertoire sources de SVN 1.6.13 :

• aclocal.m4
autogen.sh
• BUGS
• build
• build.conf
build-outputs.mk
• CHANGES
• COMMITTERS
• config.log
• config.nice
• config.status
• configure
configure.ac
• contrib
• COPYING
• doc
• gen-make.opts
gen-make.py
• HACKING
• INSTALL
• libtool
• Makefile
Makefile.in
• notes
• packages
• README
• subversion
• tools
• TRANSLATING
win-tests.py
• www

Pour installer SVN taper :

[code] # sh autogen.sh

./configure

Make

Make install[/code] 2.5 - Création d’un dépôt

La création d’un dépôt pour un projet “nomdemonprojet” se fait via la commande :

svnadmin create nomduprojet

Hiérarchie du dépôt SVN 1.6.13

[Projet]
    - [conf]
    	- [authz]
    	- [passwd]
    	- [svnserve.conf]
    - [db]
	- [current]
	- [format]
	- [fsfs.conf]
	- [fs-type]
	- [min-unpacked-rev]
	- [revprops]
		- [0]
		   - 0
	- [revs]
		- [0]
		   - 0
	- [transactions]
	- [txn-current]
	- [txn-current-lock]
	- [txn-protorevs]
	- [uuid]
	- [write-lock]
    - [format]

    - [hooks]
	- post-commit.tmpl
	- post-lock.tmpl
	- post-revprop-change.tmpl
	- post-unlock.tmpl
	- pre-commit.tmpl
	- pre-lock.tmpl
	- pre-revprop-change.tmpl
	- pre-unlock.tmpl
	- start-commit.tmpl

    - [locks]
	- db.lock
	- db-logs.lock
  • README

2.6 - SVN Utilisation du client

Dès lors, il est déjà possible de travailler sur celui-ci localement,

La première étape dans l’utilisation de Subversion est de récupérer une copie locale du dépôt, placer vous dans le répertoire d’un utilisateur et taper :

Un répertoire nomduprojet a du être créé dans le répertoire de l’utilisateur.

Ce répertoire doit contenir les fichiers de la dernière révision disponible sur le dépôt.
Dans ce répertoire, vous êtes libre de travailler normalement : création de répertoire, ajout de fichier.

Il est ensuite nécessaire d’informer Subversion que ces nouveaux fichiers doivent être pris en compte lors de la prochaine publication des modifications sur le dépôt :

Taper :

Ou “newrep” est un nouveau répertoire ou vous avez rajouté des fichiers.

Cette commande n’a fait que mettre une “étiquette” sur des fichiers, mais ceux-ci n’ont pas encore été envoyés vers le dépôt.
Cette action est réalisée via la commande :

# svn commit newrep -m "Message expliquant le modification effectuées"

Le paramètre -m “Mon Message” spécifie un message qui sera associé à la publication (et donc à la nouvelle révision).
Il est courant d’expliquer comme message le but des modifications réalisées : ajout d’une fonctionnalité, correction d’un bug, …

2.7 - Compatibilité Client Windows

En créant votre projet via la commande : # svnadmin create nomduprojet
Les clients Windows comme “Tortoise”, “SmartSVN”, ou encore “RapidSVN”, ne pourront pas se connecter au projet, ceci à cause d’un problème de compatibilité avec la nouvelle arborescence de SVN 1.6.X

Les clients actuels recherchent le fichier de révision dans le répertoire “REVS”, hors, lors de la création d’un Projet, les révisions se trouve bien dans le répertoire “REVS” mais aussi dans un sous-répertoire. (Exemple : 0/)

Pour résoudre se problème de compatibilité, il suffit lors de la création du projet de signaler à SVN que le projet doit être compatible avec les anciennes versions, en l’occurrence version 1.5.X

2.8 - Création d’un Projet compatible SVN 1.5.X :

Taper :

Cette commande créera le projet nomduprojet mais les fichiers de révisions ne seront pas dans un sous-répertoire mais dans directement répertoire REVS.

3. - Configuration de SUBVERSION 1.6.13

[size=85](note : svnserve en cour de redaction) [/size]

[b] 3.1 - APACHE MOD_DAV_SVN Configuration [/b]

Dépendances :

  • apache mod_fs
  • apache mod_dav
  • apache mod_dav_svn
  • apache mod_authz_svn

Une fois les modules installés, il faut configurer Apache pour prendre en compte les nouveaux modules. Dans le fichier httpd.conf rajouter :

LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so

Ensuite créer un nouveau Vhost pour l’accès au dépôt Subversion :

Vhost Subversion :

[code]
ServerName subversion.mondomaine.com

<Location /svn>
DAV svn
SVNParentPath /rep/
SVNListParentPath On

[/code]

Détails :

" DAV svn " : Activation du Webdav Subversion

" SVNParentPath " : Chemin vers le répertoire parent de votre dépôt ex : /var/svn/

" SVNListParentPath " On : activation du mode Parentpath

Si votre vhost est subversion.mondomaine.com/svn

[b]3.2 - APACHE MOD_DAV_SVN Authentification [/b]

Pour protéger l’accès au dépôt à certain utilisateur, vous pouvez paramétrer une authentification sur le vhost :

   [code] AuthType Basic
    AuthName "SVN"
    AuthUserFile /pathto.htaccess  (chemin vers le fichier .htaccess)
    Require valid-user[/code]

Création du .htaccess :

 [b]3.3 - PROJET SVN Authentification Avancé [/b]

Vous pouvez configurer des accès avancés pour un utilisateur ou un groupe d’utilisateurs sur un ou plusieurs répertoires, pour ce faire, vous avez un fichier de configuration nommé “authz” qui se trouve dans le répertoire “conf” de votre projet.

Plusieurs modes d’authentification peuvent ainsi être paramétrés :

  • Utilisateur
  • Groupe Utilisateur
  • Un alias défini dans un [alias] section spéciale
  • Utilisateurs authentifiés, en utilisant le “$authenticated”
  • Utilisateurs anonymes, en utilisant le “$anonymous”
  • Tout le monde en utilisant *

Les règles d’autorisations sont :

  • Accès autorisé en lecture : “r”
  • Accès autorisé en lecture et écriture : “rw”
  • Aucun accès : " "

Exemple :

[code][aliases]
joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
developer = harry, sally
admin = joe
users = kelly, david

[/]
@admin = rw
@developer = rw

  • =

[projet:/répertoire]
harry = rw
&joe = rw
@users = rw

  • =

[projet:/répertoire]
@users = r
Kelly = rw[/code]

4. - TRAC 0.12.1

 [b]4.1 - Qu'est ce que TRAC[/b]

Trac est une application web Open Source de gestion complète de projet par Internet, développé en Python.

Trac inclut :

  • Un Wiki,
  • Gestion de feuilles de route,
  • Historique,
  • Rapport de bugs,
  • Explorateur subversion,

Il est développé par la société Edgewall Software, inspiré de CVStrac.

L’affichage Web de Trac fonctionne grâce au moteur de template ClearSilver.

Jusqu’à la version 0.9, Trac était sous licence GNU GPL. Maintenant, il est distribué sous Licence BSD.

[b]4.2 - Installation de TRAC 0.12.1[/b]

Les sources de TRAC 0.12.1 sont disponibles à l’adresse suivante :
trac.edgewall.org/wiki/TracDownload

Dépendances :

  • Python, version >= 2.4.

  • setuptools, version >= 0.6

    • Genshi, version >= 0.6
    • SVN
    • pysqlite version 2.x for SQLite 3.x
      • psycopg2 version 2.0.x for the PostgreSQL database
      • MySQLdb, version 1.2.2 for the MySQL database
    • Apache
  • Apache module mod_python

    4.3 - Compilation de TRAC 0.12.1

Contenue du répertoire sources de TRAC 0.12.1 :

• AUTHORS
• build
• cgi-bin
• ChangeLog
• contrib
• COPYING
• dist
• doc
• .gitignore
• .hgeol
• .hgignore
• INSTALL
• Makefile
• Makefile.cfg.sample
• messages-js.cfg
• PKG-INFO
• README
• RELEASE
• sample-plugins
• setup.cfg
setup.py
• setup_wininst.bmp
• TESTING-README
• THANKS
• trac
• Trac.egg-info
• tracopt
• UPGRADE
• wiki-macros

Pour installer TRAC taper :

4.4 - Création d’un environnement de projet TRAC 0.12.1

Un environnement Trac est un stockage principal où sont stocké des informations comme les pages wiki, ticket, rapports, paramètres, ect…

Pour créer un nouvel environnement pour votre projet taper :

trac-admin vous demandera les informations nécessaires pour créer l’environnement, telles que le nom du projet et la chaîne de connexion de base de données. Si vous n’êtes pas sûr de ce qu’il faut préciser, pour l’une de ces options, appuyez simplement sur Entrée pour utiliser la valeur par défaut.

Notez également que les valeurs que vous spécifiez ici peuvent être modifiées ultérieurement en éditant directement le fichier de configuration trac.ini.

Enfin, assurez-vous que le compte utilisateur sous lequel s’exécute le serveur WEB à le droit d’écrire dans le répertoire et tous les fichiers de l’environnement de projet.
Exemple : chown –R apache /chemin/vers/environnementduprojet.

4.5 - Configuration de TRAC 0.12.1

La configuration de TRAC peut se faire dans le fichier trac.ini se trouvant dans le répertoire conf de l’environnement de votre projet
Exemple : /var/trac/monprojet/conf/trac.ini

4.6 - Configuration APACHE pour l’accès à l’environnement du projet

Pour l’accès à l’environnement de votre projet par APACHE, éditer le Vhost de subversion et rajouter :

ScriptAlias /tracprojet /path/to/sources/trac.cgi <location /tracprojet> SetEnv TRAC_ENV "/chemin/vers/environementduprojet " SetEnv PYTHON_EGG_CACHE /chemin/vers/.python-eggs SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnv /chemin/vers/environementduprojet </Location>

Vous pouvez aussi rajouter une authentification pour TRAC :

    [code]AuthName "Trac"
    AuthType Basic
    AuthUserFile /chemin/ver/.htaccess
    Require valid-user[/code]

Pour vous connectez, taper :
subversion.mondomaine.com/tracprojet

[size=70](References :http://fr.wikipedia.org/wiki/Apache_Subversion;http://svnbook.red-bean.com;http://hikage.developpez.com/linux/tutoriels/subversion/;http://www.beroot.org/Configurations/installation-subversion-trac-debian-ubuntu;http://www.svnforum.org)[/size]

Fabien493

La section T&A est plus particulièrement destinée à recevoir des trucs et astuces, nouveaux qui émanent de nos membres.
Il ne semble pas que ce soit le cas ici, mais si tu es vraiment l’auteur de ce tuto, je te prie de bien vouloir excuser ma suspicion.
:006

j’ai galéré 3 semaines pour trouver, c’est un projet qu’on m’a demandé au boulot, d’ailleurs tu peux voir que j’avais ouvert un autre post dans support, concernant SVN.

Tien ça me fait penser j’ai pas mis la flèche verte.

Effectivement mon compte fabcorp est nouveau, mais c’est parce que j’arrive pas à retrouver mon mot de passe de mon Premier compte : Fabien493

Je confirme,

Par-contre, si l’endroit ou j’ai posté ce tuto n’est pas le bon, peux-tu me rediriger ?

j’ai voulu le faire sur le wiki, mais je préfère attendre qu’il soit complètement opérationnel.

Suis content, j’ai retrouvé mon mot de passe. :slightly_smiling:

Amicalement,
Fabien493

[quote=“fabien493”]Je confirme,

Par-contre, si l’endroit ou j’ai posté ce tuto n’est pas le bon, peux-tu me rediriger ?

j’ai voulu le faire sur le wiki, mais je préfère attendre qu’il soit complètement opérationnel.

Suis content, j’ai retrouvé mon mot de passe. :slightly_smiling:

Amicalement,
Fabien493[/quote]

Ton “papier” à bien sa place ici, et il sera le bienvenue sur le Wiki (si les droits, comme le précise Ricardo, sont bien respectés). :006

Si ça va dans le wiki,
je pense qu’il vaudrait mieux séparer svn et trac.

Sinon suivez l’adage : "release early, release often !"
Le wiki est justement là pour être un espace collaboratif
et améliorer progressivement son contenu avec les apports successifs de ses contributeurs.

Le rôle du forum est légèrement différent,
il est là pour servir de support à des discussions (qui bien entendu peuvent se rapporter au wiki)

Je comprends pas,

C’est pas la première fois que je faits un tuto, effectivement mon “papier” ressemble plus à une doc d’exploitation qu’à un tuto. mais concernant les droits, c’est ma doc, que j’ai galéré à la taper, et de toutes façons les références sont signalés en bas du post.

Donc je comprends pas la question.

La plupart des références sont en anglais que j’ai retraduis en français.
Les autres références, dont certaine que je me suis très peu inspiré ont quand même leurs site présent en bas du post. pour le reste c’est du manpage à fond,et du svnbook…

j’ai l’impression, qu’au final, on m’accuse d’avoir plagié une autre doc,

Pour le wiki, comme je l’ai dit je préfère attendre qu’il sois opérationnel.
parce que pour l’instant il est loin de l’être.

ET je rappelle que si je l’ai posté sur le forum, c’est pour partager cette connaissance.

Amicalement,
Fabien493

[quote=“fabien493”]Je comprends pas,

[quote]…(si les droits, comme le précise Ricardo, sont bien respectés).[/quote]…[/quote]Non ne t’inquiète pas, aucune accusation. Bravo pour le travail, et désolé de t’avoir froissé. :wink:

[quote=“BBT1”]Si ça va dans le wiki,
je pense qu’il vaudrait mieux séparer svn et trac.[/quote]D’accord avec ça.

Aucun problème, comme tu dis que le tuto est de toi, il a sa place ici.
[/intermède]
:006

Avec des bémols tout de même, tu fais recompiler svn, trac etc alors que des paquets tout prêts existent (apt-get install trac svn par exemple). Tu terminesn par une install sans utiliser checkinstall donc avec la possibilité de bousiller des fichiers déjà présents et sans possibilité de désinstallation propre. Tu as fait ça sous debian?

Par ailleurs, je trouve sur Wikipedia:

[quote]Une des particularités de Subversion est qu’il ne fait aucune distinction entre un label, une branche et un répertoire. C’est une simple convention de nommage pour ses utilisateurs. Il devient ainsi très facile de comparer un label et une branche ou autre croisement.

Quel que soit le système de gestion de versions, les numéros de révision à plusieurs chiffres sont difficiles à mémoriser. Pour cette raison de nombreux systèmes laissent l’utilisateur définir des tags comme des synonymes plus faciles à retenir. Mais ce que Subversion recommande d’utiliser comme tag est d’une nature complètement différente: une fois la commande svn copy effectuée, un tag Subversion ne se rappelle absolument plus de quel numéro de révision il provient. Alors que dans la plupart des autres systèmes un tag est une référence, un “tag” Subversion n’est qu’une copie. Seules quelques références prédéfinies sont disponibles: HEAD, PREV, BASE, COMMITTED.

[/quote]C’est ce que voulait dire Ricardo, cette partie au moins (d’autre aussi) est un copier/coller de Wikipedia. Si c’est le cas, vérifie que tu en as le droit et cite tes sources par gard pour les rédacteurs de Wikipedia.

Bonjour,

D’abord je tiens à m’excuser, effectivement j’ai omis les sources de Wikipedia.
Concernant l’installation de SVN, l’install via apt" aurait été mieux, mais malheureusement la version 1.6.13 n’existe pas en package.

Pour la compilation de svn sans check-install, j’y est pas pensé, je dois normalement créer un pakage, ainsi qu’un script d’automatisation d’installation de SVN 1.6.13, prochainement.

je m’excuse aussi, d’avoir un peux réagis excessivement, c’est juste que je m’attendais à un merci beaucoup, par rapport au centaines de posts, sur le problème de compatibilité.

Donc merci encore,

Amicalement,
Fabien493

Tutos sympa et intéressant dans un premier temps mais il serait d’autant plus intéressant de le compléter avec un exemple d’utilisation et de recommandation d’utilisation pour les débutants :wink:

Petite précision cependant, il est vrai qu’il est utilisé pour mutualiser les changements de fichiers d’un projet regroupant plusieurs développeurs mais il est aussi possible et pertinent de l’utiliser avec une équipe réduite à une seule personne.

J’attends avec impatience une suite sur ce sujet notamment la partie administration du serveur et son utilisation :wink:

Pour moi c’est plutôt une présentation générale de l’outil et un petit aperçu de son fonctionnement de manière concrète. Un bon début qui gagne à être compléter.

Bon courage pour la suite et préviens moi quand c’est finis :wink:

merci pour ton appréciation,

Comme je l’ai expliqué avant, ce tuto qui est plus une doc d’exploit, m’a été demandé au travail, et j’ai décidé de le partager tel quel, maintenant je me rends compte que cette doc n’est pas très explicite.

Faut que je finisse la partie svnserve pour ceux qui n’utilise pas le mod_dav,
je pense que je vais retirer toute la partie “TRAC”, Peaufiner un peux tout ça…

Honnêtement, je connaissais pas du tout svn avant que mon boss me demande ce projet, j’ai eu du mal à comprendre au début, et je passe les traductions en/fr.

Pourtant je pense pas que cette doc sois compliqué pour les débutants, de plus, quelqu’un qui veux mettre en place un solution du type de SVN, vas pas directement prendre mon tuto, et dire c’est bon j’ai tout compris. je pense que y’a de la recherche à faire avant l’idée de la mise en place d’une solution SVN. SVN est très peut utilisé par les particuliers, mais bon je veux bien croire que ça peux servir à d’autres personnes, c’est pour sa que je vais refaire cette doc.

Maintenant, je suis ouvert à toute proposition d’amélioration, et si d’autre personne veulent y mettre leurs petite ou grande contribution, ne vous gênez pas.

Amicalement,
Fabien493

Je ne sais pas si l’on c’est bien compris mais je ne dis pas que ton tutos n’est pas explicite pour les débutants juste qu’il faudrait la compléter avec des exemples d’utilisation (checkout, update, commit, merge, etc…). Concernant le checkout c’est la récupération d’un projet cela ne doit pas trop poser de problème, pour l’update non plus, le commit attention de bien faire d’update avant, et le merge j’en parle même pas :smiley:

Je trouve pertinent ton intention de supprimer trac du tutos. Bien que cela puisse être lié le séparer, ne permettra que d’éclaircir le document et de se concentrer sur une techno.

Un gros merci pour cette doc ! Pile poil mon interrogation du moment ! :smiley:

@fabien : si je puis me permettre un conseil, trac et svn vont quand même très souvent de paire, je ne suis pas sîur qu’il faille retirer cette partie. Pour le reste je vais potasser en détail et je reviendrai surement par ici avec des suggestions/questions/trolls en tout genre :wink:

Bonjour,

Il est prévu que je refasse toute la doc, très peux sur Subversion, juste la partie compilation et un peux de conf, mais par-contre la partie TRAC vas prendre une autre direction. Ceci, parce que mes Compétences sur TRAC vienne de s’améliorer, et il se trouve que la configuration que j’ai faite de TRAC dans la doc, n’est en aucun cas une solution, et je vous déconseille de l’utiliser.

Je vais bientôt posté la doc de TRAC, normalement, Lundi, ou Mardi, pour les débutants et les experts !!!

Amicalement,

Fabien493

Merci pour ces précisions ! C’est vrai que l’ensemble a l’air assez complexe à mettre en place. Je cherche à disposer de mon propre dépot SVN également mais au vu de l’aspect touffu de la maitrise de trac j’envisageais ne conserver que l’interface en ligne de commande.

Si tu proposes une nouvelle doc sur trac, je suis près à la suivre et apporter mes retours pour son amélioration si besoin :slightly_smiling:

Boujour Tlm,

Super nouvelle : Sortie de la version Stable 1.6.15 de Subversion.
Pas de changement notable concernant l’installation, surtout des résolutions de bogs.

[size=85]Lien de téléchargement SVN 1.6.15 :[/size] ICI
[size=85]Lien vers le changelog de SVN 1.6.15 :[/size] ICI

Amicalement,
Fabien493