Skip to content

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

Note

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. testw /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 !”