2012-01-09 18 views

risposta

4

Beh, è ​​possibile scrivere uno script per fare questo ...

Quale piattaforma stai? Windows o Unix? Quale linguaggio di scripting sei in grado di utilizzare?

Ecco un vero e semplice quello che ho appena fatto:

$ svn cl my-changelist $(svn st | awk '{print $2}') 

Probabilmente necessita di alcuni lavori (cosa succede se ho cambiato una proprietà rispetto a un file o ho cambiato entrambi Che cosa succede se ho cancellato un file??). Ma, ha funzionato nella mia (certamente semplice) situazione.

1

stampa di awk $ 2 sarà fallire se svn stat ti mostra le bandiere come + o ~

taglio potrebbe essere più sicuro, per esempio

Il mio bash-fu non è forte e la sintassi $() non ha funzionato per me. Ho finito per fare qualcosa di simile:

for i in `svn st | cut -c9-` do; svn changelist my-changelist $i; done 
+0

> for i in 'svn st | cut -c9-'; do svn changelist my-changelist $ i; fatto – zinking

0
  1. Se si dispone di più di un changelists, si vuole filtrare le linee irrilevanti prima.

    svn status | grep '^[ADMRC]' | cut -c9- | xargs svn changelist foo 
    
  2. Se si dispone di nomi di file con spazi, sarà anche necessario utilizzare eval.

    eval "svn changelist foo $(svn status | grep '^[ADMRC]' | cut -c9- | sed 's/ /\\ /' | tr '\n' ' ')" 
    

    sed 's/ /\\ /' evita spazi.

Riferimento:

Problemi correlati