[svn] Perché sto ottenendo conflitti tra alberi in Subversion?



4 Answers

Subversion 1.6 ha aggiunto Tree Conflicts per coprire i conflitti a livello di directory. Un buon esempio potrebbe essere quando si elimina localmente un file, quindi un aggiornamento tenta di portare un cambiamento di testo su quel file. Un altro è quando si ha una sovversione Rinomina di un file che si sta modificando poiché si tratta di un'azione Aggiungi / Elimina.

Il blog di Subversion di CollabNet ha un grande articolo sui Conflitti degli alberi .

Question

Avevo un ramo di funzionalità del mio baule e univo periodicamente le modifiche dal mio bagagliaio al mio ramo e tutto funzionava perfettamente. Oggi sono andato a unire il ramo di nuovo nel tronco e tutti i file che sono stati aggiunti al mio baule dopo la creazione del mio ramo sono stati contrassegnati come "conflitto tra alberi". C'è un modo per evitarlo in futuro?

Non penso che questi siano correttamente segnalati.




Non so se questo ti sta succedendo, ma a volte scelgo la directory sbagliata per unire e ottengo questo errore anche se tutti i file appaiono completamente a posto.

Esempio:

Unisci / svn / Progetto / rami / qualche ramo / Sorgenti in / svn / Progetto / tronco ---> Conflitto dell'albero

Unisci / svn / Progetto / rami / qualche ramo a / svn / Progetto / tronco ---> OK

Questo potrebbe essere uno sbaglio stupido, ma non è sempre ovvio perché pensi che sia qualcosa di più complicato.




Mi sono imbattuto in questo problema anche oggi, anche se il mio particolare problema probabilmente non è legato al tuo. Dopo aver esaminato l'elenco dei file, mi sono reso conto di ciò che avevo fatto: avevo temporaneamente utilizzato un file in un assembly da un altro assembly. Ho apportato molte modifiche e non volevo rendere orfana la cronologia SVN, quindi nel mio ramo avevo spostato il file dalla cartella dell'altro assieme. Questo non è tracciato da SVN, quindi sembra che il file sia stato cancellato e quindi aggiunto nuovamente. Questo finisce per causare un conflitto tra alberi.

Ho risolto il problema spostando il file indietro, eseguendo il commit e quindi unendo il mio ramo. Quindi ho spostato il file in seguito. :) Sembrava fare il trucco.




Questo può essere causato dal non utilizzare tutti gli stessi client di versione.

L'utilizzo di un client versione 1.5 e di un client versione 1.6 verso lo stesso repository può creare questo tipo di problema. (Ero appena morso da solo.)




Ho avuto questo stesso problema e l'ho risolto rifacendo l'unione con queste istruzioni . Fondamentalmente, utilizza la "unione di 2 URL" di SVN per aggiornare il trunk allo stato corrente del ramo, senza preoccuparsi troppo della storia e dei conflitti tra alberi. Mi ha salvato dal fissare manualmente 114 conflitti tra alberi.

Non sono sicuro che preservi la storia come vorrebbe, ma ne valeva la pena nel mio caso.






Related