[ 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 [2008/09/19 14:05]
zeman Undoing changes.
subversion [2009/11/19 17:14]
zeman resync
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. 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''.
  
 ==== 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.
  
-==== Konfigurace protokolu SVN ====+=== 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) ====
  
 Toto rozhraní je užíváno SVN klienty, kteří dostanou repository udanou ve tvaru ''svn...'', tj. např.: Toto rozhraní je užíváno SVN klienty, kteří dostanou repository udanou ve tvaru ''svn...'', tj. např.:
Line 41: 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''
Line 49: Line 57:
 ==== 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):
  
-==== Přidávání vlastních uživatelů pro webové přístupy (SVN i Trac) ====+<code>permission add $USER TRAC_ADMIN</code>
  
-Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/home/svn/users/passwords'' (na coz prava mate) pomoci:+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''.
  
-    htpasswd -bs /home/svn/users/passwords <uzivatelske_jmeno> <heslo+**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".
-nebo +
-    htpasswd -s /home/svn/users/passwords <uzivatelske_jmeno> +
-    # na heslo budete dotázániheslo se nezobrazí ani na terminálu+
  
 +=== Časté problémy ===
 +
 +== V tracu chybí tlačítko Browse Source ==
 +
 +Ověřte, že v souboru ''/home/trac/PROJEKT/conf/trac.ini'' máte nastavenu proměnnou ''repository_dir'' na ''/home/svn/repos/PROJEKT''.
 +
 +== V prohlížení kódu se neukazuje Unicode ==
 +
 +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 117: 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.
 +
 +
 +===== Přechod z lokálního repozitáře na serverový =====
 +
 +Nepamatujete si, kde vlastně leží repozitář vašeho projektu? Nacházíte-li se ve své pracovní kopii projektu, příkazem ''svn info'' to zjistíte:
 +
 +<code>10:58 zen:/export/home/zeman/projekty/interset> svn info
 +Path: .
 +URL: file:///net/work/public/SVN/interset/trunk
 +Repository Root: file:///net/work/public/SVN/interset
 +Repository UUID: 9edd2012-306b-417f-90a6-873db92f1308
 +Revision: 7
 +Node Kind: directory
 +Schedule: normal
 +Last Changed Author: zeman
 +Last Changed Rev: 7
 +Last Changed Date: 2009-02-19 10:58:20 +0100 (Thu, 19 Feb 2009)</code>
 +
 +Vzhledem k tomu, že URL ve výše uvedeném hlášení začíná <nowiki>"file://",</nowiki> jde o lokální repozitář. Nyní je tedy potřeba založit prázdný serverový repozitář podle postupu uvedeného výše.
 +
 +<code>ssh svn.ms.mff.cuni.cz
 +/home/howto/create_new_project.sh interset
 +cd /home/svn/repos/interset/conf
 +# Přístup k svn přes protokol svn (nešifrovaně!)
 +vi authz
 +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>
 +
  
 ===== 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 ]