Az SVN egy központi verziókezelő rendszer. SVN parancsok Svn parancsok

Bevezetés

A Subversion súgó funkciója ( svn segítség) összefoglalja az elérhető parancsokat. Részletesebb információ a Subversion on-line könyvében található, amely a következő címen érhető el: http://svnbook.red-bean.com/en/1.2/index.html. A 3. fejezet különösen hasznos.

Az alábbiakban egy alapvető parancskészlet található, amelyet minden szerkesztő gyakran használ. Egyes parancsoknak két formája van, a hosszú és a rövid. Mindkettő szerepel a leírásban.

svn diff. Ez két különböző célra hasznos. Először is azok, akik nem rendelkeznek írási hozzáféréssel a BLFS SVN szerverhez, használhatják azt a BLFS-Dev levelezőlistára küldendő javítások generálására. Ehhez egyszerűen szerkessze a fájlokat a helyi homokozóban, majd futtassa svn diff > FILE.patch a BLFS-könyvtár gyökeréből. Ezután csatolhatja ezt a fájlt egy üzenethez a BLFS-Dev levelezőlistán, ahol egy szerkesztési jogosultsággal rendelkező személy felveheti és alkalmazni tudja a könyvben. A második felhasználási mód az, hogy megtudja, mi változott két változat között a következő használatával: svn diff -r revision1:revision2 FILENAME . Például: svn diff -r 168:169 index.xml egy különbséget ad ki, amely az index.xml 168. és 169. változata közötti változásokat mutatja.

Subversion (SVN – Egyidejű verziók rendszere) - központosított rendszer verzióvezérlés. Csereként tervezték CVS, ugyanazokkal a funkciókkal rendelkezik, de hiányzik számos hátránya. Lásd még: SVN könyv.

SVN szerver beállítása

SVN adattár, meglehetősen egyszerű, be ebben a példában, Könyvtár, /home/svn/, léteznie kell: # svnadmin create --fs-type fsfs /home/svn/project1 A következő módokon csatlakozhat a tárolóhoz:

  • file://- Közvetlen hozzáférés a fájlrendszeren keresztül SVNügyfél. A jogosultságokat helyesen kell beállítani a helyi fájlrendszeren.
  • svn:// vagy svn+ssh:// - Távoli hozzáférés Nak nek SVN szerver (a protokoll szerint is SSH). Jogosultság szükséges a helyi fájlrendszerhez, alapértelmezett port: 2690/tcp.
  • http:// Távoli hozzáférés a következőn keresztül webdav segítségével apache. Ez a módszer nem igényel helyi felhasználókat.
Importáljon és ellenőrizze egy meglévő projektet a helyi fájlrendszeren keresztül. Nem szükséges bemenni a munkakönyvtárba, egyszerűen megadhatja a teljes elérési utat: # svn import /project1/ file:///home/svn/project1/trunk -m "Kezdeti import" # svn checkout file:// /home/svn/projekt1

Távoli hozzáférés SSH protokollon keresztül

Távoli hozzáférés protokollon keresztül SSH nem igényel további beállításokat, csak cserélje ki file:// tovább svn+ssh/hostname. Például: # svn checkout svn+ssh://hostname/home/svn/project1 A helyi hozzáféréshez hasonlóan a felhasználónak fiókkal kell rendelkeznie a protokollon keresztüli eléréshez SSH a szerverre, és megfelelően konfigurált írási/olvasási jogosultságokat. Ez a módszer alkalmas lehet kisebb felhasználói csoportok számára, a csoportban lévő felhasználók a tár tulajdonosai, például: # groupadd subversion # groupmod -A user1 subversion # chown -R root:subversion /home/svn # chmod -R 770 /home/svn

Távoli hozzáférés HTTP-n keresztül (apache)

Távoli hozzáférés a következőn keresztül HTTP(HTTPS), megfelelő megoldás távoli felhasználói csoportok számára. Ez a módszer webszerver-hitelesítést használ Apache(nem helyi számlák). Íme egy tipikus konfiguráció: 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 # Csak hozzáférés-szabályozáshoz A DAV svn # URL "/svn/foo" a /home/svn/foo tárhely elérési útjára lesz leképezve /home/svn/foo SVNParentPath /home/svn AuthType Basic AuthName "Subversion repository" AuthzSVNAccessFile /etc/apacheaPache2/svn svn-passwd érvényes-felhasználói kiszolgáló szükséges Apache teljes hozzáféréssel kell rendelkeznie a tárolóhoz: # chown -R www:www /home/svn Felhasználó létrehozása htpasswd: # htpasswd -c /etc/svn-passwd user1 #-c Fájl létrehozása

Hozzáférés-vezérlés svn.acl példa

# Alapértelmezett olvasási hozzáférés. A "* =" alapértelmezés szerint nem fog hozzáférni[/] * = r projekt1-fejlesztők = joe, jack, jane # Adjon írási engedélyt a fejlesztőknek@project1-developers=rw

Néhány parancs az SVN-tárház kezeléséhez

Lásd még: Subversion Gyors referenciakártya. Tortoise SVN, egy jó Windows felület.

Importálás

Importálás az adattárba új projekt könyvtárakat és fájlokat tartalmaz, használhatja a parancsot import. Ugyanezt a parancsot arra is használják, hogy egy már létező projekthez adjunk hozzá egy könyvtárat a tartalmával együtt. # svn segít importálni # Segítség parancsra # Adjon hozzá egy új könyvtárat és annak tartalmát a project1 src könyvtárához.# svn import /project1/newdir http://host.url/svn/project1/trunk/src -m "új könyvtár hozzáadása"

Tipikus SVN-parancsok

# svn co http://host.url/svn/project1/trunk # Rendeljen legújabb verzió # A címkék és ágak másolással jönnek létre# svn mkdir http://host.url/svn/project1/tags/ # Hozzon létre egy címkekönyvtárat# svn copy -m "Címke rc1 rel." http://host.url/svn/project1/trunk \ http://host.url/svn/project1/tags/1.0rc1 # svn állapot [--verbose] # Ellenőrizze a fájlok állapotát a munkakönyvtárban# svn add src/file.h src/file.cpp # Adjon hozzá két fájlt# svn commit -m "Új osztályfájl hozzáadva" # A változtatások elküldése üzenetben# svn ls http://host.url/svn/project1/tags/ # Az összes címke listája# svn move foo.c bar.c # Fájlok áthelyezése (átnevezése).# svn delete some_old_file # Fájlok törlése

Ezt a cikksorozatot a használat bevezetésének szenteljük SVN, szemszögből rendszeres felhasználó. A cikk azért készült, hogy segítsem kollégáimat a gyors tanulásban és használatban SVN. Kezdjük tehát az alapokkal.

Bevezetés

Subversion ( SVN) egy ingyenes és nyílt forráskódú verziókezelő rendszer. SVN lehetővé teszi a fájlok és könyvtárak kezelését, valamint a rajtuk idővel végrehajtott módosításokat. SVN a következő funkciókat biztosítja:

  1. A címtárváltozások szabályozása. SVN"virtuális" fájlrendszert használ, verziószámozási lehetőségekkel, amely képes nyomon követni a teljes könyvtárszerkezetek időbeli változásait
  2. Igaz sztori verziók. SVN lehetővé teszi fájlok és könyvtárak hozzáadását, törlését, másolását és átnevezését. Sőt, minden újonnan hozzáadott fájl a nulláról kezdi az életet, megtartva a saját változástörténetét
  3. A változtatások atomi elköteleződése. A változtatások mindegyike vagy teljesen a tárba kerül, vagy egyáltalán nem. Azok. ha a projekt módosításainak véglegesítésekor hiba történt a fájl feldolgozása során, akkor a teljes projekt módosításai nem kerülnek végrehajtásra
  4. Metaadatok verziókkal. Minden fájlnak és könyvtárnak megvan a maga tulajdonságkészlete, amelyet egy név és egy érték képvisel. Létrehozhat és menthet bármilyen szükséges tulajdonságnévpárt és azok értékeit. A fájlok tulajdonságai ugyanolyan verziójúak, mint a tartalmuk
  5. Az adatokkal való munka egységes módja. SVNészleli a fájlok közötti különbségeket egy speciális bináris algoritmus segítségével, amely egyformán működik szöveges és bináris fájlokkal is. A fájlok típusuktól függetlenül tömörített formában kerülnek a tárhelyre, és az egyes verziók közötti különbségek mindkét irányban továbbíthatók a hálózaton
  6. Hatékony ágak és címkék. SVN elágazásokat és címkéket hoz létre egy projekt egyszerű másolásával, a fájlrendszerek kemény hivatkozásaihoz hasonló mechanizmussal. Ennek köszönhetően az ágak és címkék létrehozásának műveletei kevés időt vesznek igénybe.


Alapfogalmak listája

  1. Adattár(adattár) a forráskódok, munkaanyagok és dokumentáció központi tárháza. Tetszőleges számú ügyfél csatlakozik a tárolóhoz, és olvassa vagy írja ezeket a fájlokat
  2. Működő példány/munkapéldány(WC) egy rendszeres könyvtárfa a számítógépen, amely fájlokat tartalmaz a projekten való munkához. A munkapéldány módosításai nem érhetők el a lerakat többi felhasználója számára mindaddig, amíg azokat véglegesítik.
  3. Törzs— fő fejlesztési irány
  4. Ág("Ágazat") egy másik iránytól függetlenül létező, de vele közös múltú fejlődési irány. Egy ág mindig valaminek a másolataként indul, és onnan indul el, létrehozva saját történelmét
  5. Címke("Címke") a projektfájlok egy meghatározott időpontban, egy külön mappa létrehozásával, kifejezetten kiválasztott változata.
  6. Felülvizsgálat— a repository revíziószáma, az adattáron belül a revíziószám egyedi érték
  7. Pénztár- egy csapat, amely elvégzi a projekt kezdeti átvételét a WC-ben található tárolóból.
  8. Elkövetni- egy parancs, amely véglegesíti a WC-ben lévő projektfájlok módosításait a Repository-ban.
  9. Frissítés- egy parancs, amely frissíti a WC-ben lévő projektfájlokat a tárolóból
  10. Visszaszáll- egy parancs, amely visszavonja a WC-ben lévő projektfájlok módosításait a lerakat verziószáma alapján.
  11. Összeolvad- egy parancs, amely a projekt különböző ágaiból származó fájlokat egyesíti, és az egyesítés eredményét a WC-be helyezi.
  12. Konfliktus- változtatások végrehajtása során felmerülő helyzet, amikor ugyanazokat a fájlokat több fejlesztő is megváltoztatta.
  13. Elhatározás- szabályrendszer a felmerülő konfliktusok megoldására.
  14. Importálás- egy parancs a fájlok fajának gyors másolásához a Repositoryba.
  15. Export- a projekt exportálási parancsa abban különbözik a checkouttól, hogy nem hoz létre szolgáltatási információkat a projekt mappáiban.
  16. Kapcsoló- parancs, amely átkapcsolja a WC-t egy másik fejlesztési ágra.
  17. Teremt, Hozzáadás, Töröl, Másolat, Mozog, Átnevezés- parancsok a tárolóban vagy WC-ben lévő fájlok és mappák kezelésére.

Szoftver

Munka a tárhellyel SVN alapján felülvizsgálták szoftver TortoiseSVN

Kivonat

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

Ha a jelölőnégyzet be van jelölve Kihagyni a külsőt

Ha egy adott változatot kér le, adja meg azt az URL után az -r paraméterrel.

Frissítés

Svn info URL_working_copy svn frissítés [-r rev] PATH

Több elem frissítése jelenleg nem atomi művelet a Subversionban. Ezért a TortoiseSVN először megtalálja a vezető változatot (HEAD) a lerakatban, majd frissíti az összes elemet arra a változatra, hogy elkerülje a vegyes változatú munkapéldány létrehozását.

Ha csak egy elem van kiválasztva frissítésre, vagy a kiválasztott elemek nem mind ugyanabból a tárolóból származnak, a TortoiseSVN egyszerűen frissíti a vezető verziót.

Itt nem használunk parancssori opciókat. Frissítés átdolgozásra az update parancsot is megvalósítja, de több funkciót kínál.

Frissítés átdolgozásra

Svn info URL_working_copy svn frissítés [-r rev] [-depth ARG] [--ignore-externals] PATH

A mélység kombinált mező elemei a -deptus argumentumhoz kapcsolódnak.

Ha a jelölőnégyzet be van jelölve Kihagyni a külsőt, használja a --ignore-externals opciót.

Fix

A TortoiseSVN-ben a véglegesítés párbeszédpanel számos Subversion parancsot használ. Az első szakasz egy állapotellenőrzés, amely azonosítja a munkapéldány azon elemeit, amelyek potenciálisan elkötelezhetők. Böngészhet ebben a listában, összehasonlíthatja a fájlokat az alapjukkal, és kiválaszthatja a véglegesítésbe bevonni kívánt elemeket.

Svn állapot -v PATH

Ha a jelölőnégyzet be van jelölve

Ha verzió nélküli fájlokat és mappákat jelöl meg, akkor ezek az elemek először a munkapéldányhoz kerülnek hozzáadásra.

Svn add PATH...

Ha az OK gombra kattint, a Subversion megkezdi a véglegesítés végrehajtását. Ha az összes fájl jelölőnégyzetét az alapértelmezett állapotában hagyja, a TortoiseSVN a munkapéldány egyetlen rekurzív véglegesítését használja. Ha törölt néhány fájl jelölését, akkor a nem rekurzív véglegesítést (-N) kell használni, és minden elérési utat külön kell megadni parancs sor rögzítéshez.

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

A LogMessage itt a naplóüzenet beviteli mezőjének tartalmát jelenti. Lehet, hogy üres.

Különbség

Svn diff PATH

Ha a fő helyi menü Diff parancsát használja, összehasonlítja a módosított fájlt az alapverziójával. A fenti parancs ICS-jének kimenete is ezt teszi, és kombinált különbségek formátumában állítja elő a kimenetet. A TortoiseSVN azonban nem használja ezt. A TortoiseSVN a TortoiseMerge programot (vagy egy tetszőleges diff programot) használja a szöveges fájlok közötti különbségek vizuális megjelenítésére, így nincs közvetlen megfelelője az SVN-nek.

Bármely két fájlt összehasonlíthatja a TortoiseSVN használatával, függetlenül attól, hogy verziókezelés alatt állnak-e. A TortoiseSVN egyszerűen betáplálja ezt a két fájlt a kiválasztott diff programba, és lehetővé teszi, hogy meghatározza, hol vannak a különbségek.

Magazin

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

Alapértelmezés szerint a TortoiseSVN 100 naplóüzenetet próbál kivonatolni a --limit metódussal. Ha a telepítések a régi API-k használatára kényszerülnek, akkor a második űrlapot használják a 100 változat naplóüzeneteinek lekérésére a lerakatból.

Ha a jelölőnégyzet be van jelölve Álljon meg a másolásnál/átnevezésnél, használja a --stop-on-copy opciót.

Változások ellenőrzése

Svn status -v PATH vagy svn status -u -v PATH

A kezdeti állapotellenőrzés csak a munkapéldányra néz. Ha rákattint Ellenőrizze a tárolást, akkor a tárat is ellenőrzik, hogy mely fájlokat változtatja meg a frissítés, ehhez pedig a -u opció szükséges.

Ha a jelölőnégyzet be van jelölve Verzió nélküli fájlok megjelenítése, a TortoiseSVN a verzió nélküli fájlokat és mappákat is megjeleníti a munkamásolat-hierarchiában, tiszteletben tartva a figyelmen kívül hagyási szabályokat. Ennek a tulajdonságnak nincs közvetlen megfelelője a Subversionban, mivel az svn status parancs nem kerül verzió nélküli mappákba.

Revíziós grafikon

A felülvizsgálati grafikon csak a TortoiseSVN által biztosított szolgáltatás. A parancssori kliensben nincs megfelelője.

Mit csinál a TortoiseSVN:

Svn info URL_working_copy svn log -v URL

ahol az URL található gyökér tárolást, majd elemzi a visszaküldött adatokat.

Tárhely Explorer

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

Az svn info segítségével meghatározhatja a lerakat gyökérét: ez a lerakatböngészőben megjelenő legfelső szint. E szint fölé nem léphetsz. Ezenkívül ez a parancs visszaadja a Storage Explorerben megjelenített összes zárolási információt.

Az svn lista meghívása listázza a mappa tartalmát a megadott URL-címhez és változathoz.

Ütközések szerkesztése

Ennek a parancsnak nincs megfelelője az ICS-ben. Úgy hívja, hogy TortoiseMerge ill külső eszköz háromutas diff/merge az ütközésben érintett fájlok megtekintéséhez és a használandó sorok kiválasztásához.

Letelepedett

Az Svn megoldotta a PATH-t

Átnevezés

Svn átnevezése CURRENT_PATH NEW_PATH

Töröl

Svn törlés PATH

Módosítások eltávolítása

Svn állapot -v PATH

Az első szakasz egy állapotellenőrzés, amely azonosítja azokat a munkapéldányban lévő elemeket, amelyeknél esetleg eltávolíthatók a változtatások. Megtekintheti a listát, összehasonlíthatja a fájlokat az adatbázissal, és kiválaszthatja azokat az elemeket, amelyekben el szeretné távolítani a módosításokat.

Az OK gombra kattintva a Subversion eltávolítja a változtatásokat. Ha az összes fájlkiválasztó jelzőt az alapértelmezett állapotában hagyja, a TortoiseSVN egyetlen rekurzív (-R) visszavonást alkalmaz a munkapéldány módosításaihoz. Ha törli néhány fájl bejelölését, akkor a módosítások eltávolításához minden elérési utat külön kell megadni a parancssorban.

Svn revert [-R] PATH...

Tisztítás

Svn tisztítás PATH

Blokk

Svn állapot -v PATH

Az első szakasz egy állapotellenőrzés, amely azonosítja a munkapéldányban található fájlokat, amelyek potenciálisan zárolhatók. Kiválaszthatja a blokkolni kívánt elemeket.

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

A LockMessage a zárolási üzenet mező tartalma. Lehet, hogy üres.

Ha a jelölőnégyzet be van jelölve Elfogó zárak, használja a --force opciót.

Blokkolás feloldása

Svn unlock PATH

Elágazás/Címke

Svn copy -m "LogMessage" URL URL vagy svn copy -m "LogMessage" vagy svn copy -m "LogMessage" PATH URL

Az Elágazás/Címke párbeszédpanel másolást hajt végre a tárolóba. 3 kapcsolható gomb van:

  • Vezető revízió az adattárban (HEAD)
  • A megadott változat az adattárban
  • Munkamásolat

amelyek megfelelnek a fenti három parancssori opciónak.

add – Fájlokat, könyvtárakat és szimbolikus hivatkozásokat ad hozzá, megjelölve azokat a későbbi tárolóba való felvételhez. A megjelölést követően a rendszer letölti és hozzáadja őket a tárhoz a változtatások első elfogadásakor. Ha hozzáadott valamit, de meggondolta magát a rögzítés előtt, az svn revert alparancs segítségével eltávolíthatja a hozzáadás jelölést.
svn add PATH...
$svn add tesztdir

hibáztatás (dicséret, megjegyzés, ann) – Soronként mutatja meg a szerzőt és a szerkesztőt a megadott fájlokhoz vagy URL-ekhez. A szöveg minden sora a szerző nevével (felhasználónévvel) és a verziószámmal kezdődik. Ez jelzi, hogy ki és mikor módosította utoljára ezt a sort.
svn hibáztatja a TARGET-et[@REV]…
$ svn blame http://svn.red-bean.com/repos/test/readme.txt

cat – Kinyomtatja a megadott fájlok vagy URL-ek tartalmát. A könyvtárak tartalmának listázásához használja az svn list-t.
svn cat TARGET[@REV]…
$ svn macska http://svn.red-bean.com/repos/test/readme.txt

checkout (co) – Munkamásolatot hoz létre az adattárban lévő adatok alapján. Ha a PATH ki van hagyva, akkor az URL alapneve lesz a munkamásolat-könyvtár neve. Ha több URL-címet ad meg, a megfelelő másolatok létrejönnek a PATH alkönyvtárban, mindegyik a saját könyvtárában, amely az URL alapnevéből származik.
svn checkout URL[@REV]…
svn checkout svn://svn.ru2web.ru/ru2web/branches/www-01/ /usr/home/vasia/ru2web.ru/app/

tisztítás – Rekurzív módon megtisztítja a munkapéldányt, eltávolítva a befejezetlen műveletekből származó zárakat. Amint megjelenik a „munkapéldány zárolva” hibaüzenet, futtassa ezt az alparancsot a régi zárolások eltávolításához és a munkapéldány működőképes állapotba hozásához.

Ha valamilyen oknál fogva az svn update parancs működése meghiúsult a futó külső diff programmal kapcsolatos problémák miatt (például rosszat kattintottam benne, vagy hálózati hiba történt), akkor a –diff3-cmd paramétert be kell állítani lehetővé teszi a másolat megtisztítását, hogy egy külső diff programmal befejeződjön az összes illesztés. A konfigurációs könyvtárat a –config-dir kapcsolóval is megadhatja, de ügyeljen arra, hogy ne használja túlzottan ezeket a beállításokat.

commit (ci) – A munkapéldányon végzett változtatásokat elküldi a lerakatba, hogy ott elmentse őket. Ha nem használja a –file vagy –message opciót, az svn elindít egy külső szerkesztőt a megjegyzés összeállításához. Olvassa el az editor-cmd paraméter leírását a "Config" részben.
Az svn commit minden rekurzívan talált zárcímkét elküld a tárolóhelyre, és feloldja az ezeknek a címkéknek megfelelő erőforrásokat, ha a –no-unlock paraméter nincs megadva. A „keresési terület” a PATH megadásával adható meg.
svn commit

másolás (cp) – Fájlokat munkamásolatba vagy tárhelyre másol. Az SRC és a DST elérési utak lehetnek a munkapéldányon belül, vagy URL-címek a lerakaton belül.
svn másolat SRC DST

törlés (del, remove, rm) – Elem törlése munkapéldányból vagy adattárból.
svn törlés PATH...
svn URL törlése...

diff (di) – A munkapéldány és a repository közötti különbségeket mutatja.
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500

export – Tiszta könyvtárfa exportálása (.svn mappák nélkül).

segítség (?, h) – Segítség.

import – Verzió nélküli fájlt vagy fát véglegesít a lerakatba.
svn import URL

info – Információk megjelenítése egy helyi vagy távoli elemről.
svn info

lista (ls) – A tárolóban lévő könyvtárak listája.
svnlist...]
$ svn lista http://svn.red-bean.com/repos/test/support

zárolás – A munkapéldány zárolása a tárolóban, hogy más felhasználó ne módosíthassa az adott elérési utat.
svn lock CÉL…
$ svn lock tree.jpg house.jpg

napló – Naplóüzenetek megjelenítése.
svnlog
svn napló URL-je
$svn napló

egyesítése – különbségek alkalmazása két forrás között.
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch

mkdir – Hozzon létre egy könyvtárat egy verzióvezérelt tárolóban.
$svn mkdir newdir

mozgatás (mv, átnevezés, ren) – Fájl vagy könyvtár áthelyezése.
svn move SRC DST

propdel (pdel, pd) – Tulajdonságok eltávolítása fájlokból, könyvtárakból vagy változatokból.
svn propdel PROPNAME
svn propdel PROPNAME –revprop -r REV

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

megoldva – Távolítsa el az „ütközéseket” a fájlok vagy könyvtárak munkapéldányaiból.
Az svn megoldotta a PATH-t…

visszaállítás – Az összes helyi módosítás visszaállítása.
$ svn revert myprj.phtml

állapot (stat, st) – Fájlok vagy könyvtárak munkapéldányának állapota.
$svn állapot wc

switch (sw) – Frissítse a munkapéldányt egy másik URL-re.

feloldás – Feloldja a munkapéldány zárolását.

frissítés (fel) – A munkapéldány frissítése.