Domanda

Sto valutando le funzionalità di succursale / unione di Subversion e ho deciso di fare un semplice test: ho ramificato un progetto esistente, modificato un commento in un file e poi reintegrato una fusione tramite Tortoise.

Fallito:

  

Comando: reintegrazione unione https: // oscar / svn / Baxtech / ViM / Branches / Test3 in C: \ Inntec \ VS2008 \ Baxtech \ ViM
  Errore: impossibile reintegrare da ' https: // oscar / svn / Baxtech / ViM / Branches / Test3 'ancora:
  Errore: alcune revisioni sono state unite al suo interno e non sono state unite
  Errore: nel target di reintegrazione; uniscili prima, quindi riprova.

Ho cercato su Google per questo, e ho trovato alcuni post che affermano che ciò ha a che fare con mergeinfo che viene creato da rinominazioni e modifiche alla directory nelle vecchie versioni di Tortoise.

Di recente ho eseguito l'aggiornamento dalla versione precedente di Tortoise alla 1.5.5, tuttavia sembra che questo problema sia precedente alla 1.5. * ... E ho modificato solo alcuni commenti in un file. Non ho apportato alcuna modifica ai nomi o alle modifiche alla struttura delle directory.

Quindi, abbiamo lavorato con il trunk per un po 'di tempo (senza alcuna ramificazione), quindi forse il problema esiste lì?

Quindi, se c'è una soluzione per questo, apprezzerei molto l'aiuto. Inoltre, è tipico? Questo è stato davvero un test molto , e purtroppo in questo momento ho un po 'paura di usare Subversion per ramificare.

Subversion: 1.5.4 (tramite VisualSVN Server)
Tartaruga: 1.5.5

Stiamo anche usando Visual Studio 2008.

Grazie!

Brian

È stato utile?

Soluzione

Questo è successo anche a me qualche tempo fa.

Non riesco a ricordare cosa ho fatto esattamente per innescare questo problema, ma posso dire che stavo anche usando una versione pre-1.5 e poi sono passato a 1.5.0.

Le tracce di sovversione si fondono usando una proprietà svn: mergeinfo per directory. Questa proprietà dovrebbe essere presente solo nel percorso principale della copia di lavoro (correggimi se sbaglio). Quando ho visto questo errore, ho notato che le versioni precedenti alla 1.5 creavano mergeinfo espliciti sui file all'interno della copia funzionante, impedendo al rilascio stabile di funzionare correttamente. Come dici nella tua ultima risposta , rimuovendo quelle voci extra di mergeinfo fisse il problema anche per me.

Il mio suggerimento è di provare con un nuovo repository senza commit proveniente dalle versioni beta, e vedere se questo accade di nuovo.

Altri suggerimenti

Il problema (il più delle volte) è quando l'origine di unione ha alcune informazioni di unione della sottostruttura, svn 1.5 esce con il messaggio di errore specifico. Il rimedio per questo, come hai correttamente sottolineato, è rimuovere qualsiasi sottostruttura mergeinfo. Una risposta autorevole dettagliata è disponibile all'indirizzo: http: //blogs.collab. net / subversion / 2008/07 / subversion-merg /

Questo problema ha a che fare con MergeInfo. Non sono sicuro di quale fosse il problema, ma penso di aver eliminato MergeInfo e ora va tutto bene.

Devo imparare un po 'di più sul perché il mio MergeInfo ha avuto un problema e cosa fa realmente. Molto frustrante!

EDIT: è passato un po 'di tempo da quando abbiamo eseguito l'upgrade ora e non ho riscontrato più questo problema.

Ho trovato molto più semplice unire dalla riga di comando.

svn merge -r N:M SOURCE [PATH]

N è la revisione che hai apportato al ramo, M è la revisione che vuoi includere fino a modifiche (o HEAD per corrente). La fonte è il percorso del ramo. Se lo esegui nella directory di lavoro di destinazione, non hai bisogno dell'ultimo parametro.

Un esempio:

//sitting in main trunk
svn merge -r 55:HEAD svn://my.repo.url/branches/my_branch

Questo unirà tutte le modifiche da 55 in poi nel ramo al tronco.

Non riesco a pensare a nessun motivo per cui, non ho mai visto questo errore e uso molto il branching / merging. Un paio di cose che vorrei controllare:

  • Si avvia l'unione dalla copia di lavoro del trunk (clic destro- > SVN- > Merge)?
  • Cosa succede se dici Test unione?
  • Che ne dici di controllare ignora gli antenati?
  • Assicurati che la profondità di fusione sia "Copia di lavoro"

A proposito, quale versione di SVN è il tuo repository?

Ho usato svn per molto tempo e non l'ho mai visto; certo che non ho usato Tortoise così tanto. Alcuni punti da considerare:

  1. Il registro mostra che stai tentando di unire ../ViM/branches/ .. in ../ViM/ . Non hai un ../ViM/trunk/ o il registro stampa solo cose divertenti? Immagino che il tentativo di unire un ramo in qualcosa di diverso dalla base di codice rovinerebbe le cose.

  2. Hai apportato modifiche al trunk dopo aver creato il ramo ma prima di reintegrarlo? In tal caso, assicurati di unire tali modifiche nel ramo prima di provare a fonderle nuovamente nel trunk.

  3. Esegui svn cleanup sul tuo ramo e trunk per assicurarti che qualsiasi attività incompiuta venga ripulita.

  4. Non sono sicuro che potrebbe causare problemi, ma potrebbe essere necessario aggiornare la copia di lavoro del trunk prima di poter reintegrare le modifiche.

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