Un commit in due rami: cosa è successo?

3

Lavoro su un progetto usando maven e svn.

Oggi dopo un svn update , il build di maven non funzionava su svn trunk . Quando ho guardato nei registri svn, ho visto qualcosa di strano: un commit che riguarda due rami. Pochi file sono stati commessi sul ramo foo - il risultato atteso di questo commit - e uno è stato eseguito su trunk (il motivo del fallimento di Maven), tutto in un unico commit.

Questo commit è stato eseguito su Eclipse usando un plugin SVN (non so quale). Le fusioni tra questi due rami erano già state fatte pochi giorni fa e lo sviluppatore aveva una copia di lavoro aggiornata.

Questo è stato risolto facilmente ripristinando il file delittuoso, ma non capisco cosa sia successo e mi piacerebbe capirlo. Questo è il risultato di un conflitto non risolto o di un file non attivato non impegnato da un ramo commutato? Su svn, non è una copia funzionante "collegata" a un ramo?

    
posta PierreF 04.03.2015 - 22:54
fonte

2 risposte

1

Come notato in precedenza nei commenti, un commit che interessa un ramo e un tronco allo stesso tempo è tecnicamente possibile, quindi sembra più PEBCAK .

Posso vedere due ragioni.

  1. La persona ha controllato sia il tronco che il ramo e la persona ha erroneamente cambiato il bagagliaio pensando che stesse lavorando al ramo. Succede.

  2. C'è un collegamento simbolico che punta ai file nel trunk, quindi cambiare il ramo ha effettivamente influenzato anche il tronco.

risposta data 05.03.2015 - 15:44
fonte
3

Condividi qualcosa di interessante a riguardo.

Personalmente mi sono imbattuto personalmente in questo, e al momento credevo di aver commesso una sola volta per un ramo, ma ho cambiato i file in due rami.

Ho passato molto tempo a capire perché, ho l'abitudine di riutilizzare la stessa cartella locale per diversi rami, continuando a usare svn switch. Ma accendo sempre il livello root della cartella, e non cambio mai singoli file o directory come @Brandon menzionati nel commento.

Ho capito perché, ancora una volta, quando ho provato a passare quella cartella su un ramo diverso, l'interruttore era più veloce e ha cambiato parte delle cartelle piuttosto che tutte, ho notato la differenza e ho fermato l'interruttore, quindi ho controllato su sottocartelle e trovato alcuni di quelli che puntano a uno nuovo e alcuni che puntano a quello vecchio. E inoltre non ha sollevato alcun problema. Se faccio di nuovo l'interruttore, cambierebbe il resto.

La mia ipotesi migliore è stata quando ho scambiato un blocco di rete, ma non ho notato che non è stato eseguito. Che ha portato a commettere in entrambe le filiali mentre ho cambiato un sacco di file.

Non ho mai provato a ricrearlo di nuovo dopo, e ho il sospetto che il singolo problema che ho incontrato potrebbe essere sparito dato che la struttura della cartella svn locale era come se ogni cartella avesse la sua cartella ".svn", ora con il nuovo svn la struttura della cartella funzionante, ".svn" esiste solo in root quindi suppongo che non possa facilmente succedere di nuovo.

    
risposta data 29.10.2015 - 01:02
fonte

Leggi altre domande sui tag