Domanda

Io lavoro in un ambiente di controllo del codice sorgente misto. Siamo ancora in gran parte su CVS, ma i progetti più recenti troviamo in SVN. Tuttavia, mi sto trovando difficile ottenere il buy-in per lo SVN perché TortoiseSVN non funziona come TortoiseCVS.

La fusione a 3 vie ha un sacco di dissonanza cognitiva e mentre TortoiseCVS sembra ottenere sempre le unioni destra, TortoiseSVN richiede quasi sempre l'aiuto manuale. Anche dopo aver fissato i conflitti, è necessario contrassegnare manualmente il file come ok.

Qualcuno ha qualche consiglio su come ottenere TortoiseSVN lavorare più come TortoiseCVS?

Modifica

Per essere più chiari, io non voglio fare una fusione a tre vie, se possibile, mi piacerebbe fare un modo due fondono come TortoiseCVS fa. So che il file risultante è la stessa in CVS e SVN, ad esempio un file di progetto di Visual Studio ha due versioni differenti. Questo sarà sempre fine a un conflitto in TortoiseSVN e mai in un conflitto in TortoiseCVS.

SVN appare come:

<<<<<<< .mine
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> .r195290

CVS loks come

<<<<<<< SomeFile.cproj
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> 1.121

quindi dovrei essere in grado di ottenere lo stesso tipo di unione. Inoltre, TortoiseSVN ha quasi sempre i conflitti durante l'aggiornamento se due persone lavorano sullo stesso file, anche se si sta lavorando in luoghi diversi, TortoiseCVS non ha questo problema. Presumo TortoiseSVN è essere più conservatore e ti costringe a controllare le TortoiseCVS unione sta assumendo CVS capito bene. Mi chiedevo se lì dove alcune opzioni nascoste da qualche parte nel TortoiseSVN per essere più liberale, e anche per fare un modo due merge invece di una a tre vie.

Oh, e sì che stiamo usando Subversion 1.5 che dispone di unire punti (rami erano fondamentalmente inutile senza questo).

È stato utile?

Soluzione

Date un'occhiata a BeyondCompare e Araxis Merge . Essi offrono istruzioni sulla loro integrazione nella TortoiseSVN come strumenti di fusione / diff personalizzate.

Altri suggerimenti

Il conflitto marcatura non dovrebbe avere nulla a che fare con Tortoise in sé, ma piuttosto SVN vs. CVS. E 'SVN che determina se un file è in conflitto, non è Tortoise. Non posso dire il motivo per cui questo è il caso o che cosa si può fare al riguardo. Probabilmente molto poco. SVN è probabilmente solo più conservatore quando si tratta di unioni accettare. Anche in questo caso, non è positivo circa l'algoritmo che viene utilizzato, ma sembra contrassegnare un file come in conflitto quando le linee modificate sono abbastanza vicini tra loro (e le variazioni sono diverse).

Credo che la TortoiseMerge è abbastanza bello in realtà, quindi spero di spiegare come meglio posso e si potrebbe vedere qualcosa che non sapevi prima. Normalmente hanno 2 lastre side-by-side, e poi un riquadro inferiore. Il riquadro inferiore è il risultato della fusione, con i conflitti segnati in rosso, insieme ad altri pezzi che sono stati già unito con successo. Sulle linee di conflitto, è possibile fare clic destro e scegliere se mantenere le modifiche (come si vede nel riquadro "Mine"), altre variazioni (come si vede nel riquadro "loro"), oppure si può accettare una combinazione di questi .

Infine, posso spiegare perché Salvataggio di una stampa e la marcatura come deliberato sono due fasi distinte. In SVN, marcatura qualcosa come deliberato permette di essere impegnato di nuovo. E 'fondamentalmente un fail-safe che aiuta a impedirti di commettere un file che sono stati presi nello strumento e salvato, ma ancora non hanno finito la modifica / testarlo. Fondamentalmente SVN è distinguere tra salvare qualcosa in uno strumento di unione ed effettivamente risolvere.

La speranza che ha aiutato.

Solo una supposizione selvaggia qui, ma se si sta utilizzando CVSNT sul server questa osservazione potrebbe essere basata sul fatto che CVSNT semplicemente è molto meglio a fusione di SVN, perché ha la nozione di "mergepoints". Questo porta normalmente a molti meno conflitti quando si unisce da / allo stesso ramo più volte.
Non credo che ci sia molto che si può fare su questo, almeno non in modo discreto.

Modifica I correggo. Come di v1.5 SVN ha anche mergepoints. Mi piacerebbe cancellare questa risposta, ma credo che potrebbe ancora essere di qualche utilità a qualcuno usando una vecchia versione di SVN.

Se questo non è quello che stai parlando forse si dovrebbe chiarire la tua domanda un po 'di più. Sei sicuro che si tratta di differenze tra TortoiseSVN e TortoiseCVS e non piuttosto tra CVS (NT?) E SVN?

Credo che la tua domanda è focalizzata su come sostenere meglio la fusione con Subversion su Windows.

Non può essere specificamente quello che a caccia di, ma ho regolarmente usare Emacs sotto le finestre per facilitare la fusione in Subversion.

Emacs + SVN sotto Windows

Una combinazione di EmacsW32 + Cygwin (con svn ) + psvn pacchetto emacs + " built-in" emacs merge utensili funziona bene sotto le finestre. troverete psvn viene fornita di serie in Emacs al giorno d'oggi, e se non è in vostro, è possibile scaricare e installare easiliy e rapidamente.

A causa del supporto integrato nel set di strumenti basati-Emacs, sono circa 5 volte a 10 volte superiori a risolvere fonde rispetto a un tipico collega. Sembrano contenuti utilizzando TortoiseSVN + il loro altro editor preferito e infliggono in questo modo ... ho offerto più volte per istruirli sull'uso e la potenza delle funzionalità di Emacs (una volta che è installato in su, si prende cura di se stesso), ma sembra che preferiscono attenersi ai loro strumenti rudimentali e non investono per aumentare la loro produttività.

SVN è uno strumento potente, e se si sono tenuti a usarlo, si potrebbe anche prendere in considerazione trascorrere del tempo di investire nel fare il lavoro per voi.

David

Uh, forse mi manca il problema. Se TortoiseCVS lo fa "giusto" (come la tua squadra ha bisogno di farlo fare - o si aspetta che questo venga fatto) ... allora perché si vuole scegliere TortoiseSVN

?

Non bisogna confondere il "scopo" di questa tecnologia ... a "servire" il team di sviluppo nel processo di sviluppo.

(sto usando sia al momento di provare TortoiseSVN .. ma non mi piace il tag / metodologia di ramificazione in SVN quanto finora)

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