2013-11-15 11 views
11

Ho questo scenario:Come gestire il conflitto tra alberi durante l'unione con TortoiseSVN, in caso di una cartella eliminata?

  • una cartella con il contenuto viene eliminato dalla copia locale del nostro ramo. Le modifiche sono state commesse nel ramo SVN. (Abbiamo ancora questa cartella in Trunk)
  • Ora voglio unire tutto da Branch al tronco
  • vado alla copia locale del tronco, Merge da SVN, e ho scelto la nostra filiale (in un primo momento la fusione delle modifiche da SVN-Branch a LocalCopy-Of-Trunk)
  • Albero Conflitto appare
  • Chiudo la finestra tortoiseSVN e vai alla struttura delle cartelle in explorer.
  • La cartella è lì (ma contrassegnato come conflittuale in SVN)
  • io eliminare la struttura delle cartelle manualmente (Poiché si tratta voglio voglio solo)
  • vado a TortoiseSVN click destro-> TortoiseSVN-> Risolto, ci Vedo il conflitto, ho contrassegnare come risolto e fare clic su OK.

È questo il modo giusto per farlo?

Al molto questo momento, ogni volta che voglio fare qlc di più con SVN nella stessa radice, vedo questo errore:

Error: Merge tracking not allowed with missing subtrees; tryo restoring items

quando voglio impegnare tutte le cose che ho localmente fuse (da SVNBranch to LocalCopyOfTrunk) su Trunk, vedo la cartella problematica e il suo contenuto con stato mancante. Ho contrassegnare tutti le cose che voglio commettere (senza quelle cose mancanti), fare clic su OK, e ottenere questo avvertimento:

Non-recursive commit of moved/renamed folders (This commit is not recursive, and there are moved/renamed folders selected for commit. Such moves/renames are always performed recursively in the repository. Do you want to commit anyway?)

quando apro la cartella principale della radice problematica, TortoiseSVN-> Ripristina, e li Revert indietro, SVN funziona di nuovo senza problemi. Ma come li cancello? Qual è il modo migliore per risolvere questo conflitto tra alberi?

risposta

3

Is this the right way to do it?

No.

Dopo aver eseguito la stampa, TortoiseSVN mostrerà una finestra con tutti i conflitti albero segnati in rosso. Facendo doppio clic su di essi verrà visualizzata una finestra di dialogo con le opzioni. Una di queste opzioni è Rimuovere la cartella locale. Questo clic fa TortoiseSVN rimuovere la cartella per te e contrassegnare il conflitto come risolto.

+0

Subversion non consente di eseguire un'unione finché il conflitto non viene risolto. Come lo risolvi in ​​modo da poter unire? – Suncat2000

+0

TortoiseSVN non mostra questa opzione, almeno non quando il ramo locale ha modificato i file all'interno della cartella eliminata. Le opzioni disponibili sono "Accetta stato copia lavoro corrente (contrassegna come risolto)" e "Risolvi dopo". Non è possibile eliminare il file e contrassegnarlo come risolto. Molto intuitivo. Devi andare su Explorer e fare il lavoro da solo, quindi contrassegnare risolto. – DannyMeister

Problemi correlati