Changes between Version 13 and Version 14 of VincentFAQ


Ignore:
Timestamp:
May 6, 2005, 6:05:14 PM (21 years ago)
Author:
garonne
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VincentFAQ

    v13 v14  
    11{{{
    22#!rst
    3 
    4 .. contents::
    5 .. sectnum::
    6 
    7 -----
    8 
    9 .. ** DOC SVN **
    10 
    11 Doc SVN
    12 =======
    13 
    14 Récupération du bouquin de référence
    15 ------------------------------------
    16 
    17 (`le site`_ et `la doc locale`_  (Version 1.1 - Revision 12923))
    18 
    19 .. _`le site`: http://svnbook.red-bean.com/
    20 .. _`la doc locale`:
    21 file:///Users/Shared/Docs/Programmation/Outils/Subversion/svnbook.red-bean.c
    22 om/en/1.1/index.html
    23 
    24 ::
    25 
    26    $> cd /Users/Shared/Docs/Programmation/Outils/Subversion
    27    $> swget http://svnbook.red-bean.com/en/1.1/index.html
    28 
    29 
    30 .. ** MANIPULATION DE REPOSITORY **
    31 
    32 Manipulation de repository
    33 ==========================
    34 
    35 Création d'un repository de test
    36 ----------------------------------
    37 
    38 (je ne sais pas forcer le groupe via ''sudo'', donc 2 commandes)
    39 
    40 ::
    41 
    42   $> svnadmin create --fs-type fsfs SVNNEW
    43 
    44 ou
    45 
    46 ::
    47 
    48   $> svnadmin create --fs-type bdb SVNNEW
    49 
    50 ::
    51 
    52   $> sudo chown -R www:svn SVNNEW
    53   $> sudo chmod -R g+w SVNNEW
    54 
    55 Passage d'un repository à l'autre
    56 ---------------------------------
    57 
    58 ::
    59 
    60   $> sudo svnadmin dump /Users/Shared/Roscoff > SVN-Roscoff.dump
    61   $> sudo svnadmin load /Users/Shared/SVNTEST < SVN-Roscoff.dump
    62 
    63 Par contre,
    64 
    65 ::
    66 
    67   $> sudo -u www svnadmin load --parent-dir Roscoff ./SVNNEW <
    68 SVN-Roscoff.dump
    69 
    70 ne marche pas si le répertoire Roscoff n'existe pas dans le repository; je
    71 crée ce dernier via le serveur HTTP pour des raisons de droits d'accès
    72 ('''rw''' pour ''www'', '''r''' seulement pour le groupe ''svn''):
    73 
    74 ::
    75 
    76   $> svn mkdir -m "Creation directory Roscoff"
    77 http://127.0.0.1:8800/Svn/test/Roscoff
    78   $> sudo -u www svnadmin load --parent-dir Roscoff ./SVNTEST <
    79 SVN-Roscoff.dump
    80 
    81 
    82 Exemple de réorganisation d'un repository
    83 -----------------------------------------
    84 ::
    85 
    86   $> svn list http://localhost:8800/Svn/SVN
    87   $> svn mkdir -m "Creation du repertoire Roscoff"
    88 http://localhost:8800/Svn/SVN/Roscoff
    89   $> svn move -m "Deplacement du repertoire FW dans Roscoff"
    90 http://localhost:8800/Svn/SVN/FW http://localhost:8800/Svn/SVN/Roscoff/FW
    91 
    92 
    93 Migration de DB Berkeley à FSFS
    94 -----------------------------------------
    95 ::
    96 
    97   $> sudo /sw/sbin/apachectl stop
    98   $> sudo svnadmin dump SVN > ~/SVN.dump
    99   $> sudo mv SVN SVN-BREAK
    100   $> sudo svnadmin create --fs-type fsfs SVN
    101   $> sudo chown -R www:svn SVN
    102   $> sudo chmod -R g+w SVN
    103   $> sudo svnadmin load SVN < ~/SVN.dump
    104   $> sudo /sw/sbin/apachectl start
    105 
    106 
    107 Suppression d'un répertoire importé par erreur
    108 ----------------------------------------------
    109 ::
    110 
    111   $> sudo /sw/sbin/apachectl stop
    112   $> sudo svnadmin dump /Users/Shared/Svn/COOL > ~/Temp/COOL-dump
    113   $> cat ~/Temp/COOL-dump | svndumpfilter exclude Sites/Perf/Database >
    114 ~/Temp/COOL-new-dump
    115   $> sudo mv COOL COOL-bak
    116   $> sudo svnadmin create --fs-type fsfs COOL
    117   $> sudo chown -R www:svn COOL
    118   $> sudo chmod -R g+w COOL
    119   $> sudo svnadmin load COOL < ~/Temp/COOL-new-dump
    120   $> sudo /sw/sbin/apachectl start
    121 
    122 Il semble qu'on ne puisse supprimer que des répertoires et non des fichiers
    123 individuellement.
    124 
    125 .. ** GESTION D'UN PACKAGE **
    126 
    127 Gestion d'un package
    128 ====================
    129 
    130 Import
    131 --------
    132 ::
    133 
    134   $> cd ~/Projets/Atlas
    135   $> svn import -m "Import de IOVDbSvc" IOVDbSvc
    136 http://localhost:8800/Svn/SVN/Atlas/IOVDbSvc
    137   $> svn list http://localhost:8800/Svn/SVN/Atlas
    138 
    139 On importe la *copie* de travail locale **vers** le *dépot*.
    140 
    141 Examen
    142 ----------
    143 ::
    144 
    145   $> svn list --verbose http://localhost:8800/Svn/COOL/
    146 
    147 L'option ''--verbose'' rajoute le numéro de révision, l'auteur et la date de
    148 révision pour chaque répertoire.
    149 
    150 *Check out*
    151 --------------
    152 ::
    153 
    154   $> svn co http://127.0.0.1:8800/Svn/SVN/Atlas/IOVDbSvc IOVDbSvc
    155 
    156 On récupère le répertoire du *dépot* **vers** la *copie* de travail locale.
    157 
    158 Update
    159 --------
    160 ::
    161 
    162   $>
    163 
    164 Tagging
    165 ---------
    166 ::
    167 
    168   $> svn copy http://localhost:8800/Svn/SVN/Atlas/IOVDbSvc \
    169               http://localhost:8800/Svn/SVN/Atlas/IOVDbSvc-00-01-47 \
    170               -m "Tagging IOVDbSvc-00-01-47"
    171 
    172 *Correction* d'un tag
    173 -------------------------
    174 Deux stratégies possibles :
    175 
    176 - corriger dans la *branche principale*, supprimer le tag obsolète et
    177 re-tagger (méthode utilisée par Michel)
    178 
    179 ::
    180 
    181   $> svn rm http://localhost:8800/Svn/COOL/Sites/Perf-00-00-03 \
    182               -m "Suppression tag Perf-00-00-03 pour application patch - Cf
    183 source:Sites/Perf_ChangeLog"
    184   $> ci -m "Corrections et patch -  Cf source:Sites/Perf_ChangeLog"
    185   $> svn copy http://localhost:8800/Svn/COOL/Sites/Perf \
    186               http://localhost:8800/Svn/COOL/Sites/Perf-00-00-03 \
    187               -m "Nouveau tag Perf-00-00-03"
    188 
    189 - introduire le patch (corriger) dans la *branche taggée* puis mettre à jour
    190 la branche principale (merge) (méthode *Christian*)
    191 
    192 .. ** GESTION DES 'PROPERTIES' **
    193 
    194 Gestion des 'properties'
    195 ========================
    196 
    197 svn:ignore
    198 ----------
    199 
    200 On donne à **Subversion** la liste des fichiers à ignorer en définissant la
    201 *property* **svn::ignore** sur les répertoires.
    202 
    203 À partir d'une liste de fichiers (par exemple *.cvsignore*) :
    204 
    205 ::
    206 
    207   $> svn propset -R svn:ignore . -F .cvsignore
    208 
    209 ou bien en éditant directement la *property* :
    210 
    211 ::
    212 
    213   $> setenv SVN_EDITOR vi
    214   $> svn propedit svn:ignore .
    215 
    216 Les *properties* sont versionnées :
    217 
    218 ::
    219 
    220   $> svn commit -m "Ignoring ignorable files"
    221 
    222 
    223 .. ** ADMINISTRATION DU DÉPOT **
    224 
    225 Administration du dépot
    226 ========================
    227 
    228 recover
    229 ----------
    230 
    231 Il faut absolument penser à **arêter le serveur apache** avant de toucher au
    232 dépot.
    233 
    234 ::
    235 
    236   $> sudo /sw/sbin/apachectl stop
    237   $> sudo svnadmin recover SVN
    238   $> sudo svnadmin verify SVN
    239   $> sudo /sw/sbin/apachectl start
    240 
    241 dump/load
    242 ------------
    243 
    244 Quand on ne se sort pas d'une erreur *FATAL*, on peut tenter ça :
    245 
    246 ::
    247 
    248   $> sudo svnadmin SVN > ~/SVN.dump
    249   $> sudo mv SVN SVN-BAK
    250   $> sudo svnadmin create SVN
    251   $> sudo chown -R www:svn SVN
    252   $> sudo chmod -R g+w SVN
    253   $> sudo svnadmin SVN < ~/SVN.dump
    254 
    255 Ce type de manip a disparu en passant en *fsfs* Š
    256 
    2573}}}