GNU/Linux >> Znalost Linux >  >> Linux

Kurz Subversion:10 nejpoužívanějších příkazů SVN s příklady

SVN je zkratka pro Subversion.

Subversion je bezplatný/open-source systém pro správu verzí. Subversion spravuje soubory a adresáře v průběhu času. Strom souborů je umístěn do centrálního úložiště. Úložiště je velmi podobné běžnému souborovému serveru, až na to, že si pamatuje všechny změny, které kdy byly provedeny ve vašich souborech a adresářích. To vám umožní obnovit starší verze vašeho kódu nebo prozkoumat historii změn vašeho kódu.

Tento článek vysvětluje některé základní příkazy SVN s příklady.

Pracovní kopie SVN

SVN je úložiště, které obsahuje všechna naše verzovaná data, která se také nazývá SVN server. Klientský program SVN, který spravuje místní odrazy částí těchto verzovaných dat, která se nazývá pracovní kopie. Klient SVN má přístup ke svému úložišti přes sítě. K úložišti může současně přistupovat více uživatelů.

1. SVN Checkout – Vytvořit pracovní kopii

Příkaz Checkout se používá ke stažení zdrojů z úložiště SVN do pracovní kopie. Pokud chcete přistupovat k souborům ze serveru SVN, první operací, kterou byste měli provést, je checkout.

Pokladna SVN vytvoří pracovní kopii, ze které můžete upravovat, mazat nebo přidávat obsah. Můžete rezervovat soubor, adresář, kmen nebo celý projekt. Chcete-li provést platbu, měli byste znát adresy URL komponent, které chcete zakoupit.

Syntax:

$ svn checkout/co URL PATH
  • Adresa URL je adresa URL komponent k nákupu
  • Pokud je PATH vynechán, bude jako cíl použit základní název adresy URL. Je-li uvedeno více adres URL, bude každá vyhrazena do podadresáře PATH, přičemž název podadresáře je základním názvem adresy URL.

Následující příklad prověří adresář do daného cílového adresáře.

$ 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

Když provedete platbu, vytvoří skrytý adresář s názvem .svn, který bude obsahovat podrobnosti o úložišti.

2. SVN Commit – Uložení změn do úložiště

Kdykoli provedete změny v pracovní kopii, neprojeví se to na serveru SVN. Aby byly změny trvalé, musíte provést potvrzení SVN.

Syntax:

$ svn commit -m "log messages"

Vysvětlete, proč měníte soubor ve volbě -m.

Například v mé pracovní kopii má soubor s názvem „svn-commands“ následující obsah.

$ 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

Udělal jsem změnu v tomto souboru (například jsem tento soubor vyprázdnil).

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

Nyní soubor odevzdejte, aby byly změny na serveru trvalé.

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

Poté, kdykoli aktualizujete svou pracovní kopii nebo pokladnu, změny se objeví na serveru.

3. Seznam SVN – Vypisuje položky adresáře

seznam svn je užitečný, když chcete zobrazit obsah úložiště SVN bez stahování pracovní kopie.

Syntax:

$ svn list

V následujícím příkladu jsou uvedeny všechny soubory dostupné na dané adrese URL v úložišti bez stahování pracovní kopie. Když spustíte příkaz svn list s volbou –verbose, zobrazí se následující informace.

  • Číslo revize posledního potvrzení
  • Autor posledního potvrzení
  • Velikost (v bajtech)
  • Datum a čas posledního potvrzení
$ 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. Přidat SVN – Přidá nový soubor do úložiště SVN

Když chcete přidat nový soubor (nebo adresář) do úložiště, musíte použít příkaz SVN add. Úložiště bude mít nově přidaný soubor, pouze když provedete odevzdání SVN. Nyní přidejte nový soubor s názvem „thegeekstuff“ do našeho úložiště.

  • Vytvořte soubor v místní pracovní kopii
  • $ ls -l /home/sasikala/cfg/thegeekstuff
    -rw-r--r--  1 sasikala root 8 Apr 16 11:33 thegeekstuff
  • Přidejte soubor do úložiště SVN
  • svn add filename přidá soubory do úložiště SVN.

    $ svn add thegeekstuff
    A         thegeekstuff
  • Potvrdit přidaný soubor
  • Dokud neprovedete potvrzení, přidaný soubor nebude dostupný v úložišti.

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

5. SVN Delete – Odstranění souboru z úložiště

Příkaz SVN delete odstraní položku z pracovní kopie (nebo úložiště). Soubor bude smazán z úložiště, když provedete odevzdání SVN.

Syntax:
$ svn delete URL

Nyní odebereme nedávno vytvořený soubor s názvem „thegeekstuff“.

$ svn delete thegeekstuff
D         thegeekstuff

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

Nyní můžete vytvořit seznam svn a zkontrolovat, zda byl soubor smazán z úložiště.

6. Rozdíl SVN – Zobrazení rozdílu

Rozdíl SVN zobrazuje rozdíly mezi vaší pracovní kopií a kopií v úložišti SVN. Můžete najít rozdíl mezi dvěma revizemi a dvěma cestami atd.,

Syntax:
$ svn diff filename

$ svn -r R1:R2 diff filename

Výše uvedený příklad porovnává název_souboru@R1 a název_souboru@R2.

Nyní obsah souboru thegeekstuff vypadá takto,

$ cat /home/sasikala/cfg/thegeekstuff
testing

Upravil jsem obsah souboru thegeekstuff z testování na tester, který je zobrazen níže pomocí příkazu svn diff.

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

7. Stav SVN – Stav pracovní kopie

Pomocí příkazu svn status získáte stav souboru v pracovní kopii. Zobrazuje, zda je pracovní kopie upravena, byla přidána/smazána, nebo zda soubor není pod kontrolou revize atd.

Syntax:

$ svn status PATH

Následující příklad ukazuje stav mé místní pracovní kopie

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

„M“ znamená, že položka byla změněna. Příkaz „svn help status“ vysvětlí různé specifikátory zobrazené v příkazu SVN status.

8. Protokol SVN – Zobrazí zprávu protokolu

Jak jsme probrali na začátku tohoto článku, SVN si pamatuje každou změnu provedenou ve vašich souborech a adresářích. Chcete-li znát všechna potvrzení provedená v souboru nebo adresáři, použijte příkaz SVN log.

Syntax:

$ svn log PATH

Následující zobrazí všechny odevzdání provedené v souboru geekstuff

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

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

Protože jsme v souboru thegeekstuff provedli pouze jedno potvrzení, zobrazí se pouze jedna zpráva protokolu s podrobnostmi.

9. Přesunout SVN – Přejmenovat soubor nebo adresář

Tento příkaz přesune soubor z jednoho adresáře do druhého nebo přejmenuje soubor. Soubor bude okamžitě přesunut do vaší místní karantény (stejně jako do úložiště po potvrzení).

Syntax:
$ svn move src dest

Následující příkaz přejmenuje soubor „thegeekstuff“ na „tgs“ jedním tahem.

$ svn move thegeekstuff tgs
A         tgs
D         thegeekstuff

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

Nyní je soubor přejmenován pouze v pracovní kopii, nikoli v úložišti. Aby byly změny trvalé, musíte je potvrdit.

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

10. Aktualizace SVN – Aktualizujte pracovní kopii.

Příkaz svn update přenese změny z úložiště do vaší pracovní kopie. Pokud není zadána žádná revize, aktualizuje vaši pracovní kopii s revizí HEAD. Jinak synchronizuje pracovní kopii s revizí uvedenou v argumentu.

Vždy předtím, než začnete pracovat na své pracovní kopii, aktualizujte svou pracovní kopii. Takže všechny změny dostupné v úložišti budou dostupné ve vaší pracovní kopii. tj. nejnovější změny.

Syntax:

$ svn update PATH

V případě, že nějaký jiný uživatel přidal/smazal soubor v URL, https://www.thegeekstuff.com/project/branches/release/migration/data/cfg, vaše pracovní kopie nebude mít tyto soubory ve výchozím nastavení, dokud neaktualizujete pracovní kopírovat.

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

Ve výše uvedeném výstupu příkazu svn update A představuje, že tento soubor je „Přidán“ do pracovní kopie.


Linux
  1. 10+ Linux VI příkazy s příklady

  2. Nejjednodušší linuxové příkazy s 10 příklady

  3. Výukový program Ultimate Bash Array s 15 příklady

  1. Kurz rozbalení a rozbalení příkazů s příklady

  2. [Linux]:15 nejčastěji používaných příkazů YUM s příklady

  3. vim výukový program s příklady příkazů

  1. Bash HereDoc výukový program s příklady

  2. 19 Běžné příkazy SSH v Linuxu s příklady

  3. lsof :Nejčastěji používané příklady