Domanda

TortoiseSVN può aiutare con diversi tipi di conflitti d'albero utilizzando Modifica Conflitto della finestra.

Il problema è che in caso di " ... su di merge " tipi di conflitto TortoiseSVN non può indovinare quali file devono essere uniti.

Per esempio, (caso: locale mancanti, entrante eliminazione su update )

  • sviluppatore che lavora su modifica tronco di un file foo.c e commit al repository.
  • I lavorare su file di ramo movimento foo.c a bar.c e commit al repository.

Una fusione di cambiamenti sviluppatore di A a mio ramo di lavoro risultati di copia in un conflitto albero:

  • bar.c è già nella mia copia di lavoro con lo status di 'normale'
  • foo.c è contrassegnato come mancante con un conflitto albero

Nella maggior parte dei casi ho bisogno di cambiamenti merge Developer A alla foo.c nel Bar.C. rinominato

Ma come posso farlo?

File foo.c con i cambiamenti dello sviluppatore di A non presenti nel mio ramo WC.

Il TortoiseSVN Aiuto dice “ Si noti che se si copia il file mancante dal repository e quindi contrassegnare come deliberato, la copia verrà rimossa. Bisogna risolvere prima il conflitto.

Quindi, se ho bisogno di chechout tronco per avere accesso al fascicolo foo.c per unione? C'è approccio più semplice per risolvere questo problema?

Il problema (come TortoiseSVN può risolvere i conflitti d'albero) è molto critica per me e per i nostri sviluppatori.

Mi può aiutare?

È stato utile?

Soluzione

È possibile utilizzare un "unire due URL" per i cambiamenti di unione da Foo.c su 'tronco' nella vostra Bar.c ramificata e rinominato.

cd branch/B
svn merge http://www/svn/svnroot/branches/B/Bar.c http://www/svn/trunk/Foo.c Bar.c

Mentre ramo / B è una copia di lavoro.

Per rimuovere definitivamente lo sviluppatore conflitto A e B dovrebbero concordare lo stesso nome. Utilizzo di file differenti per lo stesso codice potrebbe non essere desiderabile.

Modifica Guardando a come 'altri' VCS avvicinano questo problema, vorrei citazione dal comma 'Rinominare i file e la fusione modifiche' :

  

Se modifico un file e si rinomina   con un nuovo nome, e poi ci fondiamo la nostra   rispettivi cambiamenti, le mie modifiche   per il file con il suo nome originale   sarà propagato nel file sotto   il nuovo nome. (Questo è qualcosa che   potrebbe aspettare di “semplicemente lavoro”, ma non   tutti i sistemi di controllo di revisione in realtà   fare questo.)

Forse un motivo per dare Mercurial una prova.

Altri suggerimenti

Mi piace la soluzione di zellus. Si potrebbe anche unire lo spostamento del file nel ramo, e quindi eseguire di nuovo l'unione per il tronco.

Quello che faccio quando si uniscono grossi rami, è il tronco si fondono nel primo ramo, risolvere tutti i conflitti (compresi i conflitti d'albero), quindi unire la schiena al tronco risultato. Ciò mantiene il tronco più stabile più a lungo durante il periodo di unione, anche.

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