Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
subversion [2008/09/19 13:44] zeman Rolling back versions. |
subversion [2013/04/02 09:56] (current) ufal |
||
---|---|---|---|
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 Server ===== | + | ===== Subversion/Git Server |
- | Toto je Milanovo e-mailové shrnutí z 26.9.2007. Týká se konfigurace serverových repozitářů na serveru | + | Server '' |
- | Mili kolegove, | + | Co bylo zachováno stejné jako před přestavbou: |
- | po diskusi s Ondrou Bojarem | + | * uživatelské účty a hesla pro ssh přístup do systému |
+ | * uživatelské účty, zavedené pro https autentizaci | ||
+ | * účty | ||
+ | * veškerá data systému Trac a stav repozitářů | ||
- | - nalogujete se na svn.ufal.ms.mff.cuni.cz | + | Co je změněno: |
- | | + | * soubor s účty a hesly pro https autentizaci je nyní: ''/ |
- | - pak se rozhodnete | + | * soubor pro nastavení práv v svn repozitářích je: ''/ |
+ | * staré cesty jsou nalinkovány na novou strukturu: | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | |||
+ | Co je nové: | ||
+ | * podpora založení repozitáře git | ||
+ | * podpora propojení systému Trac s git repozitářem | ||
+ | * přístup ke git repozitáři přes https a ssh | ||
+ | |||
+ | ===== Založení nového projektu ===== | ||
+ | |||
+ | Podívejme se, co je potřeba si projít a nastavit při konfiguraci nového projektu svn/git: | ||
+ | * přihlásíte se přes ssh na '' | ||
+ | | ||
+ | * pro vytvoření | ||
+ | |||
+ | SVN: / | ||
+ | |||
+ | | ||
+ | |||
+ | Repozitáře se vždy vytvoří i s rozhraním Trac; pokud ho vyloženě nechcete, smažte struktury Tracu: | ||
+ | |||
+ | rm -rf /home/ | ||
+ | |||
+ | Pak se rozhodnete, kterými | ||
==== Konfigurace webového rozhraní SVN (preferováno) ==== | ==== Konfigurace webového rozhraní SVN (preferováno) ==== | ||
Line 23: | Line 52: | ||
< | < | ||
- | 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. | + | Nyní už můžeme |
- | O přidávání uživatelů a hesel viz níže. | + | < |
- | ==== Konfigurace protokolu SVN ==== | + | Konfiguráky jsou globální, tj. pro všechny projekty společné, v& |
+ | |||
+ | === 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. | ||
+ | |||
+ | ==== Konfigurace protokolu SVN (raději nepoužívat, | ||
Toto rozhraní je užíváno SVN klienty, kteří dostanou repository udanou ve tvaru '' | Toto rozhraní je užíváno SVN klienty, kteří dostanou repository udanou ve tvaru '' | ||
Line 39: | Line 94: | ||
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! | ||
Line 49: | Line 103: | ||
==== 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ř '' | ||
- | ==== 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 '' | + | 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 // |
- | htpasswd -bs /home/svn/users/passwords < | + | **Upozornění: |
- | nebo | + | |
- | | + | === Časté problémy === |
- | # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu | + | |
+ | == V tracu chybí tlačítko Browse Source == | ||
+ | |||
+ | Ověřte, že v souboru '' | ||
+ | |||
+ | == V prohlížení kódu se neukazuje Unicode == | ||
+ | |||
+ | Ověřte, že v souboru ''/ | ||
+ | |||
+ | ==== 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í '' | ||
===== Lokální Subversion ===== | ===== Lokální Subversion ===== | ||
Line 117: | Line 183: | ||
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ý ===== | ||
+ | |||
+ | Nepamatujete si, kde vlastně leží repozitář vašeho projektu? Nacházíte-li se ve své pracovní kopii projektu, příkazem '' | ||
+ | |||
+ | < | ||
+ | Path: . | ||
+ | URL: file:/// | ||
+ | Repository Root: file:/// | ||
+ | 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)</ | ||
+ | |||
+ | 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 392: | Line 547: | ||
~/ | ~/ | ||
</ | </ | ||
+ | |||
Line 417: | Line 573: | ||
* http:// | * http:// | ||
* http:// | * http:// | ||
+ | |||
+ | The following code should undo the changes between the revisions 302 and 303 (note the minus sign before 303, meaning negative change) while keeping the other changes between 303 and HEAD. | ||
+ | |||
+ | < | ||
+ | # alternatively: | ||
+ | svn status | ||
+ | svn diff | ||
+ | svn commit -m " | ||
===== Setting Up an Archive ===== | ===== Setting Up an Archive ===== | ||
Line 455: | Line 619: | ||
===== Troubleshooting ===== | ===== Troubleshooting ===== | ||
+ | |||
+ | ==== Password for GNOME keyring ==== | ||
+ | |||
+ | I had this issue on my workstation ('' | ||
+ | |||
+ | <code bash> | ||
+ | Password for ' | ||
+ | svn: OPTIONS of ' | ||
+ | |||
+ | First, what is the Gnome keyring? According to [[http:// | ||
+ | |||
+ | Unfortunately, | ||
+ | * set empty password for the keyring | ||
+ | * remove the keyring | ||
+ | * change the setting of Subversion | ||
+ | |||
+ | One on-line forum suggests removing the keyring file. This sounds like a good idea because I do not think I use it otherwise. | ||
+ | |||
+ | <code bash>rm ~/ | ||
+ | |||
+ | This solution worked for me. For the sake of completeness: | ||
+ | |||
+ | <code bash># Edit the file and add the following line in the [Auth] section (uncommented!): | ||
+ | # password-stores = | ||
+ | # Note that the line may already be there, commented, and/or with the value = no. | ||
+ | vim ~/ | ||
+ | |||
+ | ==== Working copy path does not exist in repository ==== | ||
If you get the message: | If you get the message: | ||
Line 484: | Line 676: | ||
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. | ||
- |