Click here for the English version

Gestion des dépôts Subversion

Comment initialiser mon dépôt Subversion ?

La plupart des projets Subversion suivent la convention suivante pour l'organisation de leur arborescence :

  • /trunk est le répertoire contenant la ligne principale de développement
  • /branches est le répertoire contenant les branches de développement
  • /tags est le répertoire contenant les étiquettes (ou tags)

Vous pouvez utiliser la commande suivante pour créer ces répertoires (remplacez exemple par le nom unix de votre projet) :

svn mkdir https://subversion.renater.fr/exemple/trunk https://subversion.renater.fr/exemple/branches https://subversion.renater.fr/exemple/tags

Le livre en ligne Version Control with Subversion détaille les opérations à effectuer pour organiser et initialiser son dépôt.

Est-il possible d'importer le contenu d'un dépôt Subversion extérieur déjà existant dans un dépôt Subversion hébergé sur SourceSup ?

Oui. Pour cela envoyer un email à support en indiquant le nom de votre projet et en joignant en pièce jointe un fichier “dump” de votre dépôt Subversion (ou en fournissant un lien vers ce fichier s'il est trop gros pour être envoyé par email). Si votre dépôt qui était hébergé sur SourceSup avait déjà du contenu, ce contenu sera écrasé.

DocRef : http://svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.dump.html

Exemple en ligne de commande (Dans le cas où vous êtes administrateur du dépôt subversion) :

$ cd /opt/projects/svn
$ svnadmin dump nom_unix_projet > nom_unix_projet.dump

Exemple en ligne de commande (Dans le cas où vous le dépôt est distant) :

$ svnrdump dump https://path.to.your/svn/repo/nom_unix_projet > nom_unix_projet.dump

Récuperer le fichier dump et l'envoyer à Renater via FileSender https://filesender.renater.fr/

Restreindre l'accès Subversion en écriture d'un développeur à une ou plusieurs branches

Il est possible de restreindre l'accès Subversion en écriture d'un développeur à une ou plusieurs branches du dépôt, en lui laissant le droit de lecture sur le reste du dépôt. Pour cela le développeur doit être enregistré comme membre du projet puis ensuite il faut envoyer un mail à support en précisant le nom du projet, le nom du développeur et le chemin complet de la ou les branches auxquelles astreindre l'accès en écriture pour ce développeur.

Comment modifier un message de log de mon dépôt Subversion ?

Faîtes la demande à support en indiquant le nom de votre projet, le numéro de la révision pour laquelle vous voulez changer le message de log et le nouveau message de log.

Vous pouvez également demander aux administrateurs de SourceSup de modifier la configuration de votre dépôt Subversion de sorte que vous pourrez à l'avenir changer avec votre client Subversion des messages de log, sans avoir à leur faire la demande à chaque changement. Une fois la modification de la configuration effectuée par les administrateurs, vous pourrez éditer la propriété svn:log associée à une révision pour modifier le message de log de cette révision. Exemple avec le client en ligne de commande :

svn propedit -r numero_de_revision --revprop svn:log https://subversion.renater.fr/authscm/<nom utilisateur unix>/nom_du_depot

Erreur "Could not read chunk size: connection was closed by server"

Cette erreur peut arriver quand le poste client n'a pas assez de mémoire pour récupérer un gros dépôt depuis le serveur Subversion. Voilà les choses à essayer pour contourner le problème :

  1. redémarrer votre poste avant de réessayer ;
  2. essayer avec un autre client Subversion moins gourmand en mémoire (Eclipse/Subclipse → TortoiseSVN → client linux en ligne de commande) ;
  3. ne pas récupérer tout le dépôt mais seulement la sous-partie sur laquelle on veut travailler ;
  4. augmenter la mémoire vive de son poste de travail.

Supprimer définitivement un fichier ou une arborescence d'un dépôt Subversion et de son historique

Il n'est pas possible pour un client Subversion de supprimer définitivement toute trace d'un fichier ou d'une arborescence dans un dépôt Subversion et son historique (cela sera peut-être possible un jour avec une commande obliterate). Pour supprimer définitivement un fichier ou une arborescence dans un dépôt Subversion et son historique, faîtes-en la demande à support en précisant le nom de votre projet et le fichier ou l'arborescence à supprimer.

Une fois le fichier ou l'arborescence supprimé dans le dépôt, vous pouvez mettre à jour votre copie local en supprimant le fichier ou l'arborescence puis en faisant un update.

Annuler le dernier commit effectué

Pour annuler le dernier commit effectué voici les opérations à suivre (en ligne de commande) :

  1. svn update : met à jour votre copie locale
  2. svn info : vous indique le numéro de la dernière révision (noté X dans cet exemple) et l'URL du dépôt associée à (noté URL dans cet exemple)
  3. svn merge -c -X URL : annule dans la copie de travail le dernier commit effecuté
  4. svn diff : permet de voir que la modification du dernier commit a été annulée dans la copie de travail
  5. svn commit : pour enregistrer sur le serveur l'annulation du dernier commit

Activer/désactiver l'affichage de statistiques détaillées sur mon activité dans les dépôts Subversion

Des statistiques sur l'activité dans les dépôts Subversion sont accessibles depuis l'onglet Subversion de chaque projet. Parmi ces statistiques peuvent apparaître des informations détaillées sur les commits effectués pour chaque membre du projet : nombre de commits au cours du temps, activités horaire et journalière, etc.

Vous pouvez activer ou désactiver ces statistiques vous concernant dans la page de gestion de votre compte. La prise en compte de cette modification sera effective le lendemain.