SVN: come eseguire il commit di più file in un unico scatto


104

Ho provato a eseguire il commit di più file su directory diverse in un unico scatto come di seguito,

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

Da allora, volevo escludere alcuni file dall'elenco dei commit, quindi ho inserito ogni nome di file nella riga di comando come sopra. L'ho messo insieme nel blocco note e sono arrivati ​​circa 25 file. Quando lo copio e incollo sulla riga di comando, mancano gli ultimi file e immagino che questa potrebbe essere una limitazione del buffer della riga di comando (?). C'è qualche opzione che posso aumentare la lunghezza del buffer?

C'è qualche opzione che posso mettere tutti i file in un file di testo e darlo come argomento per svn commit?


8
@Thi - Coloro che non usano una GUI per la sovversione sono masochisti. Ottieni Tortoise SVN o è equivalente a Linux.
2010

1
Se c'è una restrizione sulla lunghezza del buffer, non sarà in SVN, sarà in qualunque shell tu stia usando.
Colin Fine

20
@cinquTimo: potresti preferire utilizzare una GUI per tutto. Altre persone no.
Colin Fine

@Colin, penso di sì, come aumentare la lunghezza del buffer di shell in questo caso?
Giovedì

3
"Quelli che non usano una GUI per la sovversione sono masochisti". - Il masochismo consiste nell'usare la sovversione, ma alcuni di noi non hanno scelta.
Daniel

Risposte:


157

È possibile utilizzare un elenco modifiche svn per tenere traccia di un insieme di file che si desidera eseguire il commit insieme.

La pagina collegata fornisce molti dettagli, ma ecco un esempio di riepilogo esecutivo:

$ 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

È possibile utilizzare l' --targets ARGopzione in cui ARG è il nome del file di testo contenente gli obiettivi per il commit.

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

Per me funziona in questo comando bash:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten

28

Non ho avuto problemi a salvare alcuni file come questo:

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

Questo non funziona per me. Ricezione dell'errore "svn: '/' non è una copia funzionante". Qui ho pubblicato la mia domanda, puoi guardare. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…

Sì ha funzionato bene. Inoltre all'interno della mia root del documento potrei eseguire il commit di tutte le modifiche all'interno della struttura ad albero della copia funzionante con questo:> svn commit. -m "messaggio di impegno di massa"
Grigoreas P.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.