Bei der Arbeit habe ich gerade begonnen, Subversion mit AnkhSVN anstelle von Visual Source Safe zu verwenden. Ich habe es geschafft, es gut genug zu integrieren, aber es scheint nicht das Gleiche zu sein. Mit VSS würde folgendes passieren:
Ein Benutzer checkt eine Datei aus, indem er mit der rechten Maustaste klickt und "auschecken" auswählt oder 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ösungen.
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 mit dem Namen "Dateien bei Änderung automatisch sperren ...", aber selbst wenn ich diese Option aktiviere, wenn ich eine Datei bearbeite, wird sie niemals automatisch gesperrt. Selbst wenn diese Option funktioniert, würden die anderen Benutzer die Sperre erst sehen, wenn sie die Datei festgeschrieben haben. Sie würden keinen Fehler erhalten, wenn sie versuchten, sie wie in Visual Source Safe zu bearbeiten.
Grundsätzlich: Kann das Verhalten von Visual Source Safe mit Subversion und AnkhSVN dupliziert werden?
Der Punkt der Verwendung von Subversion über Quellsafe ist, dass Sie nicht eine exklusive Sperre haben und viele Leute an der gleichen Datei arbeiten können.
Sie verlieren eine Menge 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 diese SO Frage und Antworten für ein bisschen einer Diskussion zu den Themen ( Revision control locking: Is the jury still out?
).
Das Agenten-SVN ist ein MS-SCCI-Plugin (genau wie VSS) für Subversion und integriert sich so wie VSS in Visual Studio .
Es hat auch eine Option Lock on check out und mit dieser Funktion fühlt es sich viel wie VSS an.
Sie müssen svn:needs-lock
subversion-Eigenschaften 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 wird Sie auffordern, die Datei zu sperren (wie beim Auschecken in VSS), wenn Sie versuchen, sie 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 die Unterschiede zwischen einem Lock-Modify-Unlock und einem Copy-Modify -merge und die svn : needs-lock Verhalten wird ebenfalls beschrieben
Tags und Links visual-studio svn ankhsvn visual-sourcesafe