Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| subversion [2009/03/10 12:14] zeman Přechod z CVS pod SVN. | 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. | + | < | 
| - | === Přidávání vlastních uživatelů | + | Konfiguráky jsou globální, tj. pro všechny projekty společné, v& | 
| - | Vlastni uzivatele | + | === Přidávání vlastních uživatelů | 
| - |  | + | Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/ | 
| + | |||
| + |  | ||
| nebo | nebo | ||
| - | htpasswd -s /home/svn/users/ | + | htpasswd -s /home/DATA/repository_passwords | 
| # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu | # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu | ||
| - | ==== Konfigurace protokolu SVN (raději nepoužívat, | + | ==== 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 48: | 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! | ||
| - | |||
| ==== Konfigurace přístupu k systému Trac ==== | ==== Konfigurace přístupu k systému Trac ==== | ||
| Line 60: | Line 105: | ||
| 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ý ('' | 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/users/ | + | AuthUserFile /home/DATA/repository_passwords | 
| - | Při přístupu k webovému rozhraní Trac vyžaduje http autentizaci (zde tedy zadáte jméno a heslo, které máte zavedené v souboru ''/ | + | Při přístupu k webovému rozhraní Trac vyžaduje http autentizaci (zde tedy zadáte jméno a heslo, které máte zavedené v souboru ''/ | 
| 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ř '' | Chcete-li mít přístup k nastavení Tracu pro tento projekt i přes webové rozhraní Tracu, uvnitř '' | ||
| Line 79: | Line 124: | ||
| == 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 138: | 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ý ===== | ===== Přechod z lokálního repozitáře na serverový ===== | ||
| Line 181: | Line 227: | ||
| svnadmin load / | svnadmin load / | ||
| rm interset.svndump | 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 | # Log off svn server, continue on local machine | ||
| exit | exit | ||
| Line 207: | Line 257: | ||
| vallex-cvs/ | tee logfile.txt | vallex-cvs/ | tee logfile.txt | ||
| $ scp -r vallex bejcek@svn:/ | $ 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 ==== | ==== Zastaralý a velmi amatérský návod ==== | ||
| Line 554: | 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 583: | 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. | ||
| - | |||
