Domanda

C'è un modo per dire a subversion "aggiorna/unisci a meno che non causi un conflitto"?

So che puoi usare --dry-run / status -u da controllare prima di eseguire l'aggiornamento, ma spesso ho altri che eseguono aggiornamenti e ottengono pagine Web danneggiate perché non notano la riga "C index.php".

Ho anche notato che svn non sembra troppo scontento dei conflitti: dice ancora "aggiornato alla revisione blah" ed esce da zero, indipendentemente dai conflitti.Quindi devo analizzare l'output riga per riga per scoprirli.Sicuramente c'è un modo migliore?

È stato utile?

Soluzione

Puoi utilizzare il parametro --accept per indicare cosa dovrebbe accadere quando si verifica un conflitto:

--accept ARG             : specify automatic conflict resolution action
                          ('postpone', 'base', 'mine-full', 'theirs-full',
                          'edit', 'launch')

Vedi anche il risoluzione interattiva dei conflitti pagina nello svnbook

Altri suggerimenti

Forse un modo migliore è utilizzare uno strumento grafico?Oppure scrivi uno script per eseguire l'aggiornamento che reindirizza l'output su un file e alla fine esegue un "cat svnupdate.log | grep "^C "" per mostrarti eventuali conflitti?

Con gli strumenti grafici che utilizzo (TortoiseSVN e Netbeans), alla fine fanno un rumore sgradevole e ti presentano una finestra di dialogo di selezione dell'unione per gestirli.Non conosco un equivalente con tanta potenza per gli strumenti da riga di comando.

@jsight:TortoiseSVN è fantastico, ma sviluppo principalmente in un ambiente *NIX, senza X.Quindi di solito utilizzo (limitato a) la riga di comando.

Per quanto riguarda il tuo suggerimento sullo script, è quello su cui sto lavorando ora, motivo per cui sono seccato di non poter semplicemente controllare $?.In questo momento sto saltando "l'output su un file" e utilizzando una pipe, ma per il resto è esattamente quello che descrivi.

Potresti usare il parametro --diff3-cmd per specificare quale strumento di fusione usare (solitamente diff3 da diffutils).

potresti anche utilizzare uno script di pre-commit per cercare indicatori di conflitto nei file e impedire il commit quando sono presenti.

La subversione 1.5 (recentemente rilasciata) aggiunge la possibilità di specificare cosa succede durante un conflitto di aggiornamento, con l'argomento "--accept".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top