Domáca úloha 4

Nainštalujte si git (ak ho ešte nemáte) a vyskúšajte si git prikazy z prednášky.

Naklonujte si repozitár https://github.com/facebook/immutable-js.
a) Kto, kedy a co zmenil v commite 6274e6a ?

Nastavte "master" vetvu na commit 46fa90d (pozri si v prednáške prikazy typu "git reset --hard").

b) Johny je prekvapený. Pozerá sa na kus kódu (zacina na riadku 729 v subore src/Map.js):

export function deepMerger(merger) {
  return (existing, value, key) =>
    existing && existing.mergeDeepWith && isIterable(value) ?
      existing.mergeDeepWith(merger, value) :
      merger ? merger(existing, value, key) : value;
}

nepamätá si však, že by kedy návratova funkcia akceptovala argument 'key' (riadok 730). Pomozte Johnymu zistiť, kto tento riadok naposledy menil, čo ďalsie obsahoval commit, ktorý zaniesol do kódu túto zmenu.

c) Vykonajte nasledovnú postupnost prikazov.

V poslednom commite pridajte do commit message nový riadok "Amending commit message by [Meno] [Priezvisko])", kde doplníte vaše meno a priezvisko.

Pozrite sa, čo všetko sa nachádza v .gitignore. Vytvorte si novú vetvu s názvom "bugfix123". V tejto vetve pridajte na koniec súboru .gitignore všetky súbory s príponou "class" a subor commitnite.

Zároveň v master vetve pridajte na koniec súboru .gitignore všetky súbory s názvom začínajúcim písmenom "a" alebo "b" a zároveň majúce príponu "tmp". Zmenený subor commitnite.

Do vetvy master mergnite vetvu "bugfix123" takým sposobom, aby subor .gitignore obsahoval na konci zmeny z oboch vetiev.

Nakoniec si stiahnite akutálny obsah vzdialeneho repozitara origin (https://github.com/facebook/immutable-js) a do vetvy master mergnite vetvu origin/master. Prípadne konflikty vyriešte logickým spôsobom.

Svoj lokálny repozitár skomprimujte do zip archívu a pošlite ho spolu s odpovedami na otazky a) a b) e-mailom na kosticova@dcs.fmph.uniba.sk.