2010-03-13 3 views
8

Bei der Arbeit habe ich gerade angefangen mit Subversion mit AnkhSVN anstelle von Visual Source Safe. Ich habe es gut genug integriert, aber es scheint nicht das Gleiche zu sein. Mit VSS würde folgendes passieren:Arbeiten mit Subversion die gleiche wie mit Visual Source Safe in Visual Studio

Ein Benutzer checkt eine Datei aus, indem er mit der rechten Maustaste klickt und "Auschecken" auswählt oder indem er sie bearbeitet. Wenn ein anderer Benutzer versucht hat, dieselbe Datei zu ändern, wird ein Fehler angezeigt. Keine 2 Benutzer könnten dieselbe Datei gleichzeitig bearbeiten. Keine Phantasieverschmelzung. Keine Konflikte und keine Konfliktlösung.

Ich verstehe, dass die Philosophie hinter Subversion anders ist, aber gibt es irgendeine Möglichkeit, dass dieses oben beschriebene Verhalten mit Subversion dupliziert werden könnte?

Es gibt eine Option in AnkhSVN namens "Automatisches Sperren von Dateien bei Änderung ...", aber selbst wenn ich diese Option aktiviere, wenn ich eine Datei bearbeite, wird sie nie automatisch gesperrt. Auch wenn diese Option funktionierte, konnten die anderen Benutzer die Sperre erst sehen, wenn sie die Datei festgeschrieben hatten. Sie würden keinen Fehler erhalten, wenn sie versuchten, sie wie in Visual Source Safe zu bearbeiten.

Also im Grunde: Kann das Verhalten von Visual Source Safe mit Subversion und AnkhSVN dupliziert werden?

+2

Warum möchten Sie? Subversion wurde nicht für diese Art von Prozess entwickelt. Wenn Sie die VSS-Arbeitsweise bevorzugen, warum nicht VSS? – Thomas

+0

Nun, ich kann nicht. Subversion wurde gewählt und ich hatte kein Mitspracherecht. – Para

+0

@Thomas: Ich würde meinem Quellcode nicht mehr zu VSS vertrauen. Ich habe zu viele defekte Datenbanken gesehen, und das Zusammenführen von Änderungen zwischen Zweigen ist wirklich unmöglich.SVN hat eine Möglichkeit entwickelt, nicht-mergable Dateien, die gesperrt werden müssen, zu kommunizieren, und AnkhSVN implementiert dies auf eine Weise, die übereinstimmt, was VSS sehr genau machen würde. Ich versuche nicht, hier in die SVN vs VSS Diskussion zu kommen :) –

Antwort

7

Der Punkt der Verwendung von Subversion über Source Safe ist, dass Sie nicht exklusive Sperre haben und viele Menschen können auf der gleichen Datei arbeiten.

Sie verlieren ziemlich viele der Vorteile von SVN, wenn Sie es mit exklusiven Sperren für Dateien verwenden.

Die Idee ist, dass Sie Konflikte während der Zusammenführung von Code beheben.

Siehe this SO Frage und Antworten für ein bisschen eine Diskussion über die Probleme (Revision control locking: Is the jury still out?).

+1

+1 für die gesamte Wahrheit. –

2

Sie müssen die Subversion-Eigenschaften svn:needs-lock für die Dateien festlegen, die explizit gesperrt werden sollen. Es wird nur für Dateien empfohlen, die nicht einfach zusammengeführt werden können, wie (meistens) binäre Dateien und nicht für Text/Code-Dateien. Normalerweise verschmelzen Text-/Code-Dateien automatisch sehr gut, und wenn sie nicht funktionieren, sind Konflikte normalerweise einfach zu lösen.

AnkhSVN fordert Sie auf, die Datei zu sperren (wie beim Auschecken in VSS), wenn Sie versuchen, die Datei zu bearbeiten, wenn die Eigenschaft svn:needs-lock festgelegt ist. Wenn Sie die Funktion "Dateien automatisch sperren" aktivieren, wird der Sperrdialog unterdrückt, und Sie sperren die Datei, ohne dass ein Dialogfeld angezeigt wird.

Svnbook erklärt the differences between a lock-modify-unlock and copy-modify-merge und das svn:needs-lock Verhalten wird auch beschrieben,

6

Die Agent SVN ist ein MS-SCCI Plugin (wie VSS) für Subversion, so dass es mit Visual Studio wie VSS integriert.

Es hat auch eine Sperre beim Auschecken Option und mit dieser Funktion auf es fühlt sich viel wie VSS.

Verwandte Themen