SVN - Comment valider plusieurs fichiers en un seul coup


104

J'ai essayé de valider plusieurs fichiers dans différents répertoires en un seul coup comme ci-dessous,

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

Depuis, je voulais exclure certains fichiers de la liste de validation, j'ai donc placé chaque nom de fichier dans la ligne de commande comme ci-dessus. Je l'ai mis ensemble dans le bloc-notes et il est venu environ 25 fichiers. Lorsque je le copie et le colle sur la ligne de commande, les derniers fichiers sont manquants et je suppose que cela pourrait être une limitation du tampon de ligne de commande (?). Existe-t-il une option pour augmenter la longueur du tampon?

Existe-t-il une option pour mettre tous les fichiers dans un fichier texte et le donner comme argument à svn commit?


8
@Thi - Ceux qui n'utilisent pas d'interface graphique pour la subversion sont des masochistes. Obtenez Tortoise SVN ou son équivalent Linux.
tpow

1
S'il y a une restriction sur la longueur du tampon, ce ne sera pas dans SVN, ce sera dans n'importe quel shell que vous utilisez.
Colin Fine

20
@cinquTimo: vous préférerez peut-être utiliser une interface graphique pour tout. Les autres ne le font pas.
Colin Fine

@Colin, je pense que oui, comment augmenter la longueur du tampon shell dans ce cas?
jeu.2

3
"Ceux qui n'utilisent pas une interface graphique pour la subversion sont des masochistes." - Le masochisme consiste à utiliser la subversion, mais certains d'entre nous n'ont pas le choix.
Daniel

Réponses:


157

Vous pouvez utiliser une liste de modifications svn pour garder une trace d'un ensemble de fichiers que vous souhaitez valider ensemble.

La page liée contient de nombreux détails, mais voici un exemple de résumé:

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist

30

Vous pouvez utiliser l' --targets ARGoption où ARG est le nom du fichier texte contenant les cibles pour la validation.

svn ci --targets myfiles.txt -m "another commit"

Fonctionne pour moi dans cette commande bash:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten

28

Je n'ai eu aucun problème pour valider quelques fichiers comme celui-ci:

svn commit fileDir1/ fileDir2/ -m "updated!"

Cela ne fonctionne pas pour moi. Obtenir l'erreur "svn: '/' n'est pas une copie de travail". Ici, j'ai posté ma question, vous pouvez regarder. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…

Oui a bien fonctionné. Aussi dans la racine de mon document, je pourrais valider toutes les modifications dans la structure de l'arborescence de la copie de travail avec ceci:> svn commit. -m 'message de validation de masse'
Grigoreas P.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.