]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/blobdiff - cviceni/4.mdwn
Vysledky nahradniho testu
[edu/osp-wiki.git] / cviceni / 4.mdwn
index 5bc726a9d942384081f7a667064e732339f69609..efbb692063d881562cd66e00f75841d8a78fe13f 100644 (file)
@@ -12,7 +12,8 @@ Konkrétně nás bude zajímat:
 * využití Gitu pro distribuovaný vývojový model, který je praktikován
   mnoha open source projekty,
 * efektivní prohledávání historie projektu, které je užitečné
-  například při rozhodování, jak správně vyřešit určitý konflikt.
+  například při rozhodování, jak správně vyřešit určitý konflikt a
+* řešení konfliktů.
 
 [git]:http://git-scm.com/
 
@@ -167,13 +168,14 @@ schopnost pracovat s více vzdálenými repozitáři.
        git fetch osp
    V případě úspěchu bude výstup vypadat následovně:
 
-       remote: Counting objects: 17, done.
-          remote: Compressing objects: 100% (9/9), done.
-          remote: Total 10 (delta 4), reused 7 (delta 1)
-          Unpacking objects: 100% (10/10), done.
-          From ssh://rtime.felk.cvut.cz/osp/mc
-               * [new branch]          master     -> osp/master
-               * [new branch]          only-directories -> osp/only-directories
+       remote: Counting objects: 34, done.
+       remote: Compressing objects: 100% (17/17), done.
+       remote: Total 20 (delta 17), reused 6 (delta 3)
+       Unpacking objects: 100% (20/20), done.
+       From ssh://rtime.felk.cvut.cz/osp/mc
+        * [new branch]      master     -> osp/master
+        * [new branch]      only-directories -> osp/only-directories
+        * [new branch]      only-directories-old -> osp/only-directories-old
 
 3. Příkaz nám vypíše, že v repozitáři byly dvě nové větve. Všechny
    větve ze vzdálených repozitářů vypíšeme příkazem
@@ -307,72 +309,59 @@ Při řešení konfliktů nám může pomoct i příkaz `gitk --merge`, který
 zobrazí pouze commity, které modifikovaly konfliktní soubory.
 Jednoduše tam můžeme zjistit, které změny konflikt způsobily.
 
+Git obsahuje poměrně jednoduchý algoritmus (v porovnání s jinými
+verzovacími systémy) pro slučování různých verzí souborů. Některým
+studentům se to nelíbí a stěžují si. Přečtěte si
+[názor Linuse Torvaldse][mergealg], proč tomu tak je.
+
+[mergealg]:http://stackoverflow.com/questions/612580/how-does-git-solve-the-merging-problem/612747#612747
+
 [kdiff3]:http://kdiff3.sourceforge.net/
 
-Repozitář na repo.or.cz
----------------------------
+Repozitář na GitHubu
+--------------------
 
 K tomu, aby výsledky vaší práce na open source projektech byly snadno
-Dostupné pro ostatní je užitečné založit si vlastní repozitář, odkud
+dostupné pro ostatní je užitečné založit si vlastní repozitář, odkud
 si budou moct ostatní vaše změny stáhnout.
 
-1. [Zaregistrujte se][reg] na [repo.or.cz][roc]. K repozitáři na
-   repo.or.cz se přistupuje protokolem SSH a autorizace se provádí na
-   základě veřejných klíčů.
-   
-   1. Pokud žádný klíč nemáte, vytvořte si ho příkazem 
-   
-          ssh-keygen
-
-      Příkaz se vás zeptá kam klíč uložit. Výchozí volba vám zpočátku
-      bude stačit. Dále se zeptá na heslo (passphrase) k vašemu
-      privátnímu klíči. Pokud žádné heslo nezadáte, bude se moct
-      kdokoli, kdo se dostane k souboru s vaším klíčem (např.
-      administrátor školních serverů), autorizovat jako vy.
-   
-   2. Pokud jste se rozhodli chránit klíč heslem, je otravné zadávat
-      heslo vždy, když klíč používáte. Naštěstí existuje program
-      `ssh-agent`, který uchovává odheslované klíče v paměti a
-      poskytuje je vždy, když je nějaký oprávněný program potřebuje.
-      Vy tak zadáte heslo jen jednou a to když předáváte klíč
-      ssh-agentovi příkazem
-
-          ssh-add
-
-[reg]:http://repo.or.cz/reguser.cgi
-[roc]:http://repo.or.cz/
+1. Zaregistrujte se na [GitHubu](https://github.com/). V závislosti na
+   tom, jakým protokolem chcete k repozitářům na GitHubu přistupovat
+   si nastavte buď [password caching][passcache] (pro HTTP) nebo
+   [SSH klíče][sshkeys] (pro SSH).
 
-2. Vytvoření repozitáře na repo.or.cz.
+[passcache]:https://help.github.com/articles/set-up-git#password-caching   
+[sshkeys]:https://help.github.com/articles/generating-ssh-keys
 
-   Můžete založit buď [nový projekt][new] a nebo udělat tzv.
-   [fork existujícího projektu][forkmc]. Pro oba typy projektů můžete
-   zvolit zda bude repozitář pouze automaticky aktualizovanou kopií
-   jiného repozitáře (*mirror mode*) a nebo zda-li bude možné do něj přímo
-   ukládat nové commity (*push mode*).
+2. Vytvoření repozitáře na GitHubu. Můžete založit buď
+   [nový projekt][new] nebo udělat tzv. "fork" existujícího projektu.
    
-   Pro účely tohoto cvičení si
-   [založte fork][forkmc] [Midnight commanderu][w/osp.git] v *Push módu*, který se
-   bude jmenovat podle vašeho loginu. Do tohoto repozitáře pak
+   Pro účely tohoto cvičení si [založte fork][forkmc]
+   [Midnight commanderu][osp-mc]. Do takto vytvořeného repozitáře pak
    nahrajete úkol z dnešního cvičení.
    
-3. Do vašeho vzdáleného repozitáře můžete nahrát vaší větev některým z
-   těchto způsobů
+3. Do svého repozitáře na GitHubu nahrajete větev z lokálního
+   repozitáře některým z těchto způsobů:
 
-       git push ssh://<mujlogin>@repo.or.cz/srv/git/midnight-commander/osp/<mujfork>.git homework
-   nebo        
+       git remote add github https://github.com/<mujlogin>/mc.git
+       git push github HEAD:homework
+   nebo
 
-       git remote add repo-or-cz ssh://<mujlogin>@repo.or.cz/srv/git/midnight-commander/osp/<mujfork>.git
-       git push repo-or-cz homework
+       git push https://github.com/<mujlogin>/mc.git homework
+   nebo
 
-[new]:http://repo.or.cz/regproj.cgi
-[forkmc]:http://repo.or.cz/regproj.cgi?fork=midnight-commander/osp.git
+       git push ssh://git@github.com/<mujlogin>/mc.git homework
+
+[new]:https://github.com/new
+[osp-mc]:https://github.com/CTU-OSP/mc
+[forkmc]:https://github.com/CTU-OSP/mc/fork_select
 
 Zadání
 ======
 
 Proveďte sloučení větve `ssh://git@rtime.felk.cvut.cz/osp/mc
-only-directories` s aktuální vývojovou větví `origin/master`. Výsledek
-uložte do [vámi vytvořeného repozitáře (forku) na repo.or.cz][forkmc]
-do větve `homework`.
-
-[w/osp.git]:http://repo.or.cz/w/midnight-commander/osp.git
+only-directories` s aktuální vývojovou větví Midnight Commanderu
+(`origin/master`). Výsledek musí jít zkompilovat a musí obsahovat
+funkcionalitu přidanou do větve `only-directories`. Výsledek uložte do
+[vámi vytvořeného repozitáře (forku) na GitHubu][forkmc] do větve
+`homework`.