Existe-t-il un moyen de valider uniquement une liste de fichiers spécifiques (par exemple, l'un des fichiers que SVN souhaite valider).
Je travaille sur MAC OS X sous Terminal, sans aucune interface utilisateur.
Existe-t-il un moyen de valider uniquement une liste de fichiers spécifiques (par exemple, l'un des fichiers que SVN souhaite valider).
Je travaille sur MAC OS X sous Terminal, sans aucune interface utilisateur.
Réponses:
Sûr. Énumérez simplement les fichiers:
$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png
Je ne suis pas au courant d'un moyen de lui dire d'ignorer un certain ensemble de fichiers. Bien sûr, si les fichiers que vous souhaitez valider sont facilement répertoriés par le shell, vous pouvez utiliser cela:
$ svn ci -m "No longer sets printer on fire" printer-driver/*.c
Vous pouvez également demander à la commande svn de lire la liste des fichiers à valider à partir d'un fichier:
$ svn ci -m "Now works" --targets fix4711.txt
svn add
est utilisé pour ajouter des fichiers aux référentiels.
Utilisez des listes de modifications. L'avantage par rapport à la spécification de fichiers est que vous pouvez visualiser et confirmer que tout ce que vous vouliez est réellement inclus avant de vous engager.
$ svn changelist fix-issue-237 foo.c
Path 'foo.c' is now a member of changelist 'fix-issue-237'.
Cela fait, svn garde les choses séparées pour vous. Cela aide lorsque vous jonglez avec plusieurs changements
$ svn status
A bar.c
A baz.c
--- Changelist 'fix-issue-237':
A foo.c
Enfin, dites-lui de valider ce que vous vouliez changer.
$ svn commit --changelist fix-issue-237 -m "Issue 237"
svn changelist fix-issue-237 --recursive path/to/directory
Vous mettez essentiellement les fichiers que vous souhaitez valider sur la ligne de commande
svn ci file1 file2 dir1/file3
En raison de mon état de subversion, j'ai dû faire preuve de créativité. svn st
montré M
, A
et les ~
statuts. Je voulais seulement M
et A
donc ...
svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt
Cette commande indique de trouver toutes les lignes générées par svn st
qui commencent par M
ou A
, coupent à l'aide du délimiteur d'espace, puis obtiennent les colonnes 8 à la fin. Vider cela dans target.txt et écraser.
Modifiez ensuite le fichier target.txt pour affiner davantage la liste des fichiers. Ensuite, exécutez ci-dessous pour valider:
svn ci -m "My commit message" --targets targets.txt
Ce n'est probablement pas le cas d'utilisation le plus courant, mais j'espère que cela aide quelqu'un.
grep -v '^~'
pour mettre sur liste noire ce que vous voulez.
En plus de la liste des fichiers explicitement comme indiqué par dérouleur et Wienczny , vous pouvez les listes de modifications de configuration et checkin ceux - ci. Ceux-ci vous permettent de gérer des ensembles de modifications disjoints sur la même copie de travail.
Vous pouvez les lire dans la version en ligne de l'excellent livre SVN .
essayez ce script ..
#!/bin/bash
NULL="_"
for f in `svn st|grep -v ^\?|sed s/.\ *//`;
do LIST="${LIST} $f $NULL on";
done
dialog --checklist "Select files to commit" 30 60 30 $LIST 2>/tmp/svnlist.txt
svn ci `cat /tmp/svnlist.txt|sed 's/"//g'`
Je crée un (sous) dossier nommé "hide", je déplace le fichier dans lequel je ne veux pas le valider. Ensuite, faites mon commit, en ignorant la plainte concernant le fichier manquant. Ensuite, déplacez le fichier masqué de masquer vers ./
Je ne connais aucun inconvénient à cette tactique.