L'inconveniente di unire in SVN prima della v1.5 è ormai obsoleto quando la mancanza di metadati non è più il caso?

11

Sto iniziando con SVN e così tante fonti dicono che l'unione è molto difficile in SVN rispetto agli strumenti DVCS. Le domande più recenti che ho trovato qui su SE sono del 2012.

A volte c'è una menzione che il motivo è che SVN prima della v1.5 non aveva i metadati, ma ora SVN è alla versione 1.8.9.

Dato che SVN ora è molto più maturo di v1.5, e soprattutto il fatto che non abbiamo usato SVN 1.5 quindi non soffriamo della menzionata mancanza di metadati - c'è ancora molta validità in quegli argomenti contro SVN?

Capisco che DVCS abbia un approccio completamente diverso che è spesso più desiderabile, ma per coloro che "devono" necessariamente SVN per qualsiasi motivo, la fusione non è più "infernale", vero?

    
posta Torben Gundtofte-Bruun 08.08.2014 - 14:46
fonte

2 risposte

15

Funziona benissimo se ti attengono ai casi semplici , ma ce ne sono alcuni complessi che non lo fanno.

Le limitazioni a cui posso pensare:

  • Può trovare l'antenato più recente solo se si trova su uno dei rami coinvolti. Quindi se crei branches/this e branches/that entrambi da trunk e poi provi a unire branches/this a branches/that , non saprà cosa fare. Ciò significa che puoi unire solo il ramo ao da suo padre. Potresti incorrere in questo se inizi due rami di funzionalità e successivamente ti rendi conto che le funzionalità sono interdipendenti e devi combinarle.

  • Sebbene affermi di poter rinominare i nomi, unire i rami quando i file sono stati spostati su un lato e modificati sull'altro non sempre trova i file giusti da unire e aggiustarlo manualmente è un po 'noioso in quanto non lascia le informazioni necessarie ovunque a portata di mano.

  • I file aggiunti a volte causano conflitti spuri a seguito di unioni.

  • Dato che subversion non ha un concetto separato di branch, puoi unire solo una sottostruttura di un progetto e questo può portare a un gran caos abbastanza velocemente. Si raccomanda vivamente di avere cura di unire sempre rami completi. Sfortunatamente per qualche motivo a volte le proprietà di informazioni di unione appaiono nelle sottodirectory anche se sembrano superflue e l'unione è stata eseguita correttamente sull'intero ramo.

  • Ultimo ma non meno importante, è lento . Le fusioni su un progetto di qualsiasi dimensione seria richiedono spesso minuti in cui la maggior parte dei DVCS può eseguirlo sotto un secondo.

risposta data 08.08.2014 - 23:54
fonte
1

Dalla mia esperienza, la fusione in SVN è stata "risolta" nella versione 1.6. Lavoro sia su Mercurial che su SVN e, a partire dalla versione 1.6 di SVN, la fusione sembra avere la stessa quantità di lavoro su entrambe le piattaforme. L'unica eccezione potrebbe essere la necessità di ricordare di fornire l'opzione --reintegrate quando si esegue l'unione da un ramo nel tronco usando SVN.

Questa è solo la mia esperienza operativa. Non so nulla degli interni di SVN.

    
risposta data 08.08.2014 - 23:52
fonte

Leggi altre domande sui tag