Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
public:svn2 [2011/03/09 09:33]
Petr Svenda [Použití SVN]
public:svn2 [2018/02/24 19:10] (aktuální)
Řádek 1: Řádek 1:
 +===== Použití SVN =====
 +== Motivace použití software pro verzování ==
 +V předchozích semestrech se odevzdávání řešilo jiným způsobem, co se týče souborů. Tehdy si je člověk ručně kopíroval do odevzdávací složky. Teď už to není potřeba, protože si odevzdávací program soubory stáhne kontrolní program sám, takže vy toto řešit nemusíte.
  
 +Pro vás má SVN i další výhody:
 +  * nemusíte řešit zálohu souborů (soubory jsou mimo váš počítač, v případě fakultního SVN navíc zálohované pravidelně na pásku)
 +  * nemusíte řešit to, že jste si přepsali něco, co jste nechtěli (zálohují se všechny verze, které chcete a lze se k nim později vrátit)
 +  * můžete se vrátit zpět na starší verzi (která fungovala, která obsahovala neúmyslně smazané soubory...)
 +  * soubory máte k dispozici na více místech naráz (školní PC, notebook, domácí PC...)
 +  * **naučíte se používat něco, co se v praxi (a ve velkém) používá**
 +
 +Velké výhody má používání verzovacího software ve skupině
 +  * souběžné práce více lidí nad stejnými zdrojáky
 +  * práce vždy nad aktuálními zdrojáky (nemusíte zjišťovat mailem, kdo má aktuální verzi a kdo dělal poslední změny)
 +  * možnost práce “offline” (na týden můžete odjet a pracovat bez nahrání aktuálních zdrojáků na server a zároveň neblokujete ostatní vývojáře - později se změněné zdrojové soubory zesynchronizují)
 +  * vytváření nezávislých vývojových větví
 +
 +
 +
 +=== Použití v případě odevzdávání domácích úloh ===
 +Jako první budete potřebovat veřejně dostupný SVN repozitář. Protože ne všichni mají k dispozici svoje veřejné SVN, je všem k dispozici fakultní. Po vytvoření repozitáře je potřeba nastavit odevzdávací program, aby ho používal. A potom je ještě potřeba, abyste ho používali také vy :-).
 +== Vytvoření fakultního SVN repozitáře ==
 +  * Přejděte do [[https://​fadmin.fi.muni.cz/​auth/​sys/​svn_ucty.mpl|nastavení SVN]] na stránkách Fakultní administrativy.
 +  * Vytvořte repozitář (v následujícím textu budu předpokládat jméno repozitáře **pb071**, ale můžete zvolit jakékoliv jiné)
 +  * Na té samé stránce dole přidejte uživateli __xtoth1__ právo pro __čtení__
 +Gratuluji, máte vytvořený repozitář! Teď je ještě potřeba nastavit kontrolní program. To uděláte spuštěním následujícího kódu na **Aise** (můžete ho zkopírovat;​ pokud máte jiné jméno repozitáře,​ změnte jeho jméno z pb071) ((Zdroje: [[http://​elearning.simontoth.cz/​public/​pb071#​zalozeni_odevzdavaciho_svn_repozitare]],​ [[https://​is.muni.cz/​auth/​cd/​1433/​jaro2011/​PB071/​23168465/​23170067/​]])):​
 +<code bash>
 +echo '​https://​svn.fi.muni.cz/​fi/'​`whoami`'​_pb071'​ > ~/​.kontr_svn &&​ chmod g+x ~ && chmod g+r ~/​.kontr_svn
 +</​code>​
 +==== Jak pracovat s SVN ====
 +Protože prázdný repozitář je poněkud k ničemu, musíme se naučit s ním pracovat. Následuje diagram, který popisuje pracovní postup:\\
 +**Následující postup je pro Linux. Přečtěte si jej, ať víte, jak se vůbec s SVN pracuje. Dole jsou pak obrázky, které popisují práci ve Windows.**
 +{{ :​public:​svn_diagram.png |Pracovní postup používání SVN}}
 +Pro odevzdávání je potřeba vytvořit adresáře **hw01 až hw05**.\\
 +**Pokud následující příkazy nepouštíte na Aise, změňte `whoami` za vaše uživatelské jméno na Aise.**\\
 +Pojďme je tedy vytvořit na Aise:
 +  * Protože nemáme zatím lokální kopii repozitáře,​ **vytvoříme ji**:
 +    * Následující příkaz přímo pro vaše uživatelské jméno získáte též na výše zmiňované stránce [[https://​fadmin.fi.muni.cz/​auth/​sys/​svn_ucty.mpl|nastavení SVN]] nahoře.
 +    * Tento příkaz vytvoří adresář se jménem repozitáře.
 +<code bash>
 +svn co --username `whoami` https://​svn.fi.muni.cz/​fi/​`whoami`_pb071
 +</​code>​
 +  * Následně vytvoříme adresáře pro jednotlivé úlohy a **přidáme je i do repozitáře.**
 +    * Před přidáním je potřeba se přepnout do adresáře s repozitářem (který vytvořil předchozí příkaz).
 +    * Všimněte si hvězdičky za příkazem __svn add__. Ta určuje, které soubory či adresáře se přidají. Pokud tedy budete chtít přidat soubory v nějakém adresáři, tak se do něj nejdříve musíte přepnout. //(Tj vždy musíte soubory vybrat a přidat ručně.)//
 +    * Výstupem je seznam položek, které se přidaly.
 +<code bash>
 +cd `whoami`_pb071
 +mkdir hw01 hw02 hw03 hw04 hw05
 +svn add *
 +</​code>​
 +  * Teď je potřeba přidat změny i do hlavního repozitáře ("​commitnout"​).
 +    * Toto dělejte vždy, když provedete nějakou významnější změnu (i třeba jen ve zdrojáku). **K těmto změnám se totiž můžete kdykoliv vrátit, takže pokud budete chtít si zobrazit rozdíl mezi verzemi, nebo se vrátit k funkční verzi, tak to půjde.**
 +    * Je vhodné přidat komentáře,​ abyste snadněji pak nalezli to, co potřebujete.
 +    * Když spustíte následující příkaz, tak se vám otevře defaultně nastavený textový editor, který vám umožní přidat komentář. Proto napište třeba //Pridani odevzdavacich adresaru.// a uložte změny. //(Pokud byste chtěli udělat commit bez zprávy, nechte soubor prázdný.)//​ Pokud nechcete spouštět editor a předat zprávu rovnou, přidejte argument //​%%--message zprava%%//.
 +<code bash>
 +svn commit
 +</​code>​
 +
 +Nyní můžete normálně pracovat. Až příště budete chtít pracovat s repozitářem,​ je potřeba nejdřív stáhnout změny do lokální kopie (tento příkaz není potřeba, pokud se mezitím nestaly žádné změny v repozitáři;​ takže pokud programujete a pravidelně commitujete,​ tak update volat nemusíte):
 +<code bash>
 +svn update
 +</​code>​
 +
 +===== Instalace a použití SVN - Windows =====
 +  * Stáhněte si a nainstalujte [[http://​tortoisesvn.net/​downloads|TortoiseSVN]] klienta. Lze samozřejmě použít i jiné klienty něž TortoiseSVN.
 +  * Pokud chcete provozovat vlastní SVN server, tak můžete vyzkoušet [[http://​www.visualsvn.com/​server/​|VisualSVN Server]]. ​
 +
 +=== Ekvivalent příkazů ve Windows ===
 +Dále následují obrázky, jak se jednotlivé věci dělají na Windows. Následující postup používá program TortoiseSVN,​ který je grafický, takže je pro použití ve Windows ideální ;-), ale můžete používat jakýkoliv jiný.
 +== Vytvoření lokální kopie repozitáře (checkout) ==
 +* Po instalaci SVN klienta si vytvořte na vhodném místě adresář (na windows stroji, nikoli na Aise) s názvem např. //​PB071_spring2010//​. Do tohoto adresáře si stáhneme pomocí kroků popsaných níže zdrojové kódy (a jakékoli další soubory), které jsou součástí projektu, na kterém budete pracovat.
 +  * Pravým myšítkem klikneme na adresář //​PB071_spring2010//​ a vyberte volbu SVN Checkout...
 +{{:​public:​svn_checkout.png|}}
 +  * Do kolonky //URL of repository//​ vyplňte URL adresu cílového repozitáře,​ ve kterém je uložen váš projekt. Tuto adresu musíte získat od vlastníka/​zakladatele repozitáře. V případě fakultního SVN serveru je to https://​svn.fi.muni.cz/​fi/​login_jménoRepozitáře. ​
 +  * Typicky potřebujete stáhnout nejaktuálnější verzi, ponechte tedy volbu //HEAD revision//. Pomocí Show log lze získat informace o starších verzích a stáhnout jinou něž nejaktuálnější,​ pokud je to potřeba (typicky ale není). Stiskem OK se spustí stahování souborů. Pokud je přístup k repozitáři projektu autentizovaný,​ tak musíte vyplnit jméno a heslo pro daný projekt. V případě SourceForge.net může kdokoli číst soubory z repozitáře bez autentizace,​ zapisovat nové soubory mohou pouze vývojáři projektu po autentizaci. ​
 +{{:​public:​svn_checkout2.png|}}
 +  * Informativní okno zobrazuje průběh a výsledek stahování včetně čísla revize. Na disku jsou nyní v cílovém adresáři (//​PB071_spring2010//​) staženy soubory projektu. ​  
 +{{:​public:​svn_checkout3.png|}}
 +  * Všimněte si zelené ikony na adresáři, která signalizuje,​ že je jeho obsah synchronizován s obsahem repozitáře a že nebyl od té doby měněn. Zároveň se změnila kontextová nabídka dostupná po pravým tlačítkem myši.
 +== Přidání souborů/​adresářů (add) ==
 +TODO - svn add
 +== Přidání změn do hlavního repozitáře (commit) ==
 +{{:​public:​svn_commit.png|}}
 +== Získání změn do lokálního repozitáře (update) ==
 +{{:​public:​svn_update.png|}}
QR Code
QR Code public:svn2 (generated for current page)