Svn commit z príkazového riadku. Príkazy SVN

Táto séria článkov je venovaná úvodu do používania SVN, z pohľadu bežného užívateľa. Článok bol napísaný, aby pomohol mojim kolegom rýchlo sa naučiť a používať SVN. Začnime teda od základov.

Úvod

Subversion ( SVN) je bezplatný a otvorený systém na správu verzií. SVN umožňuje spravovať súbory a adresáre, ako aj zmeny v nich vykonané v priebehu času. SVN poskytuje nasledujúce funkcie:

  1. Kontrola zmien v adresári. SVN používa "virtuálny" súborový systém s možnosťou tvorby verzií, ktorý je schopný sledovať zmeny v priebehu času v celých adresárových štruktúrach
  2. Skutočná história verzií. SVN umožňuje pridávať, mazať, kopírovať a premenovávať súbory aj adresáre. Navyše, každý novo pridaný súbor začína život od nuly, pričom si zachováva svoju vlastnú históriu zmien
  3. Atómové odovzdanie zmien. Každá sada zmien buď úplne skončí v úložisku, alebo tam neskončí vôbec. Tie. ak sa pri zadávaní zmien projektu vyskytla chyba počas spracovania súboru, zmeny v celom projekte sa nepotvrdia
  4. Metadáta s verziami. Každý súbor a adresár má svoju vlastnú množinu vlastností, ktorú predstavuje názov a hodnota. Môžete vytvoriť a uložiť všetky potrebné dvojice názvov vlastností a ich hodnôt. Vlastnosti súborov majú rovnakú verziu ako ich obsah
  5. Jednotný spôsob práce s dátami. SVN zisťuje rozdiely medzi súbormi pomocou špeciálneho binárneho algoritmu, ktorý pracuje rovnako s textovými aj binárnymi súbormi. Súbory sa do úložiska zapisujú v komprimovanej podobe bez ohľadu na ich typ a rozdiely medzi jednotlivými verziami je možné prenášať po sieti obojsmerne
  6. Efektívne vetvy a značky. SVN vytvára vetvy a značky jednoduchým kopírovaním projektu pomocou mechanizmu podobného pevným odkazom v súborových systémoch. Vďaka tomu operácie vytvárania vetiev a značiek zaberú málo času.


Zoznam základných pojmov

  1. Úložisko(Úložisko) je centralizované úložisko zdrojových kódov, pracovných materiálov a dokumentácie. Ľubovoľný počet klientov sa pripája k úložisku a číta alebo zapisuje tieto súbory
  2. Pracovná kópia/pracovná kópia(WC) je bežný strom adresárov v počítači obsahujúci sadu súborov na prácu na projekte. Zmeny v pracovnej kópii nie sú dostupné pre ostatných používateľov archívu, kým nie sú potvrdené.
  3. Kmeň— hlavný smer vývoja
  4. Pobočka(„Pobočka“) je smer rozvoja, ktorý existuje nezávisle od iného smeru, ale má s ním spoločnú históriu. Vetva vždy začína ako kópia niečoho a pohybuje sa od tohto bodu a vytvára svoju vlastnú históriu
  5. Tag(„Štítok“) je explicitne zvolená verzia súborov projektu v určitom časovom bode prostredníctvom vytvorenia samostatného priečinka.
  6. Revízia— číslo revízie archívu, v rámci archívu je číslo revízie jedinečnou hodnotou
  7. Odhlásiť sa- tím, ktorý vykonáva prvotný príjem projektu z úložiska vo WC.
  8. Zaviazať sa- príkaz, ktorý odovzdá zmeny v projektových súboroch vo WC do úložiska.
  9. Aktualizovať- príkaz, ktorý aktualizuje súbory projektu vo WC z úložiska
  10. Prejsť späť- príkaz, ktorý zruší všetky zmeny v projektových súboroch vo WC na základe čísla revízie úložiska.
  11. Zlúčiť- príkaz, ktorý zlúči súbory z rôznych vetiev projektu a umiestni výsledok zlúčenia do WC.
  12. Konflikt- situácia, ktorá nastáva pri páchaní zmien, keď tie isté súbory menilo viacero vývojárov.
  13. Vyriešiť- súbor pravidiel na riešenie vznikajúcich konfliktov.
  14. Importovať- príkaz na rýchle skopírovanie stromu súborov do úložiska.
  15. Export- príkaz na export projektu sa líši od pokladne tým, že nevytvára servisné informácie v priečinkoch projektu.
  16. Prepínač- príkaz, ktorý prepne WC do inej vývojovej vetvy.
  17. Vytvorte, Pridať, Odstrániť, Kopírovať, Pohybujte sa, Premenovať- príkazy na správu súborov a priečinkov v úložisku alebo WC.

softvér

Práca s úložiskom SVN posúdené na základe softvér TortoiseSVN

pridať – Pridá súbory, adresáre a symbolické odkazy a označí ich na neskoršie zahrnutie do úložiska. Po označení sa stiahnu a pridajú do úložiska pri prvom potvrdení zmien. Ak ste niečo pridali, ale potom ste si to pred pripnutím rozmysleli, značku pridania môžete odstrániť pomocou čiastkového príkazu svn revert.
svn pridať PATH...
$svn pridať testdir

obviňovať (chváliť, komentovať, ann) – Zobrazuje autora a editora riadok po riadku pre zadané súbory alebo adresy URL. Každý riadok textu začína menom autora (používateľským menom) a číslom revízie. Označuje, kto a kedy naposledy upravil tento riadok.
svn obviňovať TARGET[@REV]…
$ svn obviňovať http://svn.red-bean.com/repos/test/readme.txt

cat – Vytlačí obsah zadaných súborov alebo adries URL. Ak chcete zobraziť obsah adresárov, použite zoznam svn.
svn cat TARGET[@REV]…
$ svn cat http://svn.red-bean.com/repos/test/readme.txt

checkout (co) – Vytvorí pracovnú kópiu na základe údajov v úložisku. Ak je PATH vynechaný, základný názov URL sa použije ako názov pre adresár pracovnej kópie. Ak je zadaných viacero adries URL, v podadresári PATH sa vytvoria zodpovedajúce kópie, každá vo svojom vlastnom adresári odvodenom od základného názvu adresy URL.
svn webová adresa platby[@REV]…
svn pokladňa svn://svn.ru2web.ru/ru2web/branches/www-01/ /usr/home/vasia/ru2web.ru/app/

čistenie – Rekurzívne čistí pracovnú kópiu a odstraňuje zámky zostávajúce z nedokončených operácií. Hneď ako narazíte na chybu „pracovná kópia je zamknutá“, spustite tento čiastkový príkaz na odstránenie starých zámkov a uvedenie pracovnej kópie do funkčného stavu.

Ak z nejakého dôvodu zlyhala operácia príkazu svn update kvôli problémom so spusteným externým programom diff (napríklad som v ňom klikol na niečo nesprávne alebo došlo k zlyhaniu siete), musíte nastaviť parameter –diff3-cmd na povoliť čistenie kópie, aby sa dokončili všetky spojenia pomocou externého programu na porovnanie. Konfiguračný adresár môžete zadať aj pomocou voľby –config-dir, ale dávajte pozor, aby ste tieto voľby nepoužívali nadmerne.

commit (ci) – Odošle zmeny, ktoré ste vykonali v pracovnej kópii, do úložiska, aby sa tam uložili. Ak nepoužijete možnosť –file alebo –message, svn spustí externý editor na vytvorenie komentára. Prečítajte si popis parametra editor-cmd v "Config".
svn commit odošle všetky rekurzívne nájdené štítky zámkov do úložného zariadenia a odomkne zdroje zodpovedajúce týmto štítkom, ak nebol zadaný parameter –no-unlock. „Oblasť vyhľadávania“ je špecifikovaná zadaním PATH.
svn commit

copy (cp) – Skopíruje súbor do pracovnej kópie alebo do úložiska. SRC a DST môžu byť cesty vo vnútri pracovnej kópie alebo adresy URL v úložisku.
svn kópia SRC DST

delete (del, remove, rm) – Odstránenie položky z pracovnej kópie alebo úložiska.
svn odstrániť PATH...
svn odstrániť URL...

diff (di) – Zobrazuje rozdiely medzi pracovnou kópiou a úložiskom.
$ svn rozdiel http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500

export – Exportuje čistý adresárový strom (bez priečinkov .svn).

pomoc (?, h) – Pomoc.

import – odošle súbor alebo strom bez verzie do úložiska.
svn importovať URL

info – Zobrazenie informácií o lokálnom alebo vzdialenom prvku.
svn info

list (ls) – Zoznam adresárov v úložisku.
svnlist...]
$ svn zoznam http://svn.red-bean.com/repos/test/support

lock – uzamknutie pracovnej kópie v úložisku, aby žiadny iný používateľ nemohol vykonávať zmeny v danej ceste.
svn lock TARGET…
$ svn zámok strom.jpg dom.jpg

denník – zobrazenie správ denníka.
svn denník
adresa URL denníka svn
$svn denník

zlúčiť – použiť rozdiely medzi dvoma zdrojmi.
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch

mkdir – Vytvorte adresár v archíve riadenom verziou.
$svn mkdir newdir

move (mv, rename, ren) – Presun súboru alebo adresára.
svn move SRC DST

propdel (pdel, pd) – Odstráňte vlastnosti zo súborov, adresárov alebo revízií.
svn propdel PROPNAME
svn propdel PROPNAME –revprop -r REV

propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)

vyriešené – Odstráňte „konflikty“ z pracovnej kópie súborov alebo adresárov.
svn vyriešená PATH…

vrátiť – Vráti všetky lokálne zmeny.
$ svn revert myprj.phtml

status (stat, st) – Stav pracovnej kópie súborov alebo adresárov.
$svn status wc

switch (sw) – Aktualizujte pracovnú kópiu na inú URL.

odomknúť – Odomkne pracovnú kópiu.

update (up) – Aktualizácia vašej pracovnej kópie.

Extrakt

Pokladňa svn [-depth ARG] [--ignore-externals] [-r rev] CESTA URL

Ak je začiarkavacie políčko začiarknuté Preskočiť externé

Ak získavate konkrétnu revíziu, zadajte ju za URL pomocou parametra -r.

Aktualizovať

Svn info URL_working_copy svn update [-r rev] PATH

Aktualizuje sa viacero položiek v tento moment nie je atómová operácia v Subversion. Preto TortoiseSVN najprv nájde hlavnú revíziu (HEAD) v úložisku a potom aktualizuje všetky položky na túto revíziu, aby sa zabránilo vytvoreniu pracovnej kópie so zmiešanými revíziami.

Ak je na aktualizáciu vybratá iba jedna položka alebo vybraté položky nie sú všetky z rovnakého úložiska, TortoiseSVN sa jednoducho aktualizuje na hlavnú revíziu.

Tu sú parametre príkazový riadok sa nepoužívajú. Aktualizácia na revíziu tiež implementuje príkaz update, ale ponúka viac funkcií.

Aktualizácia na revíziu

Svn info URL_working_copy svn update [-r rev] [-depth ARG] [--ignore-externals] PATH

Položky rozbaľovacieho zoznamu hĺbky súvisia s argumentom -hĺbka.

Ak je začiarkavacie políčko začiarknuté Preskočiť externé, použite možnosť --ignore-externals.

Opraviť

V TortoiseSVN dialógové okno odovzdania používa niekoľko príkazov Subversion. Prvou fázou je kontrola stavu, ktorá identifikuje prvky vašej pracovnej kópie, ktoré by mohli byť potenciálne potvrdené. Môžete si prezerať tento zoznam, porovnávať súbory s ich základňou a vyberať položky, ktoré chcete zahrnúť do odovzdania.

Stav Svn -v PATH

Ak je začiarkavacie políčko začiarknuté

Ak označíte akékoľvek súbory a priečinky bez verzie, tieto položky budú pridané do vašej pracovnej kópie ako prvé.

Svn pridať PATH...

Keď kliknete na OK, Subversion začne vykonávať odovzdanie. Ak necháte všetky začiarkavacie políčka súborov v ich predvolenom stave, TortoiseSVN použije jedno rekurzívne potvrdenie pracovnej kópie. Ak ste zrušili označenie niektorých súborov, musíte použiť nerekurzívne odovzdanie (-N) a každú cestu musíte zadať samostatne na príkazovom riadku odovzdania.

Svn commit -m "LogMessage" [-depth ARG] [--no-unlock] PATH...

LogMessage tu predstavuje obsah vstupného poľa správy protokolu. Môže byť prázdny.

Rozdiel

Svn rozdiel PATH

Ak použijete príkaz Diff z hlavnej kontextovej ponuky, porovnáte upravený súbor s jeho základnou revíziou. Výstup z ICS vyššie uvedeného príkazu to tiež robí a vytvára výstup vo formáte kombinovaných rozdielov. TortoiseSVN to však nepoužíva. TortoiseSVN používa TortoiseMerge (alebo rozdielový program podľa vášho výberu) na vizuálne zobrazenie rozdielov medzi textovými súbormi, takže neexistuje žiadny priamy ekvivalent k SVN.

Môžete tiež porovnať ľubovoľné dva súbory pomocou TortoiseSVN, bez ohľadu na to, či sú pod kontrolou verzií. TortoiseSVN jednoducho vloží tieto dva súbory do zvoleného programu na porovnanie a nechá ho určiť, kde sú rozdiely.

Časopis

Svn log -v -r 0:N --limit 100 [--stop-on-copy] PATH alebo svn log -v -r M:N [--stop-on-copy] PATH

Štandardne sa TortoiseSVN pokúša extrahovať 100 protokolových správ pomocou metódy --limit. Ak sú inštalácie nútené používať staré API, potom sa druhý formulár používa na získanie správ protokolu pre 100 revízií z úložiska.

Ak je začiarkavacie políčko začiarknuté Zastavte pri kopírovaní/premenovaní, použite možnosť --stop-on-copy.

Kontrola zmien

Stav svn -v PATH alebo stav svn -u -v PATH

Počiatočná kontrola stavu sa pozerá iba na vašu pracovnú kópiu. Ak kliknete na Skontrolujte úložisko, potom sa skontroluje aj úložisko, aby sa zistilo, ktoré súbory sa aktualizáciou zmenia, a to si vyžaduje voľbu -u.

Ak je začiarkavacie políčko začiarknuté Zobraziť súbory bez verzie, TortoiseSVN tiež zobrazí súbory a priečinky bez verzie v hierarchii pracovných kópií, rešpektujúc pravidlá ignorovania. Táto konkrétna vlastnosť nemá v Subversion žiadny priamy ekvivalent, pretože príkaz svn status nejde do priečinkov bez verzie.

Revízny graf

Graf revízií je funkcia poskytovaná iba TortoiseSVN. V klientovi príkazového riadku neexistuje žiadny ekvivalent.

Čo TortoiseSVN robí:

Svn info URL_working_copy svn log -v URL

kde je adresa URL koreňúložisko a potom analyzuje vrátené údaje.

Prieskumník úložiska

Svn info Working_copy URL svn list [-r rev] -v URL

Na definovanie koreňového adresára úložiska môžete použiť svn info: toto je najvyššia úroveň zobrazená v prehliadači úložiska. Nad túto úroveň sa nemôžete posunúť. Tento príkaz tiež vráti všetky informácie o zámku zobrazené v Prieskumníkovi úložiska.

Zavolaním zoznamu svn sa zobrazí obsah priečinka pre zadanú adresu URL a revíziu.

Upravte konflikty

Tento príkaz nemá v ICS ekvivalent. Volá TortoiseMerge alebo externý trojcestný nástroj na porovnávanie/zlúčenie na zobrazenie súborov zapojených do konfliktu a výber riadkov, ktoré sa majú použiť.

Usadený

Svn vyriešený PATH

Premenovať

Svn premenovať CURRENT_PATH NEW_PATH

Odstrániť

Svn odstrániť PATH

Odstrániť zmeny

Stav Svn -v PATH

Prvou fázou je kontrola stavu, ktorá identifikuje položky vo vašej pracovnej kópii, z ktorých by potenciálne mohli byť odstránené zmeny. Môžete si zobraziť zoznam, porovnať súbory s databázou a vybrať prvky, v ktorých chcete odstrániť zmeny.

Keď kliknete na OK, Subversion odstráni zmeny. Ak ponecháte všetky príznaky výberu súborov v ich predvolenom stave, TortoiseSVN použije jedno rekurzívne (-R) vrátenie zmien v pracovnej kópii. Ak zrušíte začiarknutie niektorých súborov, na odstránenie zmien je potrebné každú cestu zadať samostatne v príkazovom riadku.

Svn vrátiť [-R] PATH...

Upratovanie

Čistenie svn PATH

Blokovať

Stav Svn -v PATH

Prvou fázou je kontrola stavu, ktorá identifikuje súbory vo vašej pracovnej kópii, ktoré by mohli byť zamknuté. Môžete si vybrať položky, ktoré chcete blokovať.

Svn lock -m "LockMessage" [--force] PATH...

LockMessage je obsah poľa správy uzamknutia. Môže byť prázdny.

Ak je začiarkavacie políčko začiarknuté Záchytné zámky, použite možnosť --force.

Odblokovanie

Svn odomknúť PATH

Pobočka/štítok

Svn copy -m "Správa denníka" URL URL alebo svn copy -m "Záznamová správa" alebo svn copy -m "Záznamová správa" URL PATH URL

Dialógové okno Vetva/Štítok vykoná kópiu do úložiska. K dispozícii sú 3 prepínateľné tlačidlá:

  • Hlavná revízia v úložisku (HEAD)
  • Zadaná revízia v úložisku
  • Pracovná kópia

ktoré zodpovedajú trom vyššie uvedeným možnostiam príkazového riadka.

Úvod

Pomocná funkcia Subversion ( svn pomoc) poskytuje súhrn dostupných príkazov. Podrobnejšie informácie sú dostupné v online knihe Subversion na http://svnbook.red-bean.com/en/1.2/index.html. Obzvlášť užitočná je kapitola 3.

Nasleduje základná sada príkazov, ktoré budú často používať všetky editory. Niektoré príkazy majú dve formy, dlhú a krátku. Obe sú uvedené v popise.

svn rozdiel. To je užitočné na dva rôzne účely. Po prvé, tí, ktorí nemajú prístup k zápisu na server BLFS SVN, ho môžu použiť na generovanie záplat, ktoré sa majú poslať do mailing listu BLFS-Dev. Ak to chcete urobiť, jednoducho upravte súbory vo vašom miestnom pieskovisku a potom spustite svn diff > FILE.patch z koreňového adresára vášho adresára BLFS. Tento súbor potom môžete pripojiť k správe do zoznamu adresátov BLFS-Dev, kde si ho môže niekto s právami na úpravy vyzdvihnúť a použiť v knihe. Druhým použitím je zistiť, čo sa zmenilo medzi dvoma revíziami pomocou: svn diff -r revízia1:revízia2 NÁZOV SÚBORU . Napríklad: svn diff -r 168:169 index.xml vypíše rozdiel zobrazujúci zmeny medzi revíziami 168 a 169 index.xml.

Subversion (SVN - Concurrent Versions System) je centralizovaný systém správy verzií. Určené ako náhrada za CVS, má rovnakú funkcionalitu, ale nemá veľa nevýhod. Pozri tiež: Kniha SVN.

Nastavenie servera SVN

Úložisko SVN, celkom jednoducho, v tomto príklade adresár, /home/svn/, musí existovať: # svnadmin create --fs-type fsfs /home/svn/project1 K úložisku sa môžete pripojiť nasledujúcimi spôsobmi:

  • súbor://- Priamy prístup cez súborový systém pomocou SVN zákazník. Privilégiá musia byť správne nastavené na lokálnom súborovom systéme.
  • svn:// alebo svn+ssh:// - Vzdialený prístup Komu SVN server (aj podľa protokolu SSH). Vyžaduje práva v lokálnom systéme súborov, predvolený port: 2690/tcp.
  • http:// Vzdialený prístup cez webdav použitím apache. Táto metóda nevyžaduje miestnych používateľov.
Importujte a skontrolujte existujúci projekt cez lokálny súborový systém. Nie je potrebné ísť do pracovného adresára, môžete jednoducho zadať úplnú cestu: # svn import /project1/ file:///home/svn/project1/trunk -m "Počiatočný import" # svn checkout file:// /home/svn/project1

Vzdialený prístup cez protokol SSH

Vzdialený prístup cez protokol SSH nevyžaduje žiadne ďalšie nastavenia, stačí vymeniť súbor:// na svn+ssh/názov hostiteľa. Napríklad: # svn checkout svn+ssh://hostname/home/svn/project1 Rovnako ako v prípade lokálneho prístupu musí mať používateľ účet na prístup cez protokol SSH na server a správne nakonfigurované povolenia na čítanie/zápis. Táto metóda môže byť vhodná pre malé skupiny používateľov, používatelia v skupine sú vlastníkmi úložiska, napríklad: # groupadd subversion # groupmod -A user1 subversion # chown -R root:subversion /home/svn # chmod -R 770 /domov/svn

Vzdialený prístup cez HTTP (apache)

Vzdialený prístup cez HTTP(HTTPS), vhodné riešenie pre vzdialené skupiny používateľov. Táto metóda využíva autentifikáciu webového servera Apache(nie miestne účty). Tu je typická konfigurácia: LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # Len na kontrolu prístupu DAV svn # URL "/svn/foo" bude namapované na cestu k úložisku /home/svn/foo SVNParentPath /home/svn AuthType Basic AuthName "Subversion repository" AuthzSVNAccessFile /etc/apache2/svn.Fiapache2/AuthU svn- passwd Vyžadovať server platného používateľa Apache musí mať úplný prístup k úložisku: # chown -R www:www /home/svn Vytvorte používateľa pomocou htpasswd: # htpasswd -c /etc/svn-passwd user1 #-c Vytvorte súbor

Príklad riadenia prístupu svn.acl

# Predvolený prístup na čítanie. "* =" nebude mať predvolene prístup[/] * = r project1-developers = joe, jack, jane # Poskytnite vývojárom povolenia na zápis@project1-developers=rw

Niektoré príkazy na správu úložiska SVN

Pozri tiež Stručná referenčná karta Subversion. Tortoise SVN, dobré rozhranie Windows.

Importovať

Pomocou príkazu môžete importovať nový projekt obsahujúci adresáre a súbory do úložiska importovať. Rovnaký príkaz sa používa aj na pridanie adresára s jeho obsahom do už existujúceho projektu. # svn pomôže importovať # Pomoc na príkaz # Pridajte nový adresár a jeho obsah do adresára src projektu1.# svn import /project1/newdir http://host.url/svn/project1/trunk/src -m "add newdir"

Typické príkazy SVN

# svn co http://host.url/svn/project1/trunk # Objednajte si Najnovšia verzia # Tagy a vetvy sa vytvárajú pomocou kopírovania# svn mkdir http://host.url/svn/project1/tags/ # Vytvorte adresár značiek# svn copy -m "Tag rc1 rel." http://host.url/svn/project1/trunk \ http://host.url/svn/project1/tags/1.0rc1 # stav svn [--verbose] # Skontrolujte stav súborov v pracovnom adresári# svn add src/file.h src/file.cpp # Pridajte dva súbory# svn commit -m "Pridaný nový súbor triedy" # Pošlite zmeny správou# svn ls http://host.url/svn/project1/tags/ # Zoznam všetkých značiek# svn move foo.c bar.c # Presunúť (premenovať) súbory# svn delete some_old_file # Delete files