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?

Thi
la source
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
Mark Pim
la source
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"
Dmitry Yudakov
la source
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!"
psy
la source
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.
3

Utilisez un changeset. Vous pouvez ajouter autant de fichiers que vous le souhaitez à l'ensemble de modifications, en une seule fois, ou sur plusieurs commandes; puis engagez-les tous en une seule fois.

Colin Fine
la source
1
svnbook.red-bean.com/en/1.6/svn.advanced.changelists.html - Le mot-clé svn est "changelist", qui est abordé dans la première réponse et le plus voté.
John W. Clark