2009-06-30 38 views
11

Ogni volta che un problema si presenta come un conflitto di fusione o qualcosa di simile, mi rallenta davvero.Gestione dei conflitti in SVN con Tortoise?

Qualcuno può spiegarmi come risolvere i conflitti con la forza?

Ad esempio, un mio amico ha apportato una modifica a un file nel repository e ha eseguito il commit. Mentre lo faceva, avevo già rinominato quel file e ne ho apportato molte modifiche sulla mia copia di lavoro.

Quando sono andato a commettere, ottengo ovviamente l'errore di conflitto. Il file che ha modificato non esiste più nemmeno sulla mia copia di lavoro. Come posso dire a SVN di smettere semplicemente di piangere sul conflitto e costringerlo ad accettare la mia copia di lavoro (cioè sovrascrivere la revisione della testa con la mia copia di lavoro).

+0

ho trovato un video in cui i conflitti si risolvono con Tortoise SVN è spiegato https://www.youtube.com/watch?v=ZmARaN5eb3U – Zlelik

risposta

0

Il modo migliore per evitare che ciò accada è aggiornare prima di eseguire il commit.

+0

Beh, è ​​accaduto e aggiornamento o di commettere don lavorare fino a quando non viene risolto. – KingNestor

+3

Per aggiornare frequentemente, infatti. –

+0

Possiamo eseguire il rollback del commit come? – KingNestor

5

Ecco come ho fatto:

  1. clic destro sulla cartella Solutions, fare clic su TortoiseSVN -> Mostra registro.
  2. Fare clic con il pulsante destro del mouse sulla revisione che si desidera annullare, selezionare "Ripristina modifiche da questa revisione"
  3. Fare clic con il pulsante destro del mouse sulle cartelle in conflitto, selezionare "Risolto".
  4. Commit la soluzione
  5. Profit
+1

E il tuo amico fa lo stesso con il tuo impegno per correggere la sua copia di lavoro? ;-) Vorrei suggerire di parlare con il tuo amico, commettendo piccole modifiche logiche e aggiornando frequentemente. –

+0

Cosa succede se ho apportato modifiche e commit e l'altro utente ha apportato modifiche e vorrei che la modifica si fondesse con ciò che ho commesso? Sto avendo una piccola battuta d'arresto con quello. – SearchForKnowledge

8

Quando si aggiorna il lavoro copia È possibile fare clic destro nella lista del registro e ha scelto come risolvere il conflitto:

  • determinazione utilizzando un editor/TortoiseMerge (o qualsiasi altro strumento di fusione configurato)
  • risolvere utilizzando "loro", ovvero la versione nel repository
  • risolvere utilizzando "mio", ovvero tu r versione del file.

Questo funziona anche quando l'eliminazione di file correttamente - vale a dire che si necessità per eliminare il file utilizzando svn se si desidera eliminare in realtà dal repository. Se il file è stato rimosso per motivi di praticità, è possibile che lo si desideri a svn revert prima dell'aggiornamento in quanto un file mancante dalla copia di lavoro è anch'esso un file modificato (non sorprendentemente).

Per riassumere: è impossibile dire a svn di "smettere di piangere" e semplicemente sovrascrivere con la tua copia di lavoro. Questa è una buona cosa. È necessario risolvere il conflitto (che potrebbe significare semplicemente sovrascrivere lo stato corrente), contrassegnare i file interessati come risolti (svn resolved) e quindi confermare il risultato.

0

Direi: il modo migliore per evitare che ciò accada è aggiornare prima di ... MODIFICARE il file. Una volta che hai finito con le tue modifiche, le perderai se aggiorni prima di impegnarti!

0

Qui è: Se sei in una vista a riquadri, puoi modificare il file solo nel riquadro a destra (Mine). Per applicare le modifiche apportate nel file di sinistra (Their), fare clic con il pulsante destro del mouse sulle linee modificate e selezionare Menu di scelta rapida → Usa blocco di testo da "loro". Quindi le modifiche dal file di sinistra vengono aggiunte al file giusto.

A volte si desiderano effettivamente entrambi i blocchi di testo e il menu di scelta rapida offre anche Menu di scelta rapida → Usa entrambi i blocchi di testo (questo prima per primo) e Menu contestuale → Usa entrambi i blocchi di testo (quest'ultimo ultimo).

Se ci si trova in una vista a tre riquadri (talvolta denominata vista di unione), è possibile modificare il file solo nella vista in basso (Uniti). Come nella vista a due riquadri, puoi fare clic con il pulsante destro del mouse su linee in conflitto e selezionare Menu di scelta rapida → Usa blocco di testo da "loro" o Menu contestuale → Usa blocco di testo da "mio". Inoltre, se vuoi entrambi i blocchi, puoi selezionare Menu contestuale → Usa blocco di testo da "miniera" prima di "loro" o Menu contestuale → Usa blocco di testo da "loro" prima di "mio". In base al comando selezionato, le modifiche vengono utilizzate nel file unito risultante.

collegamento di riferimento: https://tortoisesvn.net/docs/nightly/TortoiseMerge_en/tmerge-dug-conflicts.html

Problemi correlati