Skip to content

Création automatique (trunk, branches et tags inclus) d’un dépôt SVN à partir d’un dossier projet

  • by

automatically create a SVN repository from a web project directory including trunk, branches and tags

  1. #!/bin/bash

  2. # Vous pouvez éditer ces variables selon vos besoins

  3. SVN_ROOT="/srv/unit1/svn"

  4. SVN_TMP_PATH="/tmp/svn"

  5. $SVN_USER="svn"

  6. $SVN_GROUP="svn"

  7. # Ce script doit être executé avec les droits de superutilisateur

  8. test -w /root;

  9. if [ ! "$?" -eq "0" ]; then

  10.        echo "Vous devez executer ce script en tant que superutilisateur."

  11.         exit 0

  12. fi

  13. echo "#######################################"

  14. echo "Création d'un nouveau projet Subversion"

  15. echo "#######################################"

  16. echo ""

  17. echo "Tapez le nom du nouveau projet :"

  18. read PROJECT_NAME

  19. if [ -z "$PROJECT_NAME" ]; then

  20.         echo "$PROJECT_NAME n'est pas un nom de projet valide.";

  21.         exit 0

  22. fi

  23. echo "Tapez maintenant le chemin du répertoire source :"

  24. echo "(Note: les répertoires trunk, branches et tags seront créés automatiquement)"

  25. read PROJECT_SOURCE_PATH

  26. if [ -z "$PROJECT_SOURCE_PATH" -o ! -d $PROJECT_SOURCE_PATH ]; then
  27.         echo "$PROJECT_SOURCE_PATH n'est pas un répertoire valide.";

  28.         exit 0

  29. fi

  30. echo "Création du projet $PROJECT_NAME depuis $PROJECT_SOURCE_PATH..."

  31. # Si le répertoire $SVN_ROOT n'existe pas, on le crée

  32. if [ ! -d $SVN_ROOT ]; then

  33.         mkdir $SVN_ROOT

  34. fi

  35. # Si le répertoire $SVN_TMP_PATH n'existe pas, on le crée

  36. if [ ! -d $SVN_TMP_PATH ]; then

  37.        mkdir $SVN_TMP_PATH

  38. fi

  39. # Création du répertoire du dépôt

  40. mkdir $SVN_ROOT/$PROJECT_NAME

  41. # Création d'un répertoire temporaire de stockage avant import

  42. mkdir $SVN_TMP_PATH/$PROJECT_NAME

  43. mkdir $SVN_TMP_PATH/$PROJECT_NAME/branches

  44. mkdir $SVN_TMP_PATH/$PROJECT_NAME/tags

  45. mkdir $SVN_TMP_PATH/$PROJECT_NAME/trunk

  46. # Copie des fichiers originaux dans le répertoire temporaire

  47. cp -R $PROJECT_SOURCE_PATH/* $SVN_TMP_PATH/$PROJECT_NAME/trunk/

  48. # Création du dépôt et import depuis le répertoire créé

  49. svnadmin create $SVN_ROOT/$PROJECT_NAME

  50. svn import $SVN_TMP_PATH/$PROJECT_NAME file://$SVN_ROOT/$PROJECT_NAME -m "Initial import"

  51. # Attribution des permissions à Apache sur le repertoire du dépot

  52. chown -R $SVN_USER:$SVN_GROUP $SVN_ROOT/$PROJECT_NAME

  53. # Suppression du répertoire temporaire

  54. rm -rf $SVN_TMP_PATH/$PROJECT_NAME

  55. # Done !

  56. echo ""

  57. echo "Projet subversion $PROJECT_NAME créé avec succès dans $SVN_ROOT/$PROJECT_NAME !"