SVN on tsentraliseeritud versioonihaldussüsteem. SVN käsud Svn käsud

Sissejuhatus

Subversioni abifunktsioon ( svn abi) annab kokkuvõtte saadaolevatest käskudest. Üksikasjalikum teave on saadaval Subversioni veebiraamatus, mis on saadaval aadressil http://svnbook.red-bean.com/en/1.2/index.html. 3. peatükk on eriti kasulik.

Järgnev on põhiline käskude komplekt, mida kõik redaktorid sageli kasutavad. Mõnel käsul on kaks vormi, pikk ja lühike. Mõlemad on kirjelduses loetletud.

svn diff. See on kasulik kahel erineval eesmärgil. Esiteks saavad need, kellel pole BLFS-i SVN-serverile kirjutamisõigust, seda kasutada BLFS-Devi meililistile saatmiseks plaastrite genereerimiseks. Selleks muutke lihtsalt kohalikus liivakastis olevaid faile ja seejärel käivitage svn diff > FILE.patch teie BLFS-i kataloogi juurtest. Seejärel saate selle faili manustada BLFS-Dev meililisti kirjale, kust keegi, kellel on redigeerimisõigused, saab selle üles korjata ja raamatule rakendada. Teine kasutusviis on teada saada, mis on kahe versiooni vahel muutunud, kasutades järgmist: svn diff -r revision1:revision2 FILENAME . Näiteks: svn diff -r 168:169 index.xml väljastab erinevuse, mis näitab muutusi faili index.xml versioonide 168 ja 169 vahel.

Subversion (SVN – samaaegsete versioonide süsteem) – tsentraliseeritud süsteem versioonikontroll. Mõeldud asenduseks CVS, on sama funktsionaalsusega, kuid sellel puuduvad paljud selle puudused. Vaata ka: SVN raamat .

SVN-serveri seadistamine

SVN-i hoidlas, lihtsalt see näide, kataloog, /home/svn/, peab olemas olema: # svnadmin create --fs-type fsfs /home/svn/project1 Hoidlaga saab ühenduse luua järgmistel viisidel:

  • file://- Otsene juurdepääs failisüsteemi kaudu SVN klient. Kohalikus failisüsteemis peavad õigused olema õigesti konfigureeritud.
  • svn:// või svn+ssh:// - Kaugjuurdepääs To SVN server (ka vastavalt protokollile SSH). Kohalikus failisüsteemis on vaja õigusi, vaikeport on: 2690/tcp.
  • http:// Kaugjuurdepääs kaudu webdav kasutades apache. See meetod ei nõua kohalikke kasutajaid.
Olemasoleva projekti importimine ja kontrollimine kohaliku failisüsteemi kaudu. Töökataloogi pole vaja sisestada, saate lihtsalt määrata täieliku tee: # svn import /projekt1/ file:///home/svn/project1/trunk -m "Esialgne import" # svn checkout file:/// kodu/svn/projekt1

Kaugjuurdepääs SSH-protokolli kaudu

Kaugjuurdepääs protokolli alusel SSH ei vaja täiendavaid seadistusi, lihtsalt asendage file:// peal svn+ssh/hostinimi. Näiteks: # svn checkout svn+ssh://hostname/home/svn/project1 Nagu ka kohaliku juurdepääsu puhul, peab kasutajal olema protokollile juurdepääsuks konto SSH serverisse ja õigesti konfigureeritud lugemis-/kirjutusõigused. See meetod võib sobida väikestele kasutajarühmadele, grupis olevad kasutajad on hoidla omanikud, näiteks: # groupadd subversion # groupmod -A user1 subversion # chown -R root:subversion /home/svn # chmod -R 770 /kodu/svn

Kaugjuurdepääs HTTP kaudu (apache)

Kaugjuurdepääs kaudu HTTP(HTTPS), sobiv lahendus kaugkasutajarühmadele. See meetod kasutab veebiserveri autoriseerimist Apache(mitte kohalikud kontod). Siin on tüüpiline konfiguratsioon: 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 # Ainult juurdepääsu kontrollimiseks DAV svn # URL "/svn/foo" vastendatakse hoidla teega /home/svn/foo SVNParentPath /home/svn AuthType Basic AuthName "Alamversiooni hoidla" AuthzSVNAccessFile /etc/apachepache/svns/svn/svn - passwd Nõua kehtiva kasutaja serverit Apache peab olema täielik juurdepääs hoidlale: # chown -R www:www /home/svn Looge kasutaja htpasswd: # htpasswd -c /etc/svn-passwd user1 #-c Loo fail

svn.acl juurdepääsu juhtimise näide

# Vaikimisi lugemise juurdepääs. "*=" ei oma vaikimisi juurdepääsu[/] * = r projekt1-arendajad = joe, jack, jane # Andke arendajatele kirjutamisload@project1-developers=rw

Mõned käsud SVN-i hoidla haldamiseks

Vaata ka Subversioni kiirjuhendi kaarti. Tortoise SVN, kena Windowsi liides.

Import

Import hoidlasse uus projekt, mis sisaldab katalooge ja faile, saate kasutada käsku importida. Sama käsku kasutatakse ka kataloogi koos sisuga lisamiseks olemasolevasse projekti. # svn abi importimisel # Abi käsu peale # Lisage projekti1 src kataloogi uus kataloog ja selle sisu.# svn import /project1/newdir http://host.url/svn/project1/trunk/src -m "add newdir"

Tüüpilised SVN-i käsud

# svn co http://host.url/svn/project1/trunk # Esitage tellimus Uusim versioon # Sildid ja harud luuakse kopeerimise teel# svn mkdir http://host.url/svn/project1/tags/ # Looge siltide kataloog# svn copy -m "Märgend rc1 rel." http://host.url/svn/project1/trunk \ http://host.url/svn/project1/tags/1.0rc1 # svn olek [--verbose] # Kontrollige töökataloogis olevate failide olekut# svn lisage src/file.h src/file.cpp # Lisage kaks faili# svn commit -m "Lisatud uus klassi fail" # Saada muudatused sõnumiga# svn ls http://host.url/svn/project1/tags/ # Kõigi siltide loend# svn liigu foo.c bar.c # Teisaldage (ümber nimetage) faile# svn kustuta mõni_vana_fail # Kustuta failid

See artiklisari on pühendatud kasutusse tutvustamisele SVN, vaatenurgast tavaline kasutaja. Artikkel on kirjutatud selleks, et aidata mu kolleegidel kiiresti õppida ja kasutada SVN. Nii et alustame põhitõdedest.

Sissejuhatus

õõnestus ( SVN) on tasuta ja avatud lähtekoodiga versioonihaldussüsteem. SVN võimaldab hallata faile ja katalooge, samuti nendes aja jooksul tehtud muudatusi. SVN pakub järgmisi valikuid:

  1. Kataloogi muutmise juhtimine. SVN kasutab versioonimisvõimalustega "virtuaalset" failisüsteemi, mis suudab jälgida aja jooksul tehtud muutusi tervetes kataloogistruktuurides
  2. päris lugu versioonid. SVN võimaldab lisada, kustutada, kopeerida ja ümber nimetada nii faile kui ka katalooge. Samal ajal alustab iga äsja lisatud fail elu nullist, säilitades oma muudatuste ajaloo.
  3. Aatomi pühendumus. Iga muudatuste komplekt kas läheb hoidlasse tervikuna või ei lähe sinna üldse. Need. kui faili töötlemisel projekti muudatuste tegemisel ilmnes viga, siis kogu projekti muudatusi ei kinnitata
  4. versiooniga metaandmed. Igal failil ja kataloogil on oma atribuutide komplekt, mis on esitatud nime ja väärtusena. Saate luua ja salvestada mis tahes vajalike atribuutide nimede ja väärtuste paari. Faili atribuudid on sama palju versioonistatud kui nende sisu.
  5. Üks võimalus andmetega töötamiseks. SVN tuvastab failidevahelised erinevused spetsiaalse binaaralgoritmi abil, mis töötab võrdselt nii teksti- kui ka binaarfailidega. Failid kirjutatakse salvestusruumi tihendatud kujul, olenemata nende tüübist ja üksikute versioonide erinevusi saab üle võrgu edastada mõlemas suunas
  6. Tõhusad oksad ja sildid. SVN loob filiaale ja silte, lihtsalt kopeerides projekti, kasutades mehhanismi, mis sarnaneb failisüsteemide kõvade linkidega. Tänu sellele võtavad harude ja siltide loomise toimingud veidi aega.


Põhimõistete loend

  1. hoidla(hoidla) on lähtekoodide, töömaterjalide ja dokumentatsiooni tsentraliseeritud hoidla. Suvaline arv kliente loob ühenduse salvestusruumiga ja loeb või kirjutab neid faile
  2. töökoopia/töökoopia(WC) on tavaline arvuti kataloogipuu, mis sisaldab failide komplekti projektiga töötamiseks. Muudatused töökoopias ei ole teistele hoidla kasutajatele kättesaadavad enne, kui need on tehtud.
  3. Pagasiruum— peamine arengusuund
  4. haru("Branch") - arengusuund, mis eksisteerib teisest suunast sõltumatult, kuid millel on sellega ühine ajalugu. Filiaal algab alati millegi koopiana ja liigub sellest punktist edasi, luues oma ajaloo.
  5. Tag("Silt") – projektifailide versioon teatud ajahetkel, mis on selgelt valitud eraldi kausta loomisega.
  6. läbivaatamine— hoidla redaktsiooni number, hoidlas on revisjoni number kordumatu väärtus
  7. kassasse- käsk, mis teostab projekti esialgse kontrolli WC-s asuvast hoidlast.
  8. Pühenduma- käsk, mis kannab muudatused WC-s asuvates projektifailides hoidlasse.
  9. värskendada- käsk, mis värskendab hoidlast WC-s olevaid projektifaile
  10. Taasta- käsk, mis võtab tagasi kõik projektifailides tehtud muudatused WC-s, lähtudes hoidla versiooninumbrist.
  11. Ühendage- käsk, mis ühendab failid projekti erinevatest harudest ja asetab ühendamise tulemuse WC-sse.
  12. Konflikt- olukord, mis tekib muudatuste tegemisel, kui samu faile muutsid mitu arendajat.
  13. Lahenda- reeglite kogum tekkivate konfliktide lahendamiseks.
  14. Import- käsk failide puu kiireks kopeerimiseks hoidlasse.
  15. Ekspordi- projekti eksportimise käsk erineb kassast selle poolest, et see ei loo projekti kaustadesse teenuseteavet.
  16. lüliti- käsk, mis lülitab WC teisele arendusharule.
  17. Loo, Lisama, Kustuta, Kopeeri, liigutada, Nimeta ümber- käsud failide ja kaustade haldamiseks hoidlas või WC-s.

Tarkvara

Töötamine hoidlaga SVN alusel läbi vaadatud tarkvara TortoiseSVN

Väljavõte

Svn checkout [-depth ARG] [--ignore-externals] [-r rev] URL PATH

Kui märkeruut on märgitud Jäta väline vahele

Kui kontrollite konkreetset versiooni, määrake see URL-i järel võtmega -r.

Värskenda

svn info working_copy_url svn update [-r rev] PATH

Mitme üksuse värskendamine ei ole praegu Subversionis tuumaoperatsioon. Seega leiab TortoiseSVN esmalt hoidlast pearedaktsiooni (HEAD) ja seejärel värskendab kõik üksused selle versiooni järgi, et vältida segaversioonidega töökoopia loomist.

Kui värskendamiseks on valitud ainult üks element või kui valitud üksused ei ole kõik samast hoidlast, värskendab TortoiseSVN lihtsalt ülemise versiooni.

Käsurea valikuid siin ei kasutata. Värskenda versioonile rakendab ka värskenduskäsku, kuid pakub rohkem võimalusi.

Värskenda versioonile

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

Sügavuse liitkasti üksused on seotud argumendiga -deptus.

Kui märkeruut on märgitud Jäta väline vahele, kasutage valikut --ignore-externals.

Parandage

TortoiseSVN-is kasutab sissekandmise dialoog mitut Subversioni käsku. Esimene etapp on olekukontroll, mis määrab teie töökoopia elemendid, mida võidakse siduda. Saate seda loendit sirvida, võrrelda faile nende baasiga ja valida elemendid, mida soovite sidumisse kaasata.

svn staatus -v PATH

Kui märkeruut on märgitud

Kui märgite mõne versioonita faili ja kausta, lisatakse need üksused teie töökoopiasse esmalt.

svn lisa PATH...

Kui klõpsate nuppu OK, alustab Subversion täitmist. Kui jätsite kõik faililipud nende vaikeolekusse, kasutab TortoiseSVN ühte rekursiivset töökoopia kinnitamist. Kui olete mõne faili märgistuse tühistanud, tuleb kasutada mitterekursiivset sissekandmist (-N) ja iga tee tuleb määrata eraldi käsurida fikseerimiseks.

Svn commit -m "Logisõnum" [-depth ARG] [--no-unlock] PATH...

Logisõnum on siin logisõnumi sisestuskasti sisu. See võib olla tühi.

Erinevus

svn diff PATH

Kui kasutate põhikontekstimenüüst käsku "Erinevused", võrdlete muudetud faili selle põhiversiooniga. Seda teeb ka ülaltoodud käsu ICS-i väljund ja annab väljundi kombineeritud diff-vormingus. TortoiseSVN seda aga ei kasuta. TortoiseSVN kasutab tekstifailide erinevuste graafiliseks kuvamiseks TortoiseMerge'i (või teie valitud diff-programmi), nii et ICS-ile pole otsest vastet.

Samuti saate võrrelda mis tahes kahte faili TortoiseSVN-iga, olenemata sellest, kas need on versioonikontrolli all või mitte. TortoiseSVN lihtsalt söödab need kaks faili valitud diff-programmi ja laseb sellel määrata, kus on erinevused.

Ajakiri

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

Vaikimisi proovib TortoiseSVN ekstraktida 100 logiteadet kasutades --limit meetodit. Kui installid sunnivad kasutama vanu API-sid, siis teist vormi kasutatakse hoidlast 100 versiooni logiteadete saamiseks.

Kui märkeruut on märgitud Peatage kopeerimine/ümbernimetamine, kasutage valikut --stop-on-copy.

Muudatuste kontrollimine

svn staatus -v PATH või svn staatus -u -v PATH

Esialgne olekukontroll vaatab ainult teie töökoopiat. Kui klõpsate Kontrollige salvestusruumi, siis kontrollitakse ka hoidlast, milliseid faile värskendus muudab, ja selleks on vaja suvandit -u.

Kui märkeruut on märgitud Kuva versioonita failid, TortoiseSVN näitab ignoreerimisreeglite tõttu ka versioonita faile ja kaustu töökoopia hierarhias. Sellel konkreetsel atribuudil pole Subversionis otsest vastet, kuna svn status käsk ei lähe versioonimata kaustadesse.

Revisjoni graafik

Redaktsioonigraafik on funktsioon, mida pakub ainult TortoiseSVN. Käsurea kliendis pole analoogi.

Mida TortoiseSVN teeb:

svn info working_copy_url svn log -v URL

kus on url juur salvestusruumi ja seejärel analüüsib tagastatud andmeid.

Storage Explorer

svn info working_copy_url svn list [-r rev] -v URL

Saate kasutada svn infot hoidla juure määramiseks: see on hoidla brauseris kuvatav tipptase. Sellest tasemest kõrgemale ei saa liikuda. Samuti tagastab see käsk kogu hoidla brauseris kuvatava lukuteabe.

Svn-nimekirja kutsumine loetleb kausta sisu määratud URL-i ja versiooni jaoks.

Muuda konflikte

Sellel käsul pole X-s vastet. See kutsub TortoiseMerge või väline instrument Kolmesuunaline erinevus/ühendamine konfliktis olevate failide vaatamiseks ja kasutatavate ridade valimiseks.

Asunud

svn lahendas PATH

Nimeta ümber

Svn nimetab ümber CURRENT_PATH NEW_PATH

Kustuta

svn kustuta PATH

Eemalda muudatused

svn staatus -v PATH

Esimene etapp on olekukontroll, mis tuvastab teie töökoopias üksused, mida võidakse tagasi võtta. Saate vaadata loendit, võrrelda faile alusega ja valida elemendid, milles soovite muudatusi eemaldada.

Kui klõpsate OK, eemaldab Subversion muudatused. Kui jätsid kõik failivaliku lipud nende vaikeolekusse, kasutab TortoiseSVN ühte rekursiivset (-R) naasmist töökoopiale. Kui eemaldate mõne faili märgistuse, tuleb muudatuste eemaldamiseks iga tee käsureal eraldi määrata.

Svn tagasi [-R] PATH...

puhastamine

svn puhastus PATH

blokk

svn staatus -v PATH

Esimene etapp on olekukontroll, mis tuvastab teie töökoopias olevad failid, mis võivad olla lukustatud. Saate valida elemendid, mida soovite blokeerida.

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

Lukustussõnum on lukusõnumi välja sisu. See võib olla tühi.

Kui märkeruut on märgitud Katkesta lukud, kasutage suvandit --force.

Avage lukustus

svn avada PATH

Filiaal/silt

Svn copy -m "Logisõnum" URL URL või svn copy -m "Logisõnum" või svn copy -m "Logisõnum" URL PATH

Dialoog Haru/silt kopeerib hoidlasse. Seal on 3 lülitusnuppu:

  • Pearedaktsioon hoidlas (HEAD)
  • Määratud redaktsioon hoidlas
  • töökoopia

mis vastavad kolmele ülaltoodud käsurea valikule.

add – lisab faile, katalooge ja sümbollinke, märkides need hilisemaks hoidlasse lisamiseks. Pärast märgistamist laaditakse need alla ja lisatakse hoidlasse muudatuste esmakordsel vastuvõtmisel. Kui lisasite midagi, kuid muutsite enne kinnijäämist meelt, saate lisamismärgi eemaldada alamkäsuga svn revert.
svn lisa PATH…
$ svn lisa testdir

süüdistama (kiitma, märkima, ann) – kuvab määratud failide või URL-ide puhul ridade kaupa autori ja redaktsiooni. Iga tekstirida algab autori nime (kasutajanime) ja redaktsiooninumbriga. Seega on näidatud, kes ja millal viimati seda rida muutis.
svn süüdistama TARGETit[@REV]…
$ svn süüdistada http://svn.red-bean.com/repos/test/readme.txt

cat – kuvab määratud failide või URL-ide sisu. Kasutage kataloogide sisu loetlemiseks svn list.
svn cat TARGET[@REV]...
$ svn kass http://svn.red-bean.com/repos/test/readme.txt

checkout (co) – loob hoidlas olevate andmete põhjal töökoopia. Kui PATH jäetakse välja, kasutatakse töökoopia kataloogi nimena URL-i baasnime. Kui on antud mitu URL-i, tehakse vastavad koopiad alamkataloogi PATH, igaüks oma URL-i baasnimest moodustatud kataloogi.
svn kassa URL[@REV]…
svn checkout svn://svn.ru2web.ru/ru2web/branches/www-01/ /usr/home/vasia/ru2web.ru/app/

puhastus – puhastab töökoopia rekursiivselt, eemaldades ootel olevatest toimingutest üle jäänud lukud. Niipea, kui näete tõrget "töökoopia lukustatud", käivitage see alamkäsk, et eemaldada vanad lukud ja viia töökoopia normaalsesse olekusse.

Kui mingil põhjusel svn update käsu töö ebaõnnestus töötava välise diff programmi probleemide tõttu (näiteks vajutati selles midagi valesti või tekkis võrgutõrge), peate määrama parameetri –diff3-cmd. lubage koopia puhastamisel välise diffeerimisprogrammi abil kõik ühendused lõpule viia. Konfiguratsioonikataloogi saate määrata ka võtmega --config-dir, kuid proovige neid valikuid mitte üle kasutada.

commit (ci) – saadab töökoopias tehtud muudatused hoidlasse, et need sinna salvestada. Kui te ei kasuta suvandit --file ega --message, käivitab svn kommentaari koostamiseks välise redaktori. Lugege "Config" suvandi editor-cmd kirjeldust.
svn commit saadab kõik rekursiivselt leitud lukustusmärgid hoidlasse ja avab nendele märkidele vastavad ressursid, kui pole määratud suvandit --no-unlock. "Otsinguala" täpsustatakse määrates PATH.
svn commit

koopia (cp) – kopeerib faili töökoopiasse või hoidlasse. SRC ja DST võivad olla teed töökoopias või URL-id hoidlas.
svn koopia SRC DST

kustuta (del, remove, rm) – üksuse eemaldamine töökoopiast või hoidlast.
svn kustuta PATH…
svn kustuta url...

diff (di) – näitab erinevusi töökoopia ja hoidla vahel.
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500

eksport – puhta kataloogipuu eksportimine (ilma .svn-kaustadeta).

abi (?, h) - Abi.

import – sisestage hoidlasse versioonimata fail või puu.
svn impordi URL

info – kuvab teavet kohaliku või kaugelemendi kohta.
svninfo

list (ls) – hoidlas olevate kataloogide loend.
svnlist ...]
$ svn loend http://svn.red-bean.com/repos/test/support

lukk – lukustage hoidlas olev töökoopia, et ükski teine ​​kasutaja ei saaks antud teel muudatusi teha.
svn lukk SIHT...
$ svn lock tree.jpg house.jpg

logi – logiteadete kuvamine.
svnlog
svnlogi URL
$ svnlog

ühenda – kahe allika erinevuste rakendamine.
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch

mkdir – looge versioonidega hoidlas kataloog.
$ svn mkdir newdir

teisalda (mv, ümbernimetamine, ren) – faili või kataloogi teisaldamine.
svn liikuda SRC DST

propdel (pdel, pd) – atribuutide eemaldamine failidest, kataloogidest või versioonidest.
svn propdel PROPNAME
svn propdel PROPNAME --revprop -r REV

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

lahendatud – eemaldage failide või kataloogide töökoopiatest "konfliktid".
svn lahendas PATH…

tagasi – kõigi kohalike muudatuste ennistamine.
$ svn revert myprj.phtml

olek (stat, st) – failide või kataloogide töökoopia olek.
$ svn staatus wc

lüliti (sw) – värskendage töökoopiat teisele URL-ile.

unlock – avage töökoopia lukust.

värskenda (üles) – värskendage oma töökoopiat.