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 [2007/09/26 11:44] zeman |
subversion [2008/09/19 14:05] zeman Undoing changes. |
||
---|---|---|---|
Line 3: | Line 3: | ||
Subversion ('' | Subversion ('' | ||
- | Pro projekty | + | 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é |
- | ===== Nové Milanovo shrnutí | + | Pro projekty ÚFALu, na nichž chcete spolupracovat i s lidmi zvenku, (serverové repozitáře) použijte vyhrazený stroj [[internal: |
+ | |||
+ | ===== Subversion Server ===== | ||
+ | |||
+ | Toto je Milanovo | ||
Mili kolegove, | Mili kolegove, | ||
- | po diskusi s Ondrou Bojarem a drobnem vylepseni naseho serveru svn jeste | + | po diskusi s Ondrou Bojarem a drobnem vylepseni naseho serveru svn jeste jednou sepisuji co je potreba si projit a nastavit pri konfiguraci noveho projektu: |
- | jednou sepisuji co je potreba si projit a nastavit pri konfiguraci noveho | + | |
- | projektu: | + | |
- | 1) nalogujete se na svn.ufal.ms.mff.cuni.cz (= svn.ms.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):< |
+ | - 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/ | ||
- | 2) pro vytvoreni projektu pouzijete skript | + | ==== Konfigurace webového rozhraní SVN (preferováno) ==== |
- | projektu): / | + | |
- | 3) pak se rozhodnete kterymi cestami budete s projektem pracovat - nejlepsi | + | Toto rozhraní |
- | 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! | + | |
- | ---------------------------------------------------------------------------- | + | Co se tyce svn weboveho rozhrani, tak ten modul ma nasledujici konfiguraky (viz. / |
- | Co se tyce svn weboveho rozhrani, tak ten modul ma nasledujici konfiguraky | + | |
- | (viz. / | + | |
- | | + | |
- | (coz je to, cemu rikas .htaccess) | + | |
- | + | ||
- | jejich opravneni: AuthzSVNAccessFile / | + | |
- | (zde se rika, zda RO nebo RW) | + | |
O zbytek se stara webovy modul subversion - ja mu jen rikam tohle. | O zbytek se stara webovy modul subversion - ja mu jen rikam tohle. | ||
- | Jsou globalni.... | + | Konfiguraky jsou globalni, tj. pro vsechny projekty spolecne. |
- | ----------------------------------------------------------------------------- | + | |
- | Pak je tu svn protokol: | + | |
- | pristupova prava se urcuji | + | |
- | dane repository (jak je vytvorena mym skriptem). Vzory nastaveni pristupu | + | |
- | jsou zde: / | + | |
- | | + | |
- | | + | |
- | ----------------------------------------------------------------------------- | + | |
- | Stranou zustava Trac - pouziva take overovani vuci | + | |
- | AuthUserFile / | + | |
- | Plus ma vlastni system prav. Trac vas rozpozna podle loginu, se kterym jste | + | O přidávání uživatelů a hesel viz níže. |
- | se prihlasili pri http autentizaci, | + | |
- | danem projektu nejste zavedeni,i tak se k nemu dostanete s nejakymi default | + | |
- | pravy. | + | |
- | ----------------------------------------------------------------------------- | + | |
- | ---------------------------------------------------------------------------- | + | |
- | Vastni uzivatele pro webove pristupy pridate do centralniho souboru webovych | + | |
- | hesel v / | + | |
- | htpasswd -bs / | + | ==== Konfigurace protokolu SVN ==== |
- | ---------------------------------------------------------------------------- | + | |
- | Doufam, ze timto shrnutim zajistime optimalni vyuziti | + | Toto rozhraní je užíváno SVN klienty, kteří dostanou repository udanou ve tvaru '' |
- | Milan | + | svn --username ufal checkout svn:// |
- | ===== Setting Up an Archive | + | 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 / | ||
+ | vim / | ||
+ | |||
+ | |||
+ | Vzory nastaveni pristupu jsou zde: ''/ | ||
+ | |||
+ | Pozor - hesla se tu nastavuji jako textove retezce, neni to htaccess! Po siti tedy tecou nekryptovane! | ||
+ | |||
+ | ==== Konfigurace přístupu k systému Trac ==== | ||
+ | |||
+ | Trac - pouziva take overovani vuci: | ||
+ | AuthUserFile / | ||
+ | |||
+ | Trac ma navic vlastni system prav. Trac vas rozpozna podle loginu, se kterym jste se prihlasili pri http autentizaci, | ||
+ | |||
+ | Takto spustíte konfigurační skript pro Trac vašeho projektu: | ||
+ | trac-admin / | ||
+ | |||
+ | |||
+ | ==== 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 ''/ | ||
+ | |||
+ | htpasswd -bs / | ||
+ | nebo | ||
+ | htpasswd -s / | ||
+ | # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu | ||
+ | |||
+ | |||
+ | ===== Lokální Subversion ===== | ||
+ | |||
+ | //(Z návodu ve wiki University of Maryland převzal a upravil Dan Zeman.)// | ||
+ | |||
+ | Tento návod se týká lokálních repozitářů SVN, tedy takových, ke kterým budete přistupovat pouze z linuxových počítačů v síti ÚFALu. | ||
You can use svn to keep track of your own code. | You can use svn to keep track of your own code. | ||
Line 70: | Line 79: | ||
< | < | ||
- | **Beware!** Do not use older versions (e.g. 1.1.4) of Subversion to create a repository! By default, they will use the Berkeley DB backend, which is not recommended. You may be able to " | + | **Beware!** Do not use older versions (e.g. 1.1.4) of Subversion to create a repository! By default, they will use the Berkeley DB backend, which is not recommended. You may be able to " |
Let's say you want to archive the directory ''/ | Let's say you want to archive the directory ''/ | ||
Line 90: | Line 99: | ||
rm -rf proj.old | rm -rf proj.old | ||
</ | </ | ||
+ | |||
+ | Výše uvedený postup je možné po úpravách použít i pro vzdálený repozitář na serveru SVN. Předpokládáme, | ||
+ | |||
+ | < | ||
+ | mv $PROJ $PROJ.old | ||
+ | mkdir tmp | ||
+ | cd tmp | ||
+ | mkdir $PROJ | ||
+ | cp -r / | ||
+ | mkdir $PROJ/ | ||
+ | mkdir $PROJ/tags | ||
+ | svn --username $USER import $PROJ https:/// | ||
+ | cd .. | ||
+ | svn checkout -q https:/// | ||
+ | rm -rf tmp | ||
+ | rm -rf $PROJ.old</ | ||
+ | |||
+ | 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 CVS pod SVN ===== | ===== Přechod z CVS pod SVN ===== | ||
Line 345: | Line 372: | ||
This command takes the differences between the alopez branch from rev. 250 to 271, and applies them to the working copy. Note that this may create conflicts! | This command takes the differences between the alopez branch from rev. 250 to 271, and applies them to the working copy. Note that this may create conflicts! | ||
+ | |||
===== Tags ===== | ===== Tags ===== | ||
Line 365: | Line 393: | ||
</ | </ | ||
- | === [[VersionControlTags|Current Tags and Branches]] === | ||
- | === Rolling Back Versions === | + | |
+ | |||
+ | |||
+ | |||
+ | ===== Rolling Back Versions | ||
What do you do if something is broken that wasn't broken before? | What do you do if something is broken that wasn't broken before? | ||
- | '' | + | '' |
This will show you the change log. Hopefully, this will be sufficiently informative as to when particular changes occurred, but if you aren't sure what happened in a particular revision, you can always run | This will show you the change log. Hopefully, this will be sufficiently informative as to when particular changes occurred, but if you aren't sure what happened in a particular revision, you can always run | ||
- | '' | + | '' |
To see the changes that have been made. Once you figure out which version you need, you can restore your working copy to that revision using | To see the changes that have been made. Once you figure out which version you need, you can restore your working copy to that revision using | ||
- | '' | + | '' |
- | === Setting Up an Archive === | + | Warning: If you update the whole project ('' |
+ | |||
+ | The following chapters from the SVN book have some answers: | ||
+ | * 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 | ||
You can use svn to keep track of your own code. Let's say you want to archive the directory ''/ | You can use svn to keep track of your own code. Let's say you want to archive the directory ''/ | ||
Line 406: | Line 452: | ||
See [[VersionControlSetup|VersionControlSetup]] for the series of commands used to set up the MTEval archive. | See [[VersionControlSetup|VersionControlSetup]] for the series of commands used to set up the MTEval archive. | ||
- | === Stupid Repository Tricks === | + | |
+ | ===== Stupid Repository Tricks | ||
You can accomplish virtually anything you can imagine with the repository, although it may not be immediately obvious how. For instance: | You can accomplish virtually anything you can imagine with the repository, although it may not be immediately obvious how. For instance: | ||
- | : $ Get the latest revision number of your current branch | + | * Get the latest revision number of your current branch: '' |
- | :You can also try '' | + | * View the logs of all changes to your current branch since you last updated: '' |
+ | * View all the differences between your working copy and the latest revision of your current branch: '' | ||
+ | * Merge into your current working copy the bug fixes checked in to r475 of the bittorrent branch (even if that's not your working branch): ''< | ||
+ | * Change your mind when you realize those bug fixes did more harm than good: ''< | ||
- | : $ View the logs of all changes to your current branch since you last updated.: '' | + | ===== Troubleshooting |
- | + | ||
- | : $ View all the differences between your working copy and the latest revision of your current branch.: '' | + | |
- | + | ||
- | : $ Merge into your current working copy the bug fixes checked in to r475 of the bittorrent branch (even if that's not your working branch).: '' | + | |
- | + | ||
- | : $ Change your mind when you realize those bug fixes did more harm than good.: '' | + | |
- | + | ||
- | + | ||
- | + | ||
- | === Troubleshooting === | + | |
If you get the message: | If you get the message: | ||
Line 440: | Line 480: | ||
* pray | * pray | ||
- | === Further Reading === | ||
- | All of the information in this tutorial comes directly from the online [http:// | ||
- | * [http:// | + | ===== Further Reading ===== |
- | * [http:// | + | |
- | * [http:// | + | All of the information in this tutorial comes directly from the online [[http:// |
- | * [http:// | + | |
- | * [http:// | + | |
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
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. | ||
- | [[Category: |