Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
subversion [2009/02/19 11:24] zeman Přechod z lokálního repozitáře na serverový. |
subversion [2011/11/03 19:21] ufal nepotrebne <code> tagy odstraneny |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Subversion ====== | + | ====== Subversion |
Subversion ('' | Subversion ('' | ||
- | 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 ''/ | + | 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 ''/ |
Pro projekty ÚFALu, na nichž chcete spolupracovat i s lidmi zvenku, (serverové repozitáře) použijte vyhrazený stroj [[internal: | Pro projekty ÚFALu, na nichž chcete spolupracovat i s lidmi zvenku, (serverové repozitáře) použijte vyhrazený stroj [[internal: | ||
+ | ===== Subversion/ | ||
- | ===== Subversion | + | Server svn.ms.mff.cuni.cz |
- | + | ||
- | Toto je Milanovo e-mailové shrnutí z 26.9.2007. Týká se konfigurace serverových repozitářů na serveru | + | |
Mili kolegove, | Mili kolegove, | ||
- | po diskusi s Ondrou Bojarem a drobnem vylepseni | + | |
+ | a 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: / | ||
+ | - soubor pro nastaveni prav v svn repozitarich je: / | ||
+ | - stare cesty jsou nalinkovany na novou strukturu: | ||
+ | - / | ||
+ | - / | ||
+ | - / | ||
+ | |||
+ | Co je nove: | ||
+ | - podpora zalozeni repozitare Git | ||
+ | - podpora propojeni systemu Trac s git repozitarem | ||
+ | - pristup ke git repozitari pres https a ssh | ||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | - 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: / | ||
+ | |||
+ | GIT: / | ||
+ | |||
+ | Repozitare se vzdy vytvori i s Trac rozhranim; pokud ho vylozene nechcete, smazte struktury Tracu: | ||
- | | + | |
- | - pro vytvoreni projektu pouzijete skript (kteremu date jeste jmeno projektu):< | + | |
- | - 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/ | + | Pak se rozhodnete kterymi cestami budete s projektem pracovat - nejlepsi je asi nakonfigurovat vsechny (viz. nize) - tedy svn, webovy pristup do svn/gitu a Trac (take webovy). Vsude jsou prednastaveny nejake zakladni ucty, ale nejlepsi je tyto veci upravit podle vlastnich potreb. Napriklad nemusite chtit, aby ufal/ |
==== Konfigurace webového rozhraní SVN (preferováno) ==== | ==== Konfigurace webového rozhraní SVN (preferováno) ==== | ||
Line 23: | Line 56: | ||
< | < | ||
- | Co se tyce svn weboveho rozhrani, | + | Co se tyce svn weboveho rozhrani, modul ma nasledujici |
- | * uzivatele: '' | + | * uzivatele: '' |
- | * jejich opravneni: '' | + | * jejich opravneni: '' |
- | O zbytek se stara webovy modul subversion | + | O zbytek se stara webovy modul subversion. |
- | Konfiguraky jsou globalni, tj. pro vsechny projekty spolecne. | + | Konfiguraky jsou globalni, tj. pro vsechny projekty spolecne, v svnauthz.conf jsou pro jednotlive projekty sekce. |
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, GIT i Trac) === | ||
+ | |||
+ | Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/ | ||
+ | |||
+ | htpasswd -bs / | ||
+ | nebo | ||
+ | htpasswd -s / | ||
+ | # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu | ||
+ | |||
+ | ==== Konfigurace pristupu ke Git repozitari ==== | ||
+ | |||
+ | Ke Git repozitarum je mozne v principu pristupovat dvema zpusoby: | ||
+ | |||
+ | * nahledem pres Gitweb rozhrani: https:// | ||
+ | |||
+ | * git klientem pres https: < | ||
+ | |||
+ | * pres ssh: < | ||
+ | |||
+ | V teto konfiguraci git neumi rozlisovat RO a RW uzivatele (jedine pres ssh a ACL prava). Pri pristupu pres https | ||
+ | je pouzivan autentizacni soubor / | ||
+ | Tuto funkcionalitu castecne doplnuje opt system Gitosis, ale prozatim jsem ho neinstaloval. Komunikace pri jeho pouziti probiha pres ssh, na serveru bezi Gitosis server pod uzivatelem Gitosis a uzivatele jsou rozlisovani diky certifikatum pro ssh, ktere | ||
+ | jsou pro ne po jednom vygenerovany. | ||
Line 40: | Line 97: | ||
Pristupova prava pro svn protokol se urcuji pro kazdy projekt nezavisle, v adresari conf v dane repository (jak je vytvorena mym skriptem), tj. napr.: | Pristupova prava pro svn protokol se urcuji pro kazdy projekt nezavisle, v adresari conf v dane repository (jak je vytvorena mym skriptem), tj. napr.: | ||
- | vim /home/svn/repos/ | + | vim /home/DATA/svn/ |
- | vim /home/svn/repos/ | + | vim /home/DATA/svn/ |
- | + | Vzory nastaveni pristupu jsou zde: ''/ | |
- | Vzory nastaveni pristupu jsou zde: ''/ | + | |
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ý ('' |
- | AuthUserFile /home/svn/ | + | |
- | Trac ma navic vlastni system prav. Trac vas rozpozna podle loginu, se kterym jste se prihlasili pri http autentizaci, | + | AuthUserFile / |
+ | |||
+ | Při přístupu k webovému rozhraní | ||
Takto spustíte konfigurační skript pro Trac vašeho projektu: | Takto spustíte konfigurační skript pro Trac vašeho projektu: | ||
- | trac-admin / | + | trac-admin /home/DATA/ |
+ | |||
+ | Chcete-li mít přístup k nastavení Tracu pro tento projekt i přes webové rozhraní Tracu, uvnitř '' | ||
+ | |||
+ | < | ||
+ | |||
+ | Ve webovém rozhraní (https:// | ||
+ | |||
+ | **Upozornění: | ||
=== Časté problémy === | === Časté problémy === | ||
Line 63: | Line 127: | ||
== V tracu chybí tlačítko Browse Source == | == V tracu chybí tlačítko Browse Source == | ||
- | Ověřte, že v souboru ''/ | + | Ověřte, že v souboru ''/ |
== V prohlížení kódu se neukazuje Unicode == | == V prohlížení kódu se neukazuje Unicode == | ||
Line 69: | Line 133: | ||
Ověřte, že v souboru ''/ | Ověřte, že v souboru ''/ | ||
- | ==== Přidávání vlastních uživatelů pro webové přístupy (SVN i Trac) ==== | + | ==== Přístup k repozitáři z Microsoft Windows |
- | + | ||
- | Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/ | + | |
- | + | ||
- | htpasswd -bs / | + | |
- | nebo | + | |
- | htpasswd -s / | + | |
- | # 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í '' | ||
===== Lokální Subversion ===== | ===== Lokální Subversion ===== | ||
Line 128: | Line 186: | ||
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 '' | 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 '' | ||
+ | |||
===== Přechod z lokálního repozitáře na serverový ===== | ===== Přechod z lokálního repozitáře na serverový ===== | ||
Line 144: | Line 203: | ||
Last Changed Rev: 7 | Last Changed Rev: 7 | ||
Last Changed Date: 2009-02-19 10:58:20 +0100 (Thu, 19 Feb 2009)</ | Last Changed Date: 2009-02-19 10:58:20 +0100 (Thu, 19 Feb 2009)</ | ||
+ | |||
+ | Vzhledem k tomu, že URL ve výše uvedeném hlášení začíná < | ||
+ | |||
+ | < | ||
+ | / | ||
+ | cd / | ||
+ | # 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 / | ||
+ | # Pokud jsem se tam ještě nenašel, můžu své heslo nastavit takto: | ||
+ | htpasswd -s / | ||
+ | # Přístupová práva k svn repozitáři prostřednictvím https (obecně i specificky pro tento projekt) | ||
+ | vi / | ||
+ | # Přístupová práva ke správě projektu v tracu | ||
+ | # Mělo by jít též editovat ve webovém rozhraní | ||
+ | trac-admin / | ||
+ | |||
+ | 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, | ||
+ | |||
+ | < | ||
+ | scp interset.svndump svn.ms.mff.cuni.cz:/ | ||
+ | rm interset.svndump | ||
+ | ssh svn.ms.mff.cuni.cz | ||
+ | svnadmin load / | ||
+ | rm interset.svndump | ||
+ | trac-admin / | ||
+ | # This happens inside trac-admin: resynchronize its history with svn. | ||
+ | Trac [/ | ||
+ | Trac [/ | ||
+ | # 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:// | ||
+ | mv trunk interset | ||
+ | cd interset</ | ||
+ | |||
===== Přechod z CVS pod SVN ===== | ===== Přechod z CVS pod SVN ===== | ||
+ | |||
+ | //(Za kopii poznámek děkuji Edovi Bejčkovi.)// | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | Existuje pythonovský skript, ktery převod provádí. Je nastavitelné, | ||
+ | nahrání na úfalí SVN server (heslo stejne jako na stroj ufal): | ||
+ | |||
+ | <code bash>$ cp -r / | ||
+ | $ rm vallex-cvs/ | ||
+ | $ rm vallex-cvs/ | ||
+ | $ cvs2svn -s vallex --encoding=cp1250 --encoding=L2 --encoding=utf8 | ||
+ | vallex-cvs/ | tee logfile.txt | ||
+ | $ scp -r vallex bejcek@svn:/ | ||
+ | |||
+ | Danovy poznámky: | ||
+ | |||
+ | Poslední krok s& | ||
+ | |||
+ | < | ||
+ | biblio-cvs/ | tee logfile.txt</ | ||
+ | |||
+ | Potom budu postupovat podobně jako při stěhování lokálního repozitáře SVN na server popsaném výše. | ||
+ | |||
+ | < | ||
+ | rm biblio.svndump | ||
+ | ssh svn.ms.mff.cuni.cz | ||
+ | svnadmin load / | ||
+ | rm biblio.svndump</ | ||
+ | |||
+ | ==== 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í '' | 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í '' | ||
Line 520: | Line 652: | ||
Most likely, this is all you will need to look at to do most of your work. Most of this material comes from Section 3.5. | Most likely, this is all you will need to look at to do most of your work. Most of this material comes from Section 3.5. | ||
- |