2011-01-17 22 views
4

Ich programmiere in Visual Studio 2010, mit TortiseSVN und VisualSVN als meine Client SVN-Repositories zu verbinden.Ärger mit SVN und Dateinamen ‚Veränderungen‘

Ich habe ein bisschen ein häufiges Problem mit dem ganzen SVN-Ding im Allgemeinen. Eine Sache, die immer wieder auftaucht ist, dass, wenn ich Änderungen an Dateien - nämlich Dateinamen, oder verschieben Sie sie in neue Ordner, etc. Ich am Ende alle Arten von Konflikten mit dem Repository und es verursacht nur alle Arten von seltsamen Fehler.

Ich verstehe die Bedeutung von Versionskontrolle und Check-in/Check-out-Zugang wie folgt, aber was tun die meisten von Ihnen, um mit dieser Art von Sache zu tun? Ich meine, ich habe versucht, das ganze 'Remove from Subversion' zu machen, meine Datei zu ändern, dann 'Add to Subversion', und es scheint einfach nicht den Job gut zu machen. Dies ist besonders frustrierend, wenn Sie an Webprojekten arbeiten, bei denen sich Dateinamen sehr häufig ändern können, wenn sich ein Projekt entwickelt und vielschichtig wird.

Gibt es Standardmethoden, um mit dieser Art von Sache umzugehen, oder ist es nur einer der Fehler von SVN im Allgemeinen?

Antwort

4

Zuerst muss ich zugeben, dass ich in den letzten Jahren jede Falle betrat, die SVN anbietet. Aber in 99% war es meine Schuld.

Häufige Fehler sind:

  • Umbenennen einer Datei und nur Ändern lowercase.txt zu UPPERCASE.txt (Windows, nur diese Änderung zuerst UPPERCASE1.txt den Namen zu vermeiden und als umbenennen zu UPPERCASE.txt)
  • für den Explorer verwenden Umbenennen/löschen/Verschieben-Operationen (bessere Nutzung Tortoises build-in Methoden
  • Kreuz Merge Konflikte im Zusammenhang mit

und einige mehr kann ich mich nicht erinnern, im Augenblick.

Ich habe noch nicht visualsvn verwendet, aber ich denke, es ist auf Tortoise gebaut. Wenn Sie Visual Studio verwenden, würde ich anchsvn http://ankhsvn.open.collab.net/ empfehlen, das eine großartige Integration in Visual Studio hat und die meisten Fehler fängt, die Sie machen können (alles innerhalb der IDE).

0

Subversion Prozesse Dateinamensänderungen als Lösch- und ein Add, die etwas problematisch sein kann. Es ist nur eine inhärente Einschränkung von Subversion und ist ein Teil davon, warum einige von uns auf die Verwendung verschiedener Versionskontrollsysteme umgestiegen sind.

+0

Ich habe Git angesehen, aber es ist einfach viel zu verwirrend. Ich hatte große Schwierigkeiten, es überhaupt funktionieren zu lassen. Welche anderen Alternativen gibt es? – Ciel

+0

Ich verstehe den Downvote hier nicht wirklich. Ich denke, das war eine vollkommen legitime Antwort auf die Frage, die ich stellte. – Ciel

+0

@Stacey: Ich persönlich benutze Mercurial, aber ich sollte Sie warnen, dass die Verwendung eines Versionskontrollsystems wie Git oder Mercurial über Dinge nur ein bisschen anders denken muss, weil sie eher verteilt als zentralisiert sind. Aber es gibt viele Vorteile, also persönlich, ich denke, es lohnt sich. Eine gute Anleitung zum Einstieg ist Joel Spolsky http: // hginit.com/ –

1

Ein weiterer Tipp: Versuchen Sie nicht, eine ganze Reihe von Dateien UND Verzeichnisse in einem Commit zu verschieben/löschen/umzubenennen. Es gibt mindestens ein paar Bugs in Subversion Server und Client v1.6 (von denen sowohl Ankhsvn als auch Tortoise abhängen), die zumindest deine Arbeitskopie vermasseln. Ein Multiple-Commit-Ansatz wird funktionieren (also zuerst umbenennen, commit, dann einen Ordner verschieben, commit usw.).