Wenn Sie eine Niederlassung in TortoiseSVN erstellen, was bedeuten "Head", "Arbeitskopie" und "spezifische" Revisionen?

8

Ein neuer Benutzer von Tortoise SVN, der sich um die Quellcodeverwaltung kümmert.

Ich habe eine Visual Studio-Lösung, die aus fünf WebApplication-Projekten besteht. Ich muss einen herausnehmen und in einer Filiale darüber arbeiten. Wenn ich versuche, es zu verzweigen, fragt es mich nach einer dieser Optionen

  • Hauptversion im Repository
  • spezifische Revision im Repository
  • Überarbeitung der Arbeitskopie

Alternativtext http://img25.imageshack.us/img25/3747/svnfile.jpg

Problem 1: Was genau sind das? Ich bin verwirrt mit "Kopfrevision" und "Arbeitskopie", wie sie mir gleich erscheinen.

alt text http://img34.imageshack.us/img34/8079/svn2.jpg

BEARBEITEN:

Problem 2: Warum können wir nicht von der Repository-GUI selbst abzweigen (wäre die Kopfrevision)?

Problem 3: Können Sie die Schritte auflisten, die zum Verzweigen aus einem Verzeichnis benötigt werden?

    
Asad Butt 17.01.2010, 12:31
quelle

4 Antworten

14

Die Hauptversion im Repository ist die letzte Revision, die an die Quellcodeverwaltung übergeben wurde. Ihre Arbeitskopie Revision ist die Revision, die von Ihrem aktuellen Baum widergespiegelt wird. Da Personen während der Arbeit Dinge begangen haben könnten, entspricht Ihre Revision der Arbeitskopie möglicherweise nicht unbedingt der HEAD Revision.

Wenn Sie verzweigen, werden Sie aufgefordert, von einem bestimmten Punkt abzuzweigen . TSVN fragt Sie, was Sie möchten, dass dieser Punkt ist, und Sie haben eine von drei Möglichkeiten:

  • wo Sie gerade arbeiten (Ihre Arbeitskopieversion)
  • wo sich das Repository gerade befindet (Repository HEAD revision)
  • eine andere willkürliche Überarbeitung (spezifische Revision)

Update: Das OP hat einige zusätzliche Fragen hinzugefügt, die nicht Teil des Originals waren. Daher habe ich meine Antwort geändert.

  

Warum können wir nicht von der Repository-GUI selbst abzweigen (wäre die Kopfrevision)?

Die TortoiseSVN-GUI repräsentiert nicht die vollständige Gruppe von Operationen, die mit Subversion möglich ist. Subversion ist eigentlich nur ein Satz von Befehlszeilenwerkzeugen und TSVN ist ein Wrapper um sie herum. Wenn Sie einen neuen Zweig vollständig auf dem Server erstellen möchten, verwenden Sie einfach:

%Vor%
  

Können Sie die Schritte auflisten, die zum Verzweigen aus einem Verzeichnis benötigt werden?

Das TortoiseSVN-Handbuch ist ziemlich explizit, wie man das macht. Siehe hier .

    
John Feminella 17.01.2010, 12:37
quelle
3
  • HEAD Revision bedeutet das Neueste Revision im Repository.
  • spezifische Revision im Repository: Hier können Sie eine beliebige Revision eingeben. TortoiseSVN fügt automatisch die Version ein, in der sich Ihre Arbeitskopie befindet. Aber Sie können das natürlich ändern (vielleicht möchten Sie eine Revision markieren, die Sie vor einer Woche erstellt haben). Die TortoiseSVN-Version, die automatisch ausgefüllt wird, ist die Version, in der sich Ihr Repository befindet (z. B. HEAD), insbesondere wenn Sie häufig aktualisieren. Aber: Während Sie sich darauf vorbereiten, den Zweig / das Tag auszuführen, könnte jemand anderes etwas festlegen, das Sie möglicherweise nicht in den Zweig / Tag aufnehmen möchten. Deshalb ist es sicherer, diese Revision anstelle von HEAD zu verwenden. Wenn Sie sich jedoch sicher sind, dass zu diesem Zeitpunkt noch niemand etwas unternimmt, können Sie HEAD hier verwenden.
  • Arbeitskopie: Verwenden Sie diese Option, wenn Ihre Arbeitskopie über lokale Änderungen verfügt, die in der Verzweigung / dem Tag enthalten sein sollen. Diese Option ist nützlich, wenn Sie Ihre Arbeit in einer Verzweigung speichern möchten (auch bekannt als "Regalsystem").
Stefan 17.01.2010 13:01
quelle
2

Ihre Arbeitskopie kann eine andere Revision als Hauptversion des Repositorys verwenden. I.e. Sie checken eine bestimmte Revision aus, die nicht die neueste ist, oder Leute, die in das Repository gehen, während Sie mit Ihrer Arbeitskopie beschäftigt sind.

    
Alexander Gessler 17.01.2010 12:38
quelle
2

Um Frage Nr. 2 zu beantworten, können Sie einen Zweig von der TortoiseSVN-GUI erstellen. Verwenden Sie den Repository-Browser und suchen Sie den Pfad, von dem Sie verzweigen möchten, klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie "Kopieren nach ...". Die von Ihnen eingegebene URL ist die URL, die Sie zu verzweigen möchten (normalerweise im Ordner "branches").

Dadurch wird eine Verzweigung remote im Repository erstellt, ohne dass Sie zuerst eine Arbeitskopie erstellen müssen. Der Grund dafür, dass die Operation "Kopieren" anstelle von "Verzweigen" genannt wird, ist, dass eine Verzweigungsoperation in svn wirklich dieselbe Kopie erstellt (es ist keine eindeutige Operation).

    
Ken Liu 24.01.2010 03:12
quelle