2010-09-06 7 views
15

Sto usando il client SVN della riga di comando (per motivi di velocità) e ho un elenco di modifiche dei file che desidero ignorare su ogni commit (proprio come fa TortoiseSVN). C'è un modo per impegnare tutti i file tranne uno specifico elenco di modifiche o forse solo impegnare tutti i file non in un elenco di modifiche?Come trasferire i file solo nell'elenco delle modifiche senza nome con SVN?

Grazie

risposta

6

No. L'elenco modifiche destinato al contrario. È sufficiente impegnare i file contenuti nell'elencubo e non escluderli dal commit. Se desideri ignorare determinati file, devi inserirli nella proprietà svn:ignore, ma solo se non sono sotto controllo di versione.

+1

Il problema è che sono, li ho modificati localmente in modo che visualizzino determinate informazioni solo per me ma non voglio che tutti lo vedano. – Ryall

+9

Vorrei poter downvotare questa "funzione" di svn. Al momento ho un carico di modifiche nella mia lista di modifiche predefinita e stavo cercando un modo per evitare di controllare il paio di file che NON voglio commettere senza dover controllare un centinaio di file per nome. –

+0

Sembra che Subversion 1.8 abbia una sintassi "--changelist" "per i file di destinazione che non appartengono a nessun elenco di modifiche. http://subversion.apache.org/docs/release-notes/1.8.html#cmdline – rlovtang

5

Io uso il seguente one-liner, a patto di avere un elenco modifiche di nome TO_IGNORE dove mettete i file non si vuole commettere:

svn st | sed -e "/^--- Changelist 'TO_IGNORE'/,/^--- Changelist/d" | grep '^[ADMR]' | awk '{print $2}' | xargs svn ci 

questo si basa sul fatto che "svn ST" prime liste tutti i file non inclusi nell'elenco delle modifiche, quindi tutti gli elenchi di modifiche uno dopo l'altro.

I comandi sed eliminano tutte le linee tra l'elenco delle modifiche che si desidera ignorare fino a quello successivo.

Il grep viene utilizzato per limitare i file aggiunti, eliminati, modificati e sostituiti al commit.

L'awk estrae il nome del file dall'output di svn.

+1

Questo non funziona abbastanza con i file binari - il comando awk stampa il simbolo + anziché il nome del file. L'ho modificato per awk '{print $ NF}' che sembra funzionare bene. –