[ 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 13:01]
zeman Jak je to s právy?
subversion [2010/02/12 09:06]
zeman Typo.
Line 16: Line 16:
   - nalogujete se na svn.ufal.ms.mff.cuni.cz (= svn.ms.mff.cuni.cz) (ucty byly preneseny z ufal.mff.cuni.cz)   - 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>   - pro vytvoreni projektu pouzijete skript (kteremu date jeste jmeno projektu):<code>/home/howto/create_new_project.sh <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!+  - 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/svn'' jsou určené pro přístup protokolem ''https''.
  
 ==== Konfigurace webového rozhraní SVN (preferováno) ==== ==== Konfigurace webového rozhraní SVN (preferováno) ====
Line 32: Line 32:
 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) ===
 +
 +Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/home/svn/users/passwords'' (na coz prava mate) pomoci:
 +
 +    htpasswd -bs /home/svn/users/passwords <uzivatelske_jmeno> <heslo>
 +nebo
 +    htpasswd -s /home/svn/users/passwords <uzivatelske_jmeno>
 +    # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu
  
 ==== Konfigurace protokolu SVN (raději nepoužívat, nekryptovaný přenos) ==== ==== Konfigurace protokolu SVN (raději nepoužívat, nekryptovaný přenos) ====
Line 42: Line 50:
     vim /home/svn/repos/$PROJEKT/conf/passwd  # vytvořit uživatele     vim /home/svn/repos/$PROJEKT/conf/passwd  # vytvořit uživatele
     vim /home/svn/repos/$PROJEKT/conf/authz   # nastavit jim práva     vim /home/svn/repos/$PROJEKT/conf/authz   # nastavit jim práva
- 
  
 Vzory nastaveni pristupu jsou zde: ''/home/svn/repos/default/conf'' Vzory nastaveni pristupu jsou zde: ''/home/svn/repos/default/conf''
  
 Pozor - hesla se tu nastavuji jako textove retezce, neni to htaccess! Po siti tedy tecou nekryptovane! Pozor - hesla se tu nastavuji jako textove retezce, neni to htaccess! Po siti tedy tecou nekryptovane!
- 
  
 ==== Konfigurace přístupu k systému Trac ==== ==== Konfigurace přístupu k systému Trac ====
  
-Trac - pouziva take overovani vuci:+Trac poskytuje webové rozhraní k repozitáři a dalším službám kolem správy projektu. Používá tutéž evidenci uživatelů a hesel jako webový (''https'') přístup k svn, tedy: 
     AuthUserFile /home/svn/users/passwords     AuthUserFile /home/svn/users/passwords
  
-Trac ma navic vlastni system prav. Trac vas rozpozna podle loginu, se kterym jste se prihlasili pri http autentizaci, ktera je pri pristupu vynucena. Pokud v danem projektu nejste zavedeni, tak se k nemu dostanete nejakymi default pravy.+Při přístupu k webovému rozhraní Trac vyžaduje http autentizaci (zde tedy zadáte jméno a heslokteré máte zavedené v souboru ''/home/svn/users/passwords''). Systém práv (na rozdíl od autentizace) má Trac vlastní a můžete ho upravovat přes webové rozhraní nebo příkazem ''trac-admin''. Pokud v daném projektu nejste zavedeni, dostanete se k němu nějakými výchozími právy.
  
 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 69: Line 84:
 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řidávání vlastních uživatelů pro webové přístupy (SVN Trac) ==== +==== Přístup k repozitáři z Microsoft Windows ====
- +
-Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/home/svn/users/passwords'' (na coz prava mate) pomoci: +
- +
-    htpasswd -bs /home/svn/users/passwords <uzivatelske_jmeno> <heslo> +
-nebo +
-    htpasswd -s /home/svn/users/passwords <uzivatelske_jmeno> +
-    # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu+
  
 +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 128: Line 137:
  
 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 153: Line 160:
 /home/howto/create_new_project.sh interset /home/howto/create_new_project.sh interset
 cd /home/svn/repos/interset/conf cd /home/svn/repos/interset/conf
 +# Přístup k svn přes protokol svn (nešifrovaně!)
 vi authz vi authz
-vi passwd</code>+vi passwd 
 +# Přístup k svn a tracu přes protokol https 
 +vi /home/svn/users/passwords 
 +# Pokud jsem se tam ještě nenašel, můžu své heslo nastavit takto: 
 +htpasswd -s /home/svn/users/passwords zeman 
 +# Přístupová práva k svn repozitáři prostřednictvím https (obecně i specificky pro tento projekt) 
 +vi /home/svn/permissions/svnauthz.conf 
 +# Přístupová práva ke správě projektu v tracu 
 +# Mělo by jít též editovat ve webovém rozhraní 
 +trac-admin /home/trac/interset</code> 
 + 
 +Serverový projekt a repozitář jsou založené a přístupová práva doufejme správně nastavena. Teď se tedy můžeme pustit do vlastního přenosu dat projektu. Samozřejmě předpokládáme, že chceme zachovat historii revizí, jinak by stačilo prostě ze zdrojového repozitáře vybalit pracovní kopii a na server ji naimportovat jako nový dosud neverzovaný projekt. K přenosu projektu včetně historie je potřeba použít příkazy nástroje ''svnadmin''. Podrobnější návod si lze přečíst [[http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate|tady]]. Důležité je vědět, že na rozdíl od klienta ''svn'', který může přistupovat k repozitáři vzdáleně přes síťové protokoly, ''svnadmin'' musí běžet na stroji, na kterém je repozitář fyzicky uložen. 
 + 
 +<code>svnadmin dump /net/work/public/SVN/interset > interset.svndump 
 +scp interset.svndump svn.ms.mff.cuni.cz:/home/zeman 
 +rm interset.svndump 
 +ssh svn.ms.mff.cuni.cz 
 +svnadmin load /home/svn/repos/interset < 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 
 +exit 
 +# Replace the working copy of local project by a working copy of the server project 
 +cd .. 
 +mv interset interset.localwc 
 +svn --username zeman checkout https://svn.ms.mff.cuni.cz/svn/interset/trunk 
 +mv trunk interset 
 +cd interset</code>
  
-Poznámka: systém přidělování práv je složitý a nezdokumentovaný. Ještě existuje centrální přehled uživatelů a jejich hesel pro všechny repozitáře na serveru SVN. Leží v ''/home/svn/users/passwords''. Hesla jsou zde zašifrovaná a nejsem si teď jist, jakým způsobem se nastavují. Snad nějaký příkaz ''svnpasswd''? Nebo ''htpasswd''? Pak také existuje centrální evidence práv uživatelů v souboru ''/home/svn/permissions/svnauthz.conf''. V ní lze nastavovat jednak výchozí práva, jednak práva pro jednotlivé projekty. Není mi ale jasné, kdo dostane přednost, když jsou pro konkrétní projekt nastavena práva jak tady, tak přímo u daného projektu v ''/home/svn/repos/PROJEKT/conf''. 
  
 ===== 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 ]