Tags: svn

Sort by: Date / Title /

  1. 7 years ago by spirit
    svn switch --relocate svn://svnserver1 svn://svnserver2
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/2062"></script>
  2. 7 years ago by spirit and saved by 1 other
    automatically create a SVN repository from a web project directory including trunk, branches and tags
    1. #!/bin/bash
    2.  
    3. # Vous pouvez éditer ces variables selon vos besoins
    4. SVN_ROOT="/srv/unit1/svn"
    5. SVN_TMP_PATH="/tmp/svn"
    6. $SVN_USER="svn"
    7. $SVN_GROUP="svn"
    8.  
    9. # Ce script doit être executé avec les droits de superutilisateur
    10. test -w /root;
    11. if [ ! "$?" -eq "0" ]; then
    12.         echo "Vous devez executer ce script en tant que superutilisateur."
    13.         exit 0
    14. fi
    15.  
    16. echo "#######################################"
    17. echo "Création d'un nouveau projet Subversion"
    18. echo "#######################################"
    19. echo ""
    20. echo "Tapez le nom du nouveau projet :"
    21. read PROJECT_NAME
    22.  
    23. if [ -z "$PROJECT_NAME" ]; then
    24.         echo "$PROJECT_NAME n'est pas un nom de projet valide.";
    25.         exit 0 
    26. fi
    27.  
    28. echo "Tapez maintenant le chemin du répertoire source :"
    29. echo "(Note: les répertoires trunk, branches et tags seront créés automatiquement)"
    30. read PROJECT_SOURCE_PATH
    31.  
    32. if [ -z "$PROJECT_SOURCE_PATH" -o ! -d $PROJECT_SOURCE_PATH ]; then
    33.         echo "$PROJECT_SOURCE_PATH n'est pas un répertoire valide.";
    34.         exit 0
    35. fi
    36.  
    37. echo "Création du projet $PROJECT_NAME depuis $PROJECT_SOURCE_PATH..."
    38.  
    39. # Si le répertoire $SVN_ROOT n'existe pas, on le crée
    40. if [ ! -d $SVN_ROOT ]; then
    41.         mkdir $SVN_ROOT
    42. fi
    43.  
    44. # Si le répertoire $SVN_TMP_PATH n'existe pas, on le crée
    45. if [ ! -d $SVN_TMP_PATH ]; then
    46.         mkdir $SVN_TMP_PATH
    47. fi     
    48.  
    49. # Création du répertoire du dépôt
    50. mkdir $SVN_ROOT/$PROJECT_NAME
    51.  
    52. # Création d'un répertoire temporaire de stockage avant import
    53. mkdir $SVN_TMP_PATH/$PROJECT_NAME
    54. mkdir $SVN_TMP_PATH/$PROJECT_NAME/branches
    55. mkdir $SVN_TMP_PATH/$PROJECT_NAME/tags
    56. mkdir $SVN_TMP_PATH/$PROJECT_NAME/trunk
    57.  
    58. # Copie des fichiers originaux dans le répertoire temporaire
    59. cp -R $PROJECT_SOURCE_PATH/* $SVN_TMP_PATH/$PROJECT_NAME/trunk/
    60.  
    61. # Création du dépôt et import depuis le répertoire créé
    62. svnadmin create $SVN_ROOT/$PROJECT_NAME
    63. svn import $SVN_TMP_PATH/$PROJECT_NAME file://$SVN_ROOT/$PROJECT_NAME -m "Initial import"
    64.  
    65. # Attribution des permissions à Apache sur le repertoire du dépot
    66. chown -R $SVN_USER:$SVN_GROUP $SVN_ROOT/$PROJECT_NAME
    67.  
    68. # Suppression du répertoire temporaire
    69. rm -rf $SVN_TMP_PATH/$PROJECT_NAME     
    70.  
    71. # Done !
    72. echo ""
    73. echo "Projet subversion $PROJECT_NAME créé avec succès dans $SVN_ROOT/$PROJECT_NAME !"
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/2015"></script>
  3. 7 years ago by spirit
    location ~ /.svn/* {
        deny  all;
    }
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/2009"></script>
  4. sponsorised links
  5. 8 years ago by spirit
    1. find . -name .svn -prune -o -print | xargs chown www-data:www-data
    2.  
    3. #Exclude another directory (cache)
    4. find . -name .svn -or -name cache -prune -o -print | xargs chown www-data:www-data
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1417"></script>
  6. 9 years ago by spirit
    Ce script permet de créér un repository pour votre application. Il crée les répertoires trunk, branches et tags automatiquement. Il suffit jsute de configurer les lignes au début du script et de se laisser guider.
    1. #!/bin/bash
    2.  
    3. # Vous pouvez éditer ces variables selon vos besoins
    4. SVN_ROOT="/var/svn"
    5. SVN_TMP_PATH="/tmp/svn"
    6. APACHE_USER="www-data"
    7. APAGE_GROUP="www-data"
    8. TRAC_ROOT="/var/trac"
    9. TRAC_SHARE="/usr/share/trac"
    10.  
    11. # Ce script doit être executer avec les droits de superutilisateur
    12. test -w /root;
    13. if [ ! "$?" -eq "0" ]; then
    14.         echo "Vous devez executer ce script en tant que superutilisateur."
    15.         exit 0
    16. fi
    17.  
    18. echo "#######################################"
    19. echo "Création d'un nouveau projet Subversion"
    20. echo "#######################################"
    21. echo ""
    22. echo "Tapez le nom du nouveau projet :"
    23. read PROJECT_NAME
    24.  
    25. if [ -z "$PROJECT_NAME" ]; then
    26.         echo "$PROJECT_NAME n'est pas un nom de projet valide.";
    27.         exit 0 
    28. fi
    29.  
    30. echo "Tapez maintenant le chemin du répertoire source :"
    31. echo "(Note: les répertoires trunk, branches et tags seront créés automatiquement)"
    32. read PROJECT_SOURCE_PATH
    33.  
    34. if [ -z "$PROJECT_SOURCE_PATH" -o ! -d $PROJECT_SOURCE_PATH ]; then
    35.         echo "$PROJECT_SOURCE_PATH n'est pas un répertoire valide.";
    36.         exit 0
    37. fi
    38.  
    39. echo "Création du projet $PROJECT_NAME depuis $PROJECT_SOURCE_PATH..."
    40.  
    41. # Si le répertoire $SVN_ROOT n'existe pas, on le crée
    42. if [ ! -d $SVN_ROOT ]; then
    43.         mkdir $SVN_ROOT
    44. fi
    45.  
    46. # Si le répertoire $SVN_TMP_PATH n'existe pas, on le crée
    47. if [ ! -d $SVN_TMP_PATH ]; then
    48.         mkdir $SVN_TMP_PATH
    49. fi     
    50.  
    51. # Création du répertoire du dépôt
    52. mkdir $SVN_ROOT/$PROJECT_NAME
    53.  
    54. # Création d'un répertoire temporaire de stockage avant import
    55. mkdir $SVN_TMP_PATH/$PROJECT_NAME
    56. mkdir $SVN_TMP_PATH/$PROJECT_NAME/branches
    57. mkdir $SVN_TMP_PATH/$PROJECT_NAME/tags
    58. mkdir $SVN_TMP_PATH/$PROJECT_NAME/trunk
    59.  
    60. # Copie des fichiers originaux dans le répertoire temporaire
    61. cp -R $PROJECT_SOURCE_PATH/* $SVN_TMP_PATH/$PROJECT_NAME/trunk/
    62.  
    63. # Création du dépôt et import depuis le répertoire créé
    64. svnadmin create $SVN_ROOT/$PROJECT_NAME
    65. svn import $SVN_TMP_PATH/$PROJECT_NAME file://$SVN_ROOT/$PROJECT_NAME -m "Initial import"
    66.  
    67. # Attribution des permissions à Apache sur le repertoire du dépot
    68. chown -R $APACHE_USER:$APACHE_GROUP $SVN_ROOT/$PROJECT_NAME
    69.  
    70. # Attribution de droits supplémentaires
    71. sudo chown -R $APACHE_USER:$APACHE_GROUP $TRAC_SHARE
    72.  
    73. # Suppression du répertoire temporaire
    74. rm -rf $SVN_TMP_PATH/$PROJECT_NAME     
    75.  
    76. # Done !
    77. echo ""
    78. echo "Projet subversion $PROJECT_NAME créé avec succès dans $SVN_ROOT/$PROJECT_NAME !"
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1257"></script>
  7. 9 years ago by spirit
    1/ Find the revision your branch began at: svn log --verbose --stop-on-copy svn+ssh://server/path/to/branch. The final revision printed by this command is the revision in which branch was created by copying.
    2/ Change your current working directory to trunk
    3/ Perform an SVN update: svn up
    4/ This will update your copy of trunk to the most recent version, and tell you the revision you are at: rYYYY
    5/ Now we can perform an SVN merge: svn merge -rXXXX:YYYY svn+ssh://server/path/to/branch
    6/ Resolve any conflicts that arose during the merge
    7/ Commit: svn ci -m "MERGE myProject myBranch [XXXX]:[YYYY] into trunk"
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1239"></script>
  8. 9 years ago by spirit
    What is svn going to do to my files when I update?
    1. svn merge --dry-run -r BASE:HEAD .
    2. alias svnupdry='svn merge --dry-run -r BASE:HEAD .'
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1238"></script>
  9. 9 years ago by spirit
    1. #-------- Vérifier ses modifications ----------#
    2. # Indique l'état de la version locale (ou d'un fichier précis de la version locale) par rapport à la dernière opération de 'synchronisation' avec le serveur (fichiers pas encore ajoutés, non commités, ...)
    3. svn status [$fichiers$]
    4.  
    5. # Modifications par rapport à la dernière révision du référentiel (n'affichera pas les possibles conflits)
    6. svn status -u [$fichiers$]
    7.  
    8. #-------- Annuler ses modifications ----------#
    9. # Supprime toutes les modifications locales (non commitées) apportées au fichier spécifié depuis le dernier update.
    10. svn revert [$fichiers$]
    11.  
    12. # Pour utiliser la commande sur un répertoire de façon récursive
    13. svn revert -R [$répertoire$]
    14.  
    15. # Reverter ses modification commités (ex: annuler la révision 303)
    16. svn merge -c -303 http://svn.example.com/repos/calc/trunk
    17. svn merge -r 303:202 http://svn.example.com/repos/calc/trunk
    18.  
    19. # Reverter ses dernières modifications
    20. svn merge -r PREV:HEAD my_file.txt
    21.  
    22. #-------- Résoudre les conflits ----------#
    23. mv monfichieragarder.rXXX monfichieragarder
    24. svn resolved monfichieragarder
    25.  
    26. # Résolution en masse
    27. svn status | grep ^C | awk '{print $2}' | xargs svn resolved
    28.  
    29. #-------- Log ----------#
    30. # suivre l'évolution dans le temps d'une ressource du référentiel ou de la copie locale
    31. svn log [-r vInitiale:vCible] [$fichiers$]
    32.  
    33. # A quelle révision une branche a-t-elle été créée? La dernière révision apparaissant avec la commande suivante
    34. svn log --verbose --stop-on-copy svn+ssh://svn.example.com/home/svn/module/branches/project
    35.  
    36. # Les changements des derniers 6 mois
    37. svn log -r {2006-12-25}:{2007-6-25} somefile.py
    38.  
    39. #-------- Merger / backporter ----------#
    40. # Cette syntaxe applique les modifications de la branche $brancheorigine$ effectuées de la révision vInitiale à la révision vCible à la branche branchedest. Si branchedest n'est pas spécifié, l'application sera réalisée sur le répertoire courant.
    41. svn merge -r vInitiale:vCible $brancheorigine$ [$branchedest$]
    42. svn ci
    43.  
    44. # Ex: d'une branche (créée à la révision 17) vers le trunk (on est situé dans la copie locale du trunk)
    45. svn merge -r 17:HEAD svn+ssh://svn.example.com/home/svn/module/branches/project
    46.  
    47. # Ex: du trunk vers une branche(créée à la révision 17) (on est situé dans la copie locale de la branche)
    48. svn merge -r 17:HEAD svn+ssh://svn.example.com/home/svn/module/trunk/project
    49.  
    50. #/!\ Un point important est de noter que la branche reçoit le dernier numéro de version. La prochaine fois que l'on veut backporter les modifs du trunk dans cette branche il faudra utiliser CE numéro de version.
    51.  
    52. #-------- Créer une version taggée ou une branche ----------#
    53. svn copy trunk tags/$montag$
    54. svn copy trunk branches/$mabranche$
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1237"></script>
  10. 9 years ago by gameplayer and saved by 1 other
    Cette commande va effectuer le status sur tous les fichiers contenus dans $liste_file_to_update, ne récupère que les lignes commençant par M (fichiers modifiés), supprime les 9 premiers caractères (pour supprimer les caractères de statut affichés par svn status) et retire les espaces et caractères numériques restant au début de la ligne.
    1. svn status -u $liste_file_to_update | egrep '^M' | cut -c 9- | sed "s/[1-9 ][1-9 ]*\//\//g"
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1010"></script>
  11. 9 years ago by gameplayer and saved by 1 other
    Pensez a fixer les deux paramètres pathRepo et pathBackup. Merci de me laisser un commentaire si vous en sentez le besoin.
    1. #!/bin/bash
    2. # Script de sauvegarde incrémentale d'un dépôt subversion
    3. # Il est possible de provoquer une sauvegarde complète en supprimant le dossier version ou son contenu
    4. # Paramètres
    5. # Chemin du dépôt à sauvegarder
    6. pathRepo="/chemin/repository";
    7. # Chemin du dossier de sauvegarde
    8. pathBackup="/chemin/dossier/sauvegarde";
    9. # Chemin du dossier pour mémoriser la dernière version sauvegardée
    10. pathNumVersion=$pathBackup"/version";
    11. # Chemin du fichier de logs
    12. pathLog=$pathBackup"/backup.log";
    13. # Nom du fichier (compris entre la date et l'extension)
    14. fileName="backup_svn";
    15. # Format de la date
    16. # Pour le nom du fichier
    17. dateFileFormat="+%Y%m%d";
    18. # Pour le log
    19. dateLogFormat="+%Y-%m-%d %H:%M";
    20.  
    21. # Vérifications
    22. # Vérification de l'existence des dossiers de travail
    23. if [ ! -d $pathBackup ]; then
    24.         echo "Dossier $pathBackup inexistant";
    25.         exit 1;
    26. fi
    27.  
    28. echo "[$(date "$dateLogFormat")] Début de la sauvegarde" >> $pathLog;
    29.  
    30. # Création du dossier de la version si il n'existe pas
    31. if [ ! -d $pathNumVersion ]; then
    32.         mkdir $pathNumVersion;
    33. fi
    34.  
    35. numVersionLastBackup=$(ls $pathNumVersion);
    36. if [ "$numVersionLastBackup" = "" ]; then
    37.         touch "$pathNumVersion/1";
    38.         numVersionLastBackup=1;
    39. fi
    40.  
    41. if [ $numVersionLastBackup -gt 1 ]; then
    42.         backupIncremental=" --incremental";
    43.         typeBackup="incr";
    44. else
    45.         typeBackup="full";
    46. fi
    47.  
    48. # Vérification de l'existance du dépôt
    49. if  ! (svnlook info $pathRepo 2>>$pathLog 1>"/dev/null") ; then
    50.         echo "[$(date "$dateLogFormat")] ERREUR : Repository $pathRepo inexistant" >> $pathLog;
    51.         echo "[$(date "$dateLogFormat")] Fin de l'exécution - Sauvegarde non effectuée" >> $pathLog;
    52.         exit 1;
    53. fi
    54.  
    55. # Récupération de la dernière version présente dans le dépôt
    56. youngestSvnVersion=$(svnlook youngest $pathRepo);
    57. echo "[$(date "$dateLogFormat")] Version la plus récente : $youngestSvnVersion" >> $pathLog;
    58.  
    59. if [ $numVersionLastBackup -gt $youngestSvnVersion ]; then
    60.         echo "[$(date "$dateLogFormat")] La version la plus récente est la version sauvegardée, la sauvegarde n'est donc pas nécéssaire" >> $pathLog;
    61.         echo "[$(date "$dateLogFormat")] Fin de la sauvegarde" >> $pathLog;
    62.         exit 0
    63. fi
    64.  
    65. # Lancement effectif de la sauvegarde
    66. if (svnadmin dump -r$numVersionLastBackup:$youngestSvnVersion$backupIncremental $pathRepo 2>>$pathLog | bzip2 > "$pathBackup/$(date "$dateFileFormat")_"$fileName"_"$typeBackup"_"$numVersionLastBackup"_to_"$youngestSvnVersion".svndump.bz2") ; then
    67.         echo "[$(date "$dateLogFormat")] Mise à jour du numéro de version" >> $pathLog;
    68.         mv $pathNumVersion/$numVersionLastBackup $pathNumVersion/$(($youngestSvnVersion + 1));
    69. else
    70.         echo "[$(date "$dateLogFormat")] Erreur lors de la sauvegarde" >> $pathLog;
    71.         echo "[$(date "$dateLogFormat")] Fin de l'exécution - Sauvegarde non effectuée" >> $pathLog;
    72.         exit 1;
    73. fi
    74.  
    75. echo "[$(date "$dateLogFormat")] Fin de la sauvegarde" >> $pathLog;
    76. exit 0
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/672"></script>

First / Previous / Next / Last / Page 1 of 2 (11 posteets)