#1 Le 26/11/2008, à 10:37
- cushy007
[RESOLU] versionner le répertoire /home/
Bonjour, je poste ici car ça parle de subversion.
Je dispose d'un serveur SVN perso en http et je voudrais versionner mon répertoire /home pour pouvoir synchroniser les configurations de tous mes postes.
Prenons deux cas concrets :
cas 1 :
Je viens de trouver un excellent éditeur de code au boulot (par exemple geany) et je passe une heure à configurer les raccourcis clavier et autres colorations syntaxiques puis je fais un
svn add ~/.geany/conf...
car mon /home est versionné. Je rentre le soir chez moi et j'installe ce nouvel éditeur sur mon poste, puis je fais un update de mon home et les nouveaux fichiers de config y sont automatiquement copiés.
cas 2 :
Je modifie un raccourci clavier dans les préférences de l'éditeur sur mon poste à la maison, puis je fais un commit. Le lendemain au boulot, je fais un update de mon /home et le fichier de conf de l'éditeur est mis à jour avec mon nouveau raccourci ... magique !
Pour mettre en place ce dépôt, j'ai mis tous mes répertoires contenant les fichiers de conf que je souhaite versionner. Mais voilà, lors du checkout, svn ne veut pas m'écraser les fichiers et dossiers déjà existants.
Je pense utiliser la méthode suivante pour faire mon checkout initial :
- creer une liste des dossiers présents dans le dépôt svn
- créer un répertoire d'archivage temporaire
- pour chaque dossier de cette liste présent dans mon /home -> l'ajouter à l'archive puis l'effacer
- faire mon checkout (les dossiers et fichiers présents dans le dépôt ne se trouvent plus dans /home, donc ça marche)
- extraire les dossiers de l'archive dans /home sans écraser les fichiers déjà présents (ceux issus du checkout)
seulement, c'est un peu lourd. Alors voilà (enfin) ma question : est-il possible de forcer la commande
svn checkout
à écraser les dossiers et fichiers déjà présent ? je n'arrive pas à trouver ça dans la doc
PS : merci de votre petience
Dernière modification par cushy007 (Le 26/11/2008, à 16:34)
Hors ligne
#2 Le 26/11/2008, à 13:06
- yohann
Re : [RESOLU] versionner le répertoire /home/
svn checkout --force
svn update
d'apres la doc (svn help checkout):
Si l'option --force est utilisée, c'est un peu subtile et compliqué...
La collision d'un objet non versionné dans la copie de travail et
d'un homonyme versionné dans le dépôt n'occasionne pas automatiquement
un échec lors de l'actualisation (switch). En effet, si l'objet gênant
est de même type (fichier ou répertoire) que l'objet homonyme du dépôt,
il devient alors versionné, mais garde le même contenu.
Cela signifie qu'un sous-objet d'un répertoire gênant non versionné
peut lui-même être gênant et devenir versionné.
Pour les fichiers, toute différence est considérée comme une
modification locale à la copie de travail.
Toutes les propriétés stockées dans le dépôt sont appliquées aux objets.
donc le fichier garde son contenu mais deviens versionné
si tu fais un update derriere, en principe, tu devrais récupérer la version du dépot.
l'autre possibilitée étant de versionner un script tout bete qui execte les opération que tu viens de décrire.
PS: Je trouve tres bonne l'idée de versionner ses fichiers de config!
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#3 Le 26/11/2008, à 15:49
- cushy007
Re : [RESOLU] versionner le répertoire /home/
Merci de ta réponse rapide, mais on ne doit pas avoir la même version de svn car pour moi l'option --force n'apparait pas dans la doc de checkout :
johann@desktop:~/$ svn help checkout
checkout (co): Extrait une copie de travail à partir d'un dépôt.
usage : checkout URL[@REV]... [CHEMIN]
Si précisée, REV détermine quelle révision est d'abord regardée.
En l'absence de CHEMIN, le dernier composant (basename) de l'URL est
utilisé comme destination. En cas d'URL multiples, chacune est extraite
dans un sous-répertoire de CHEMIN nommé comme le dernier composant de
l'URL.
Options valides:
-r [--revision] ARG : ARG (peut aussi être une étendue ARG1:ARG2)
L'argument d'une révision peut être :
NUMÉRO numéro de la révision
'{' DATE '}' révision disponible à cette date
'HEAD( dernière révision du dépôt
'BASE' rév. de base de la copie de travail
'COMMITTED' dernière propagation à ou avant BASE
'PREV' révision juste avant COMMITTED
-q [--quiet] : essaie de se taire
-N [--non-recursive] : opère sur un seul répertoire
--username ARG : précise le nom d'utilisateur ARG
--password ARG : précise le mot de passe ARG
--no-auth-cache : ne conserve pas les éléments d'authentification
--non-interactive : pas de demande interactive
--config-dir ARG : fichiers de configuration dans ce répertoire
--ignore-externals : ignore les références externes
et svn --version :
svn, version 1.4.6 (r28521)
compilé Mar 11 2008, 08:26:35
J'ai essayé d'ajouter quand même l'option --force à la commande mais il ne la connait pas
Dernière modification par cushy007 (Le 26/11/2008, à 15:52)
Hors ligne
#4 Le 26/11/2008, à 16:23
- yohann
Re : [RESOLU] versionner le répertoire /home/
en effet:
svn, version 1.5.2 (r32768)
compilé Oct 15 2008, 15:45:27
ben il te reste a upgrader svn...
délire, y a un gars qui voulait faire comme toi, et qui a eu le meme probleme avant la version 1.5 de svn
http://svn.haxx.se/users/archive-2007-11/0538.shtml
Dernière modification par yohann (Le 26/11/2008, à 16:28)
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#5 Le 26/11/2008, à 16:34
- cushy007
Re : [RESOLU] versionner le répertoire /home/
délire, y a un gars qui voulait faire comme toi, et qui a eu le meme probleme avant la version 1.5 de svn lol
http://svn.haxx.se/users/archive-2007-11/0538.shtml
En effet, je ne suis pas le seul
Bon bein j'upgrade ... encore merci.
Hors ligne