2010-03-13 13 views
8

Al lavoro ho appena iniziato a utilizzare Subversion con AnkhSVN invece di Visual Source Safe. Sono riuscito a integrarlo abbastanza bene ma non sembra lo stesso. Utilizzando VSS si verifica quanto segue:Lavorare con Subversion come con Visual Source Safe in Visual Studio

Un utente controlla un file facendo clic con il pulsante destro del mouse e selezionando "check out" o modificandolo. Se un altro utente ha provato a modificare lo stesso file, otterrebbe un errore. Nessun utente 2 può modificare lo stesso file allo stesso tempo. Nessuna fusione di fantasia. Nessun conflitto e nessuna risoluzione di conflitto.

Capisco che la filosofia dietro Subversion è diversa ma esiste un modo in cui questo comportamento descritto sopra potrebbe essere duplicato con Subversion?

C'è un'opzione in AnkhSVN chiamata "Blocca automaticamente i file in caso di modifica ..." ma anche se si attiva questa opzione quando si modifica un file non viene mai automaticamente bloccato. Anche se questa opzione funzionava, gli altri utenti non vedevano il blocco finché non avessero commesso il file. Non avrebbero ricevuto un errore quando hanno provato a modificarlo come farebbero in Visual Source Safe.

Quindi, in sostanza: il comportamento di Visual Source Safe può essere duplicato utilizzando Subversion e AnkhSVN?

+2

Perché vuoi? Subversion non è stato progettato per questo tipo di processo. Se si preferisce il modo di lavorare VSS, perché non utilizzare VSS? – Thomas

+0

Beh, non posso. Subversion è stato scelto e non ho avuto voce in capitolo. – Para

+0

@Thomas: non mi fiderei più del mio codice sorgente su VSS. Ho visto troppi database danneggiati e la fusione delle modifiche tra i rami è davvero impossibile.SVN ha adottato un modo per comunicare file non incorporabili che necessitano di un blocco, e AnkhSVN implementa questo in modo da corrispondere a ciò che VSS farebbe molto da vicino. Non sto cercando di entrare nella discussione SVN vs VSS qui però :) –

risposta

7

Il punto di utilizzo di sovversione rispetto alla fonte sicura è che il non ha blocco esclusivo e molte persone possono lavorare sullo stesso file.

Stai perdendo molti vantaggi di SVN se inizi a utilizzarlo con blocchi esclusivi sui file.

L'idea è di correggere i conflitti durante le unioni di codice.

Vedere this SO domande e risposte per un po 'di una discussione sui problemi (Revision control locking: Is the jury still out?).

+1

+1 per la verità totale. –

2

È necessario impostare le proprietà di sovversione svn:needs-lock sui file che si desidera bloccare esplicitamente. In realtà è consigliato solo per i file che non possono essere facilmente uniti, come (la maggior parte) file binari e non su file di testo/codice. Solitamente i file di testo/codice si fondono in modo automatico e, quando non sono in conflitto, di solito sono facili da risolvere.

AnkhSVN ti chiederà di bloccare il file (come il checkout in VSS) quando tenti di modificarlo quando è impostata la proprietà svn:needs-lock. Se si abilita la funzione "Blocca automaticamente i file", la finestra di dialogo di blocco viene eliminata e si aprirà un blocco sul file senza che venga visualizzata una finestra di dialogo.

Svnbook spiega the differences between a lock-modify-unlock and copy-modify-merge, e il comportamento svn:needs-lock è anche descritta

6

Il Agent SVN è un plugin MS-SCCI (proprio come VSS) per Subversion modo si integra con Visual Studio, proprio come VSS.

Ha anche un Lock on check out opzione e con quella funzione su di esso sembra molto simile a VSS.

Problemi correlati