[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
subversion [2009/02/19 15:05]
zeman Ještě checkout.
subversion [2011/08/22 14:42]
fucik
Line 3: Line 3:
 Subversion (''svn'') je nástroj pro archivaci (a v případě potřeby obnovu) starších verzí softwaru, který vyvíjíte. Pokud se vás v jednom projektu hrabe víc, Subversion vám pomůže ohlídat, abyste si vzájemně neničili práci. Subversion (''svn'') je nástroj pro archivaci (a v případě potřeby obnovu) starších verzí softwaru, který vyvíjíte. Pokud se vás v jednom projektu hrabe víc, Subversion vám pomůže ohlídat, abyste si vzájemně neničili práci.
  
-Subversion vám poskytuje různé možnosti, kde založit tzv. **repozitář** (tedy archív verzí vašeho projektu), a různé možnosti, jak k němu přistupovat. **Lokální repozitář** vám stačí, používáte-li Subversion pro archivaci projektu, na kterém pracujete pouze vy, případně i další členové ÚFALu, ale všem vám stačí přistupovat k repozitáři z terminálu či skriptů běžících na linuxových počítačích na ÚFALu. Lokální repozitář je prostě podstrom adresářové struktury na síťových discích (konkrétně v ''/net/work/public/SVN'', ale můžete si ho vytvořit i jinde). Když chcete s lokálním repozitářem pracovat, musíte mít na dané místo souborový přístup. **Serverový repozitář** využijete, jestliže potřebujete s repozitářem pracovat z počítače, ze kterého není přímo vidět disk, na kterém je repozitář uložen (např. z Windows, z domova) nebo pokud s vámi na projektu spolupracují lidé vně ÚFALu, kteří ani úplný přístup do naší sítě nemají. U serverového repozitáře je potřeba nakonfigurovat metody, jakými se k němu bude po síti přistupovat, a také přístupová práva uživatelů.+Subversion vám poskytuje různé možnosti, kde založit tzv. **repozitář** (tedy archív verzí vašeho projektu), a různé možnosti, jak k němu přistupovat. **Lokální repozitář** vám stačí, používáte-li Subversion pro archivaci projektu, na kterém pracujete pouze vy, případně i další členové ÚFALu, ale všem vám stačí přistupovat k repozitáři z terminálu či skriptů běžících na linuxových počítačích na ÚFALu. Lokální repozitář je prostě podstrom adresářové struktury na síťových discích (konkrétně v ''/net/work/public/SVN'', ale můžete si ho vytvořit i jinde). Když chcete s lokálním repozitářem pracovat, musíte mít na dané místo souborový přístup. **Serverový repozitář** využijete, jestliže potřebujete s repozitářem pracovat z počítače, ze kterého není přímo vidět disk, na kterém je repozitář uložen (např. z Windows, z domova) nebo pokud s vámi na projektu spolupracují lidé vně ÚFALu, kteří ani úplný přístup do naší sítě nemají. U serverového repozitáře je potřeba nakonfigurovat metody, jakými se k němu bude po síti přistupovat, a také přístupová práva uživatelů. Od určité doby (2007?) už prakticky všechny nové repozitáře na ÚFALu vznikají jako serverové. Zakládání lokálních repozitářů je možná i nadále technicky možné, ale není nijak zvlášť doporučeno ani podporováno.
  
 Pro projekty ÚFALu, na nichž chcete spolupracovat i s lidmi zvenku, (serverové repozitáře) použijte vyhrazený stroj [[internal:svn.ms.mff.cuni.cz]]. Návod na konfiguraci najdete níže v kapitole [[#Subversion Server]]. Návod na vytvoření jednoduchého lokálního repozitáře najdete níže v kapitole [[#Lokální Subversion]]. Pro projekty ÚFALu, na nichž chcete spolupracovat i s lidmi zvenku, (serverové repozitáře) použijte vyhrazený stroj [[internal:svn.ms.mff.cuni.cz]]. Návod na konfiguraci najdete níže v kapitole [[#Subversion Server]]. Návod na vytvoření jednoduchého lokálního repozitáře najdete níže v kapitole [[#Lokální Subversion]].
  
-===== Subversion Server =====+===== Subversion/Git Server (po prestavbe 08/2011) =====
  
-Toto je Milanovo e-mailové shrnutí z 26.9.2007. Týká se konfigurace serverových repozitářů na serveru svn.ms.mff.cuni.cz.+Server: svn.ms.mff.cuni.cz
  
 Mili kolegove,  Mili kolegove, 
- po diskusi s Ondrou Bojarem a drobnem vylepseni naseho serveru svn jeste jednou sepisuji co je potreba si projit nastavit pri konfiguraci noveho projektu:+  po ctyrech letech provozu jsem reimplementoval sluzby naseho svn serveru na novem HW i SW. Nyni mame k dispozici vice prostoru 
 +  cele reseni bezi na systemu Debian 6 Squeeze. Doslo k drobnym zmenam v konfiguraci novych repozitaru, nicmene prechod  
 +  by mel byt temer transparentni. 
 +   
 +  Co jsem zachoval: 
 +   - uzivatelske ucty a hesla v systemu (pro ssh pristup) 
 +   - uzivatelske ucty, zavedene pro https autentizaci 
 +   - ucty a system prav pro pristup pres svnserve a websvn 
 +   - veskera data systemu Trac a stav repozitaru 
 +   
 +   Co je zmeneno: 
 +    - soubor s ucty a hesly pro https autentizaci je nyni: /home/DATA/repository_passwords 
 +    - soubor pro nastaveni prav v svn repozitarich je: /home/DATA/svnauthz.conf 
 +    - stare cesty jsou nalinkovany na novou strukturu: 
 +          - /home/DATA/svn  (repozitare svn) 
 +          - /home/DATA/git  (repozitare git) 
 +          - /home/DATA/trac (data Tracu pro obe verze repozitaru)
  
-  - nalogujete se na svn.ufal.ms.mff.cuni.cz (= svn.ms.mff.cuni.cz) (ucty byly preneseny z ufal.mff.cuni.cz) + 
-  - pro vytvoreni projektu pouzijete skript (kteremu date jeste jmeno projektu):<code>/home/howto/create_new_project.sh <jmeno_projektu></code> + Podivejme se, co je potreba potreba si projit a nastavit pri konfiguraci noveho projektu svn/git: 
-  - pak se rozhodnete kterymi cestami budete s projektem pracovat - nejlepsi je asi nakonfigurovat vsechny (viz. nize) - tedy svn, webovy pristup do svn a Trac (take webovy). Vsude jsou prednastaveny nejake zakladni ucty, ale nejlepsi je tyto veci upravit podle vlastnich potreb. Napriklad nemusite chtit, aby ufal/maly... mel rw prava ve vasem projektu, jak tomu defaultne je! Podrobnosti jsou uvedené níže. Autentikační soubory, které jsou uložené přímo u vašeho repozitáře ve složce ''conf'', jsou určené pro přístup protokolem ''svn'', zatímco soubory uložené na centrálních místech ''/home/svn'' jsou určené pro přístup protokolem ''https''.+ 
 +  - nalogujete se na svn.ufal.ms.mff.cuni.cz (= svn.ms.mff.cuni.cz) 
 +  - rozhodnete se, zda budete vytvaret SVN nebo GIT repozitar 
 +  - pro vytvoreni projektu pouzijete skript (kteremu date jeste jmeno projektu)
 +     SVN: <code>/home/howto/Setup_svn-trac_repository.sh <jmeno_projektu></code> 
 +     GIT: <code>/home/howto/Setup_git-trac_repository.sh <jmeno_projektu></code> 
 +  - repozitare se vzdy vytvori i s Trac rozhranim; pokud ho vylozene nechcete, smazte struktury Tracu: 
 +    <code>rm -rf /home/DATA/trac/<jmeno_projektu></code> 
 +        
 +  - pak se rozhodnete kterymi cestami budete s projektem pracovat - nejlepsi je asi nakonfigurovat vsechny (viz. nize) - tedy svn, webovy pristup do svn a Trac (take webovy). Vsude jsou prednastaveny nejake zakladni ucty, ale nejlepsi je tyto veci upravit podle vlastnich potreb. Napriklad nemusite chtit, aby ufal/maly... mel rw prava ve vasem projektu, jak tomu defaultne je! Podrobnosti jsou uvedené níže. Autentifikační soubory, které jsou uložené přímo u vašeho repozitáře ve složce ''conf'', jsou určené pro přístup protokolem ''svn'', zatímco soubory uložené na centrálních místech ''/home/DATA/'' jsou určené pro přístup protokolem ''https''.
  
 ==== Konfigurace webového rozhraní SVN (preferováno) ==== ==== Konfigurace webového rozhraní SVN (preferováno) ====
Line 31: Line 56:
  
 O přidávání uživatelů a hesel viz níže. O přidávání uživatelů a hesel viz níže.
- 
  
 === Přidávání vlastních uživatelů pro webové přístupy (SVN i Trac) === === Přidávání vlastních uživatelů pro webové přístupy (SVN i Trac) ===
Line 66: Line 90:
 Takto spustíte konfigurační skript pro Trac vašeho projektu: Takto spustíte konfigurační skript pro Trac vašeho projektu:
     trac-admin /home/trac/$PROJEKT     trac-admin /home/trac/$PROJEKT
 +
 +Chcete-li mít přístup k nastavení Tracu pro tento projekt i přes webové rozhraní Tracu, uvnitř ''trac-admin'' zadejte tento příkaz (nahraďte ''$USER'' svým uživatelským jménem v Tracu):
 +
 +<code>permission add $USER TRAC_ADMIN</code>
 +
 +Ve webovém rozhraní (https://svn.ms.mff.cuni.cz/projects/$PROJEKT) se pak objeví tlačítko //Admin//. V něm ještě klikněte na //Plugins//, pak na doplněk //IniAdmin0.2// a povolte ho. Tím se na administrátorské stránce zpřístupní i všechna nastavení z ''trac.ini''.
 +
 +**Upozornění:** V sekci //Permissions// vidíte a můžete měnit práva uživatelů k jednotlivým operacím v Tracu. Nějaká práva mohou mít (a defaultně mají) i anonymní uživatelé, ale vzhledem k tomu, že naše instalace Tracu si vynucuje přihlášení, žádný uživatel by neměl být anonymní. Pokud někomu sdělíte uživatelské jméno ''ufalr'' (a heslo, které k němu uvidíte v konfiguračním souboru ''passwd'' vašeho projektu po jeho založení), dali jste mu read-only přístup do repozitáře svn (přes protokol svn), ale v Tracu může některé věci i měnit (libovolný neanonymní uživatel defaultně může psát do tracové wiki, zakládat a měnit tickety). To proto, že pro Trac už to není anonym, nýbrž "authenticated user".
  
 === Časté problémy === === Časté problémy ===
Line 76: Line 108:
  
 Ověřte, že v souboru ''/home/trac/PROJEKT/conf/trac.ini'' máte nastavenu proměnnou ''default_charset'' na ''utf-8''. **Default je chybný, iso-8859-15.** Ověřte, že v souboru ''/home/trac/PROJEKT/conf/trac.ini'' máte nastavenu proměnnou ''default_charset'' na ''utf-8''. **Default je chybný, iso-8859-15.**
 +
 +==== Přístup k repozitáři z Microsoft Windows ====
 +
 +Pracovní kopii projektu můžete mít i ve Windows. Tím se nemá na mysli, že vybalíte kopii pomocí ''svn checkout'' někde na Linuxu a pak si ji přenesete do Windows třeba pomocí SFTP. Můžete mít plnohodnotnou a synchronizovanou pracovní kopii, jestliže použijete windowsového klienta svn. Takovým klientem je [[http://tortoisesvn.net/|Tortoise SVN]]. Funguje jako rozšíření shellu Windows, to znamená, že se vám plně integruje do Průzkumníka Windows. Příkazy pro práci s repozitářem pak vyvoláváte pomocí kontextové nabídky, která se zobrazí, když kliknete na soubor nebo adresář pravým tlačítkem myši.
  
 ===== Lokální Subversion ===== ===== Lokální Subversion =====
Line 126: Line 162:
  
 Pokud jste si jisti, že pro tento projekt nebudete nikdy potřebovat větve ani otagované verze, můžete pravděpodobně vynechat vytváření podsložek ''branches'' a ''tags'' a celý projekt posunout o patro výš. To jsem ale nezkoušel. Pokud jste si jisti, že pro tento projekt nebudete nikdy potřebovat větve ani otagované verze, můžete pravděpodobně vynechat vytváření podsložek ''branches'' a ''tags'' a celý projekt posunout o patro výš. To jsem ale nezkoušel.
- 
- 
- 
- 
- 
  
  
Line 175: Line 206:
 svnadmin load /home/svn/repos/interset < interset.svndump svnadmin load /home/svn/repos/interset < interset.svndump
 rm interset.svndump rm interset.svndump
 +trac-admin /home/trac/interset
 +# This happens inside trac-admin: resynchronize its history with svn.
 +Trac [/home/trac/interset]> resync
 +Trac [/home/trac/interset]> exit
 # Log off svn server, continue on local machine # Log off svn server, continue on local machine
 exit exit
Line 180: Line 215:
 cd .. cd ..
 mv interset interset.localwc mv interset interset.localwc
-mkdir interset +svn --username zeman checkout https://svn.ms.mff.cuni.cz/svn/interset/trunk 
-cd interset +mv trunk interset 
-svn --username zeman checkout https://svn.ms.mff.cuni.cz/svn/interset/trunk</code>+cd interset</code> 
  
 ===== Přechod z CVS pod SVN ===== ===== Přechod z CVS pod SVN =====
 +
 +//(Za kopii poznámek děkuji Edovi Bejčkovi.)//
 +
 +  * [[http://www.pushok.com/soft_svn_vscvs.php|Srovnání výhod a nevýhod CVS a SVN]]
 +  * [[http://svn.collab.net/repos/svn/trunk/doc/user/cvs-crossover-guide.html|Jak zacházet s SVN, jestliže umím CVS]]
 +  * [[http://svnbook.red-bean.com/en/1.4/index.html|SVN book]]
 +
 +Existuje pythonovský skript, ktery převod provádí. Je nastavitelné, jak kompletně to má převádět staré revize. Stáhl jsem cvs2svn z&nbsp;webu, tutoriálek zde: http://www.onlamp.com/pub/a/onlamp/2005/10/03/cvs-to-subversion-with-cvs2svn.html. Potom kopie CVS repository, oprava dvou chyb, překlopení do SVN a
 +nahrání na úfalí SVN server (heslo stejne jako na stroj ufal):
 +
 +<code bash>$ cp -r /net/data/CVS-CKL/vallex-group vallex-cvs
 +$ rm vallex-cvs/data/VALLEX-m/CNK-sentences/701.html,v
 +$ rm vallex-cvs/backup-pred-prohozenim-poli/data/VALLEX-m/CNK-sentences/701.html,v
 +$ cvs2svn -s vallex --encoding=cp1250 --encoding=L2 --encoding=utf8
 +vallex-cvs/ | tee logfile.txt
 +$ scp -r vallex bejcek@svn:/home/svn/repos</code>
 +
 +Danovy poznámky:
 +
 +Poslední krok s&nbsp;kopírováním repozitáře SVN na server se mi nepovedl. Repozitář na serveru už existoval (byť prázdný), založil ho někdo jiný a u některých souborů nebo složek byl problém s&nbsp;přístupovými právy. Zkouším tedy jinou cestu. Nejdříve vyrobím pouze "dump" SVN:
 +
 +<code>cvs2svn-2.2.0/cvs2svn --dumpfile biblio.svndump --encoding=cp1250 --encoding=L2 --encoding=utf8 \
 +    biblio-cvs/ | tee logfile.txt</code>
 +
 +Potom budu postupovat podobně jako při stěhování lokálního repozitáře SVN na server popsaném výše.
 +
 +<code>scp biblio.svndump svn.ms.mff.cuni.cz:/home/zeman
 +rm biblio.svndump
 +ssh svn.ms.mff.cuni.cz
 +svnadmin load /home/svn/repos/biblio < biblio.svndump
 +rm biblio.svndump</code>
 +
 +==== Zastaralý a velmi amatérský návod ====
  
 Rozmyslete si, zda chcete zachovat pouze aktuální verzi vašeho projektu, nebo i některé starší. Pokud chcete zachovat pouze aktuální verzi, vybalte si ji do nějaké pracovní složky pomocí ''cvs checkout'' a postupujte podle výše uvedeného návodu pro přidání projektu pod SVN. Rozmyslete si, zda chcete zachovat pouze aktuální verzi vašeho projektu, nebo i některé starší. Pokud chcete zachovat pouze aktuální verzi, vybalte si ji do nějaké pracovní složky pomocí ''cvs checkout'' a postupujte podle výše uvedeného návodu pro přidání projektu pod SVN.

[ Back to the navigation ] [ Back to the content ]