212 votes

Fichiers spécifiques au SVN Commit

Existe-t-il un moyen de ne commettre qu'une liste de fichiers spécifiques (par exemple, un seul des fichiers de la liste que SVN veut commettre).

Je travaille sur MAC OS X sous Terminal, sans aucune interface utilisateur.

323voto

unwind Points 181987

Bien sûr. Faites juste la liste des fichiers :

$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png

Je ne connais pas de moyen de lui dire d'ignorer un certain nombre de fichiers. Bien sûr, si les fichiers que vous voulez livrer sont facilement listés par le shell, vous pouvez l'utiliser :

$ 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 à livrer à partir d'un fichier :

$ svn ci -m "Now works" --targets fix4711.txt

63voto

jcwenger Points 6988

Utilisez les listes de modifications. L'avantage par rapport à la spécification des fichiers est que vous pouvez visualiser et confirmer que tout ce que vous vouliez est effectivement inclus avant de valider.

$ svn changelist fix-issue-237 foo.c 
Path 'foo.c' is now a member of changelist 'fix-issue-237'.

Ceci fait, svn garde maintenant les choses séparées pour vous. Cela aide lorsque vous jonglez avec de multiples 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"

38voto

Wienczny Points 909

En gros, vous mettez les fichiers que vous voulez commettre sur la ligne de commande

svn ci file1 file2 dir1/file3

22voto

Eric Points 181

En raison de mon état de subversion, j'ai dû faire preuve de créativité. svn st a montré M , A y ~ statuts. Je voulais seulement M y A donc...

svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt

Cette commande permet de trouver toutes les lignes produites par svn st qui commencent par M o A coupez en utilisant le délimiteur d'espace, puis récupérez les colonnes 8 à la fin. Mettez-le dans le fichier targets.txt et écrasez-le.

Puis modifiez le fichier targets.txt pour élaguer davantage la liste des fichiers. Puis exécutez la commande ci-dessous pour valider :

svn ci -m "My commit message" --targets targets.txt

Ce n'est probablement pas le cas le plus courant, mais j'espère que cela aidera quelqu'un.

10voto

sbi Points 100828

En plus de lister les fichiers explicitement comme indiqué par Détendez-vous y Wienczny vous pouvez établir des listes de modifications et les vérifier. Celles-ci vous permettent de gérer des ensembles disjoints de modifications sur la même copie de travail.

Vous pouvez les lire dans le version en ligne de l'excellent livre SVN .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X