GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Subversion-Tutorial:10 am häufigsten verwendete SVN-Befehle mit Beispielen

SVN steht für Subversion.

Subversion ist ein freies/Open-Source-Versionskontrollsystem. Subversion verwaltet Dateien und Verzeichnisse im Laufe der Zeit. Ein Dateibaum wird in einem zentralen Repository platziert. Das Repository ähnelt einem gewöhnlichen Dateiserver, außer dass es sich an jede Änderung erinnert, die jemals an Ihren Dateien und Verzeichnissen vorgenommen wurde. Auf diese Weise können Sie ältere Versionen Ihres Codes wiederherstellen oder den Verlauf untersuchen, wie Ihr Code geändert wurde.

Dieser Artikel erklärt einige grundlegende SVN-Befehle mit Beispielen.

SVN-Arbeitskopie

SVN ist ein Repository, das alle unsere versionierten Daten enthält und auch als SVN-Server bezeichnet wird. SVN-Client-Programm, das lokale Spiegelungen von Teilen dieser versionierten Daten verwaltet, die als Arbeitskopie bezeichnet werden. Der SVN-Client kann über Netzwerke auf sein Repository zugreifen. Mehrere Benutzer können gleichzeitig auf das Repository zugreifen.

1. SVN Checkout – Arbeitskopie erstellen

Der Checkout-Befehl wird verwendet, um Quellen aus dem SVN-Repository in die Arbeitskopie herunterzuladen. Wenn Sie auf Dateien vom SVN-Server zugreifen möchten, ist das Auschecken die erste Operation, die Sie ausführen sollten.

SVN checkout erstellt die Arbeitskopie, von der aus Sie Inhalte bearbeiten, löschen oder hinzufügen können. Sie können eine Datei, ein Verzeichnis, einen Stamm oder ein ganzes Projekt auschecken. Zum Auschecken sollten Sie die URL der Komponenten kennen, die Sie auschecken möchten.

Syntax:

$ svn checkout/co URL PATH
  • URL ist die URL der Komponenten zum Auschecken
  • Wenn PATH weggelassen wird, wird der Basisname der URL als Ziel verwendet. Wenn mehrere URLs angegeben werden, wird jede in ein Unterverzeichnis von PATH ausgecheckt, wobei der Name des Unterverzeichnisses der Basisname der URL ist.

Das folgende Beispiel checkt das Verzeichnis in das angegebene Zielverzeichnis aus.

$ svn co https://www.thegeekstuff.com/project/branches/release/migration/data/cfg /home/sasikala/cfg/
A    /home/sasikala/cfg/ftp_user.cfg
A    /home/sasikala/cfg/inventory.cfg
A    /home/sasikala/cfg/email_user.cfg
A    /home/sasikala/cfg/svn-commands
Checked out revision 811.

$ ls /home/sasikala/cfg
.  ..  .svn  email_user.cfg  ftp_user.cfg  inventory.cfg  svn-commands

Wenn Sie einen Checkout durchführen, wird ein verstecktes Verzeichnis mit dem Namen .svn erstellt, das die Repository-Details enthalten wird.

2. SVN Commit – Änderungen im Repository speichern

Wann immer Sie Änderungen an der Arbeitskopie vornehmen, werden diese nicht auf dem SVN-Server wiedergegeben. Um die Änderungen dauerhaft zu machen, müssen Sie einen SVN-Commit durchführen.

Syntax:

$ svn commit -m "log messages"

Erklären Sie, warum Sie die Datei in der Option -m ändern.

Zum Beispiel hat in meiner Arbeitskopie die Datei namens „svn-commands“ den folgenden Inhalt.

$ cat /home/sasikala/cfg/svn-commands
checkout
commit
add
delete
update
status

$ ls -l /home/sasikala/cfg/svn-commands
-rw-r--r--  1 root root 41 Apr 16 11:15 svn-commands

Ich habe eine Änderung in dieser Datei vorgenommen (z. B. diese Datei leer gemacht).

$ ls -l svn-commands
-rw-r--r--  1 root root 0 Apr 16 11:20 svn-commands

Committen Sie nun die Datei, um die Änderungen auf dem Server dauerhaft zu machen.

$ svn commit -m "Making the file empty" svn-commands
Sending        svn-commands
Transmitting file data .
Committed revision 813.

Danach werden die Änderungen immer dann auf dem Server erscheinen, wenn Sie Ihre Arbeitskopie aktualisieren oder auschecken.

3. SVN-Liste – Listet Verzeichniseinträge auf

svn list ist nützlich, wenn Sie den Inhalt des SVN-Repositorys anzeigen möchten, ohne eine Arbeitskopie herunterzuladen.

Syntax:

$ svn list

Das folgende Beispiel listet alle Dateien auf, die unter der angegebenen URL im Repository verfügbar sind, ohne eine Arbeitskopie herunterzuladen. Wenn Sie den Befehl svn list mit der Option –verbose ausführen, werden die folgenden Informationen angezeigt.

  • Revisionsnummer des letzten Commits
  • Autor des letzten Commits
  • Größe (in Bytes)
  • Datum und Uhrzeit des letzten Commit
$ svn list --verbose https://www.thegeekstuff.com/project/branches/release/migration/data/bin
 16 sasikala	28361 	Apr 16 21:11 README.txt
 21 sasikala 	0 	Apr 18 12:22 INSTALL
 22 sasikala		Apr 18 10:17 src/

4. SVN Add – Eine neue Datei zum SVN-Repository hinzufügen

Wenn Sie dem Repository eine neue Datei (oder ein neues Verzeichnis) hinzufügen möchten, müssen Sie den SVN-Befehl add verwenden. Das Repository wird nur dann eine neu hinzugefügte Datei haben, wenn Sie einen SVN-Commit durchführen. Lassen Sie uns nun eine neue Datei namens „thegeekstuff“ zu unserem Repository hinzufügen.

  • Eine Datei in einer lokalen Arbeitskopie erstellen
  • $ ls -l /home/sasikala/cfg/thegeekstuff
    -rw-r--r--  1 sasikala root 8 Apr 16 11:33 thegeekstuff
  • Fügen Sie die Datei zum SVN-Repository hinzu
  • svn add filename fügt die Dateien dem SVN-Repository hinzu.

    $ svn add thegeekstuff
    A         thegeekstuff
  • Committen Sie die hinzugefügte Datei
  • Die hinzugefügte Datei ist erst dann im Repository verfügbar, wenn Sie sie übergeben.

    $ svn commit -m "Adding a file thegeekstuff" thegeekstuff
    Adding         thegeekstuff
    Transmitting file data .
    Committed revision 814.

5. SVN Delete – Entfernen einer Datei aus dem Repository

Der SVN-Löschbefehl löscht ein Element aus der Arbeitskopie (oder dem Repository). Die Datei wird aus dem Repository gelöscht, wenn Sie einen SVN-Commit durchführen.

Syntax:
$ svn delete URL

Lassen Sie uns nun die kürzlich erstellte Datei mit dem Namen „thegeekstuff“ entfernen.

$ svn delete thegeekstuff
D         thegeekstuff

$ svn commit -m "Removing thegeekstuff file" thegeekstuff
Deleting       thegeekstuff
Committed revision 814.

Jetzt können Sie svn list ausführen und prüfen, ob die Datei aus dem Repository gelöscht wurde.

6. SVN Diff – Differenz anzeigen

SVN diff zeigt die Unterschiede zwischen Ihrer Arbeitskopie und der Kopie im SVN-Repository an. Sie können den Unterschied zwischen zwei Revisionen und zwei Pfaden usw. finden,

Syntax:
$ svn diff filename

$ svn -r R1:R2 diff filename

Das obige Beispiel vergleicht Dateiname@R1 und Dateiname@R2.

Nun sieht der Inhalt der Datei thegeekstuff so aus,

$ cat /home/sasikala/cfg/thegeekstuff
testing

Ich habe den Inhalt der Datei thegeekstuff von Testing zu Tester bearbeitet, was unten mit dem Befehl svn diff gezeigt wird.

$ svn diff thegeekstuff
Index: thegeekstuff
===================================================================
--- thegeekstuff   (revision 815)
+++ thegeekstuff   (working copy)
@@ -1 +1 @@
-testing
+tester

7. SVN-Status – Status der Arbeitskopie

Verwenden Sie den Befehl svn status, um den Status der Datei in der Arbeitskopie zu erhalten. Es zeigt an, ob die Arbeitskopie geändert, hinzugefügt/gelöscht oder die Datei nicht unter Revisionskontrolle steht usw.

Syntax:

$ svn status PATH

Das folgende Beispiel zeigt den Status meiner lokalen Arbeitskopie,

$ svn status /home/sasikala/cfg
M    	/home/sasikala/cfg/ftp_user.cfg
M      	/home/sasikala/cfg/geekstuff

„M“ bedeutet, dass das Element geändert wurde. Der Befehl „svn help status“ erklärt verschiedene Spezifizierer, die im Befehl SVN status angezeigt werden.

8. SVN Log – Protokollmeldung anzeigen

Wie wir am Anfang dieses Artikels besprochen haben, merkt sich SVN jede Änderung, die an Ihren Dateien und Verzeichnissen vorgenommen wurde. Um alle in einer Datei oder einem Verzeichnis vorgenommenen Commits zu erfahren, verwenden Sie den Befehl SVN log.

Syntax:

$ svn log PATH

Das Folgende zeigt alle Commits, die an der Datei Geekstuff vorgenommen wurden

$ svn log thegeekstuff
------------------------------------------------------------------------
r815 | sasikala | 2011-04-16 05:14:18 -0700 (Sat, 16 Apr 2011) | 1 line

Adding a file thegeekstuff
------------------------------------------------------------------------

Da wir in der Datei thegeekstuff nur einen Commit gemacht haben, zeigt sie nur eine Log-Meldung mit den Details.

9. SVN Move – Datei oder Verzeichnis umbenennen

Dieser Befehl verschiebt eine Datei von einem Verzeichnis in ein anderes oder benennt eine Datei um. Die Datei wird sofort in Ihre lokale Sandbox verschoben (sowie nach dem Festschreiben in das Repository).

Syntax:
$ svn move src dest

Der folgende Befehl benennt die Datei „thegeekstuff“ auf einen Schlag in „tgs“ um.

$ svn move thegeekstuff tgs
A         tgs
D         thegeekstuff

$ ls
.#  ..  .svn  email_user.cfg  ftp_user.cfg  inventory.cfg  tgs

Jetzt wird die Datei nur in der Arbeitskopie umbenannt, nicht im Repository. Um die Änderungen dauerhaft zu machen, müssen Sie die Änderungen festschreiben.

$ svn commit -m "Renaming thegeekstuff to tgs" tgs
Adding         tgs
Transmitting file data .
Committed revision 816.

10. SVN Update – Aktualisiere die Arbeitskopie.

Der Befehl svn update bringt Änderungen aus dem Projektarchiv in Ihre Arbeitskopie. Wenn keine Revision angegeben ist, wird Ihre Arbeitskopie mit der HEAD-Revision auf den neuesten Stand gebracht. Andernfalls wird die Arbeitskopie mit der im Argument angegebenen Revision synchronisiert.

Aktualisieren Sie Ihre Arbeitskopie immer, bevor Sie mit der Arbeit in Ihrer Arbeitskopie beginnen. Damit alle im Repository verfügbaren Änderungen in Ihrer Arbeitskopie verfügbar sind. d.h. letzte Änderungen.

Syntax:

$ svn update PATH

Falls ein anderer Benutzer eine Datei in der URL https://www.thegeekstuff.com/project/branches/release/migration/data/cfg hinzugefügt/gelöscht hat, enthält Ihre Arbeitskopie diese Dateien standardmäßig nicht, bis Sie Ihre Arbeitsdatei aktualisieren kopieren.

$ svn update
A  new/usercfg
A  new/webcfg
Updated to revision 819.

In der obigen Ausgabe des svn update-Befehls steht A dafür, dass diese Datei zur Arbeitskopie „Hinzugefügt“ wurde.


Linux
  1. Mehr als 10 Linux-VI-Befehle mit Beispielen

  2. vim Tutorial mit Befehlsbeispielen

  3. Die einfachsten Linux-Befehle mit 10 Beispielen

  4. Das ultimative Bash-Array-Tutorial mit 15 Beispielen

  5. lsof :Am häufigsten verwendete Beispiele

Nmap-Befehle mit Beispielen

RPM-Befehle in Linux mit Beispielen

SSH-Befehle in Linux mit Verwendungsbeispielen

Youtube-dl Tutorial mit Beispielen für Anfänger

Das fc Command Tutorial mit Beispielen für Anfänger

Tutorial für Linux-Suchbefehle (mit Beispielen)