Während ich versuche, svn:externals
zu lernen, fällt es mir schwer, die Unterschiede dieser Begriffe zu verstehen. Wie sind sie anders?
Arbeitskopie und checkout
Manchmal ist es sinnvoll, eine Arbeitskopie zu konstruieren, die aus verschiedenen Checkouts besteht. ( Quelle )
Eigenschaft
In Subversion deklarieren Sie externe Definitionen in Gruppen mit der Eigenschaft svn: externals . ( Quelle )
Repository
Dadurch können Zweige und Tags sehr schnell erstellt werden und benötigen fast keinen zusätzlichen Platz im Repository . ( Quelle )
Sie möchten beispielsweise, dass verschiedene Dateien oder Unterverzeichnisse von verschiedenen Speicherorten in einem Repository oder möglicherweise von verschiedenen Repositorys kommen. ( Quelle )
Projekt
Legen Sie die Eigenschaft svn: externals für einen Ordner in Ihrem Projekt fest . ( Quelle )
Ich denke, eine Arbeitskopie besteht aus einer Reihe von Projektdateien, und eine Überprüfung ist eine Arbeitskopie von Projektdateien oder Stammdateien. Die Eigenschaft klingt wie eine Datei, aber es könnte nur eine Definitionsanweisung sein, aber ich bin mir nicht sicher. Ich habe auch Schwierigkeiten, die Unterschiede zwischen Repository und Stamm zu verstehen. Wenn ich sage "Benutzer laden das Repository.", Ist es ähnlich zu sagen "Benutzer laden die Stammdateien."
Entschuldigung, das muss eine sehr einfache englische Frage sein!
Das Repository ist ein logischer Baum, dort ist der Stamm ein Teil dieses Baums
Ich poste einige Beschreibungen, die ich online gefunden habe.
Repository
Das Kernstück des Versionskontrollsystems ist ein Repository, das der zentrale Speicher der Systemdaten ist. Das Repository speichert normalerweise Informationen in Form einer Dateisystemstruktur - einer Hierarchie von Dateien und Verzeichnissen. Eine beliebige Anzahl von Clients stellt eine Verbindung zum Repository her und liest oder schreibt dann in diese Dateien.
Arbeitskopie
Eine Arbeitskopie ist im wahrsten Sinne des Wortes eine lokale Kopie einer bestimmten Version der VCS-verwalteten Daten eines Benutzers, auf der dieser Benutzer frei arbeiten kann. Arbeitskopien erscheinen für andere Software genauso wie jedes andere lokale Verzeichnis voller Dateien, so dass diese Programme nicht "Versionskontrollfähig" sein müssen, um von diesen Daten zu lesen und in sie zu schreiben.
Zur Kasse
... checkout erstellt eine Arbeitskopie, während update Änderungen an einer bestehenden Arbeitskopie abbaut. von karoberts
... ein Checkout enthält die .svn-Verzeichnisse, also ist es eine Arbeitskopie und wird die richtigen Informationen haben, um Commits zurück zu machen (wenn Sie die Erlaubnis haben). von notbenh
Mitsvn checkout können Sie die Versionskontrolle in dem Verzeichnis verwenden, das von Gerald Kaszuba
erstellt wurde
Dies sind wichtige Subversion-Konzepte, die von Anfang an klar sein sollten. Das offizielle Buch Version Control with Subversion hat ein Version Control Basics Kapitel mit einem kurzen Überblick, aber ich werde sie hier mit meinen eigenen Worten erklären:
Es ist die zentrale Datenbank, in der alle wichtigen Daten (einschließlich Dateien und Versionsgeschichte) gespeichert sind.
Sie interagieren nicht direkt mit den Repository-Dateien, genauso wie Sie keine MySQL-Datendateien bearbeiten. Insbesondere kopieren > Sie dort Ihren Quellcode nicht. Stattdessen verwenden Sie einen Subversion-Client, um bestimmte Subversion-Sachen auszuführen. Aus diesem Grund verweisen Sie niemals auf das Repository über seinen Dateisystempfad. Stattdessen verwenden Sie einen URI:
file:///C:/Data/Subversion/foo
svn://svn.example.com/foo
http://svn.example.com/foo
https://svn.example.com/foo
Das URI-Präfix hängt davon ab, welche Tools Sie konfiguriert haben.
Sie haben nur ein Repository für ein bestimmtes Projekt, weil Subversion ein zentralisiertes Versionskontrollsystem ist.
Es ist der lokale Verzeichnisbaum, in dem Sie Ihre Dateien sehen und mit ihnen arbeiten können.
Sie arbeiten mit Ihren Arbeitskopie-Dateien genauso wie vor der Versionskontrolle: Starten Sie Ihren Editor / IDE, nehmen Sie Änderungen vor, kompilieren / ausführen. Der einzige Unterschied besteht darin, dass Ihre Dateien mit einer bestimmten Revision im Repository verknüpft sind. Daher müssen Sie einige zusätzliche Schritte ausführen:
Sie müssen die Arbeitskopie einmal erstellen , damit sie mit dem entsprechenden Repository verknüpft ist. Das nennt man check out .
Sie müssen Ihre Änderungen an das Repository senden, damit sie im gemeinsamen Verlauf gespeichert und für andere verfügbar werden: das heißt commit .
Möglicherweise möchten Sie die Änderungen abrufen, die ein anderer Mitarbeiter vorgenommen hat: update .
Sie verweisen auf Arbeitskopien nach ihrem Dateisystempfad:
C:\MyProjects\Foo\code
Sie können so viele Arbeitskopien haben, wie Sie benötigen, selbst wenn sie auf den gleichen Ort zeigen.
Es ist ein Unterverzeichnis, das eine Kopie Ihres Codes enthält und Sie haben entschieden, dass es Ihre Hauptentwicklungslinie darstellt. Zum Beispiel:
/trunk
Es ist nur eine Konvention (das Verzeichnis ist nicht speziell für Subversion), aber empfohlen und weit verbreitet.
Es ist ein Unterverzeichnis, das eine Kopie Ihres Codes enthält, und Sie haben entschieden, dass es eine Verzweigung in Ihrem Code darstellt (eine nicht abgeschlossene Aufgabe, eine Anpassung, eine alte Version, die Sie noch pflegen ...). Zum Beispiel:
/branches/unicode
Es ist nur eine Konvention (das Verzeichnis ist nicht speziell für Subversion), aber empfohlen und weit verbreitet.
Es ist ein Unterverzeichnis, das eine Kopie Ihres Codes enthält und Sie haben entschieden, dass es eine bestimmte Version darstellt. Du schreibst nie dazu. Zum Beispiel:
/tags/2.0.0-alpha
Es ist nur eine Konvention (das Verzeichnis ist nicht speziell für Subversion), aber empfohlen und weit verbreitet.
Subversion ermöglicht das Speichern zusätzlicher Informationen zu Revisionen, Dateien und Ordnern. Jedes Stück Daten ist eine Eigenschaft. Diese Information ist spezifisch für Subversion und existiert nicht außerhalb, daher benötigen Sie spezielle Werkzeuge um sie zu lesen und zu schreiben.
Dies ist kein Subversion-Begriff . Es ist nur eine übliche Art, sich auf all das zu beziehen, was mit einer bestimmten Arbeit zu tun hat.
Tags und Links svn terminology