Recentemente mi sono imbattuto in un problema particolarmente problematico riguardante il commit del risultato di una fusione in sovversione. Il nostro server Subversion è @ 1.5.0 e il mio client TortoiseSVN è ora @ 1.6.1.Come si corregge "Conferma non riuscita. Il file xxx non è aggiornato. Percorso xxx non trovato."
Sto cercando di unire un ramo di funzionalità nel mio bagagliaio. L'unione sembra funzionare bene; tuttavia, il commit non riesce con il seguente messaggio di errore.
Commit failed (details follow):
File
'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as'
is out of date
'/svn/ibis/!svn/wrk/531d459d-80fa-ea46-bfb4-940d79ee6d2e/visualization/trunk/source/flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as'
path not found
You have to update your working copy first.
Il mio baule di lavoro è aggiornato. Ne ho persino verificato uno nuovo in una cartella diversa per assicurarmi che non ci fosse alcun cruft locale a fare i conti con l'unione. Ho fatto qualche ricerca in più su questo e penso che parte del problema sia l'errore dell'utente. Penso che i nostri problemi siano:
- Abbiamo avuto alcuni sviluppatori che hanno lavorato con un client di sovversione prima di 1.5 e alcuni dopo. Credo che questo abbia il potenziale per corrompere le informazioni di fusione.
- In altri rami abbiamo eseguito unioni parziali. Cioè, non abbiamo sempre eseguito fusioni nella radice del ramo. Questo per facilitare l'aggiornamento degli sforzi di Flex e .NET all'interno dello stesso ramo.
- Abbiamo eseguito fusioni cicliche (riflessive) sul nostro ramo. Questo è stato fatto perché avevamo più filiali parallele e volevamo aggiornare periodicamente il nostro ramo con l'ultimo codice nel trunk.
Tutte queste cose sono esplicitamente sconsigliate dal libro/squadra di Subversion. Abbiamo imparato la lezione e ora conosciamo le migliori pratiche. Tuttavia, per prima cosa dobbiamo unire e impegnare la nostra ultima filiale.
Qual è il modo migliore per correggere i problemi che stiamo incontrando?
Cancellare tutte le informazioni di unione nel bagagliaio e nel ramo sarebbe una soluzione praticabile? No. Ho fatto questo ma non risolve l'errore che sto ottenendo sopra.
Avrei dovuto farlo anch'io, tuttavia, dato che ciò è accaduto durante un periodo di crisi, ho esportato erroneamente il mio ramo in tronco e ho commesso i cambiamenti, perdendo così la cronologia. Fortunatamente, non ho riscontrato questo problema da allora. –
Penso che la risposta di @ simon-d sotto sia la vera soluzione. Questo è più simile a una soluzione alternativa :) –