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:
- 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
- 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
- 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
- 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
- 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
- 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
- Ú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
- 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é.
- Kmeň— hlavný smer vývoja
- 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
- Tag(„Štítok“) je explicitne zvolená verzia súborov projektu v určitom časovom bode prostredníctvom vytvorenia samostatného priečinka.
- Revízia— číslo revízie archívu, v rámci archívu je číslo revízie jedinečnou hodnotou
- Odhlásiť sa- tím, ktorý vykonáva prvotný príjem projektu z úložiska vo WC.
- Zaviazať sa- príkaz, ktorý odovzdá zmeny v projektových súboroch vo WC do úložiska.
- Aktualizovať- príkaz, ktorý aktualizuje súbory projektu vo WC z úložiska
- Prejsť späť- príkaz, ktorý zruší všetky zmeny v projektových súboroch vo WC na základe čísla revízie úložiska.
- Zlúčiť- príkaz, ktorý zlúči súbory z rôznych vetiev projektu a umiestni výsledok zlúčenia do WC.
- Konflikt- situácia, ktorá nastáva pri páchaní zmien, keď tie isté súbory menilo viacero vývojárov.
- Vyriešiť- súbor pravidiel na riešenie vznikajúcich konfliktov.
- Importovať- príkaz na rýchle skopírovanie stromu súborov do úložiska.
- Export- príkaz na export projektu sa líši od pokladne tým, že nevytvára servisné informácie v priečinkoch projektu.
- Prepínač- príkaz, ktorý prepne WC do inej vývojovej vetvy.
- 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.