karel-brinda / tp-zpevnik

Zpěvník Technické přestávky. Výsledné (automaticky generované) zpěvníky se nachází na http://karel-brinda.github.io/tp-zpevnik/.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Některým písním TP kapely chybí akordy

karel-brinda opened this issue · comments

Jmenovitě se to týká:

  • Dej mi nějaký Tóny
  • Bohyně ve vaně

@jhajas Mohl bys je, prosím, doplnit?

Taky chybí v obou od Elvise.

Chybi protoze je to klasicka bluezova 12ctka. Nas tam akordy jenom pletly. To me privadi k dotazu - slo by naopak sazet neco (v tomto pripade akordy) pokud to nebude TPBAND?

Tu bohyni asi odstranim, protoze ji mozna nebudeme vubec hrat. Na muzice se porad aktivne maka.

@jhajas:
Jde udělat dvě alternativy pro TPBAND a mimo:

\ifdefined\TPBAND
(pro band)
\else
(jinak)
\fi

Na vynechání celé nějaké části, pokud se jedná o TPBAND zpěvník: \unless\ifdefined\TPBAND ... \fi nebo \ifdefined\TPBAND\else ... \fi.

Uplne si nejsem jisty jak se to sem prida, ale akordy k tem Elvisum a Dej mi nejaky tony jsem pridal a pushnul v ramci tpband branch.

Několik poznámek:

  • Issues by se neměly uzavírat ručně, ale ve zprávě commitu nebo pull requestu (https://help.github.com/articles/closing-issues-via-commit-messages/).
  • Pro každou jednotlivou opravu by měla být vytvořená samostatná větev (odvozená od master). V tuhle chvíli je tpband takový prazvláštní mišmaš, který do sebe zapustil několik větví, které zatím do master vůbec jít nemají (např. noty, apod.).

Správný postup je následující:

  • Situace: Implementuju novou featuru / chci opravit chybu.
  • Udělám novou větev z master.
  • Opravím danou chybu / přidám danou featuru. Nedělám nic jiného (neměním soubory, které s danou opravou přímo nesouvisejí, nezařazuju ostatní větve, atd.).
  • Vytvořím pull request (pokud opravuje nějakou chybu, tak to uvedu ve zprávě tak, jak to je popsané v tom odkazu výše).

Já pak jako správce repozitáře pak vždycky zkontroluju všechny změny zdrojáky, ověřím testy, atd. A zařadím větev do master.

Prošel jsem rozdíly. Nevím, jestli jsme tomu správně porozuměl, ale jsou tam 2 nezávislé úpravy:

  • přidání nových písní TPBandu
  • přidání akordů ke starým písním, které akordy neměly

A potom

  • nějaké podivnosti (pravděpodobně Vaškova stará větev s notama, zvrácení jména coveru zpět do historie, atd.)

Každá z těch prvních dvou úprav by měla být udělaná jako nezávislý patch pro master (pomocí samostatné větve odvozené z master).

Dobre, na ty 3 pisnicky udelam novou vetev.

Jak ale resit situaci kdy chci buildnout zpevnik s featurama ktere jsou v nekolika vetvich a jeste nejsou zamergovane do master? A jeste hur, co kdyz v takove situaci zaroven potrebuju pridat jednu nebo dve nove pisnicky. Mimochodem tohle je naprosto realna situace, se kterou se setkavam alespon jednou do tydne...

Udržuj si vlastní soukromou větev, do které budeš průběžně zanášet updaty z masteru (a na kterou nebudeš dělat pull request). Nové pro nové písničky dělej nové větve vůči master, které si můžeš také zanášet do těch svých. Pokud jsou písně zpracovány správně (t.j. žádné problémy ohledně formátování, apod.), tak je zanáším do master okamžitě. Mezi větvemi se dá strašně lehce přepínat pomocí git checkout.

@jhajas Potýkal jsem se přesně se stejnou otázkou, tak se rád podělím o to, na co jsem po hromadě nadávání a marných pokusů přišel.

Udržuji si u sebe větev master, kterou vždycky dorovnávám s Karlem:

git checkout master
git pull origin master

Když chci na něčem pracovat, třeba přidávat písničky:

git checkout master
git checkout -b vasek-pisnicky (tohle vytvoří novou větev, která v tu chvíli bude totožná s master)
(...moje úpravy...)
git commit -am "text commitu"
git push origin vasek-pisnicky

Když chci mezitím pracovat na něčem jiném, třeba na notách, mezi větvemi lze libovolně přepínat (skutečný obsah souborů se při každém checkout automaticky přizpůsobuje):

git checkout master (= vrátit všechno do původního stavu, moje úpravy jsou teď v bezpečí schované ve vasek-pisnicky)
git checkout -b vasek-noty (vytvořit novou větev)
(...moje úpravy...)
git commit -am "text commitu"
git push origin vasek-noty

Když teď chci zpátky do vasek-pisnicky:

git checkout vasek-pisnicky (vrátit se k jiné existující větvi)
(úpravy z vasek-noty jsou zase pryč, ale to nevadí, můžu zase přepnout tam)
(...další úpravy písniček...)

Když chci mít vlastní větev, ve které je všechno:

git checkout vasek (nebo checkout -b vasek, pokud ji teprve chci vyrobit)
git merge vasek-pisnicky
git merge vasek-noty
git merge origin/master

Takhle když úpravy podle toho, čeho se týkají, nechávám v jejich tématických větvích, je v tom docela pořádek. Větev vasek by teď pro moje účely obsahovala všechno, co jsem zatím udělal, a ještě něco, co se třeba mezitím objevilo nového v master. Tu bych na github nikdy neposílal, nikdo ji vidět nepotřebuje. Taky bych v ní nedělal nic nového, jen spojování věcí odjinud. Větve vasek-pisnicky a vasek-noty by byly založené na master (klidně jeho starší verzi, to ničemu nevadí) a nezávisle na sobě obsahovaly jen ty relevantní úpravy a nic jiného. Maximálně v nich můžu dávat

git merge origin/master

aby nebyly oproti master moc pozadu a abych mohl používat, co se mezitím přijalo, ale i když to dělat nebudu, moc to nevadí, pořád jsou založené na master, jen na jeho starší verzi.

Doufám, že to pomůže!

Tady je návod, když jsi v situaci, kdy chceš svoje úpravy rozdělit na různá témata a nechce se ti klonovat všechno znova a dělat všechno nanovo. Dejme tomu, že máš větev josef, ve které jsou nové písničky TPBandu, úpravy k existujícím písničkám a nějaké úpravy z jiných větví, co s písničkami nesouvisí.

  • git checkout master (vrátit všechno do synchronizace s master)
  • git checkout -b josef-pisnicky (vytvoří novou větev jen pro úpravy písniček)
  • git diff --name-only josef (vypíše soubory, co se změnily nebo přidaly)
  • git diff josef tp-songs/01_folk/Moje____písnička.tex (vypíše pro kontrolu úpravy provedené v písničce)
  • git checkout josef -- tp-songs/01_folk/Moje____písnička.tex (vezme písničku z verze josef do naší nové větve)
    (pozn.: i když poslední příkaz je checkout, nezmění větev, ta je pořád josef-pisnicky)
  • (...další písničky...)
  • git diff --name-only josef (to by teď mělo vypsat jen ty ostatní soubory, co nás nezajímají)
  • git status (tohle ukáže všechny novinky, co půjdou do josef-pisnicky)
  • git commit -m "Úpravy písniček"
  • git push origin josef-pisnicky

Tohle by šlo třeba udělat zvlášť pro nové věci a zvlášť pro akordy a vyrobit dvě větve. Nebo to nechat jako jednu.

Je to víc příkazů, než je potřeba, ale to jen proto, že spousta z nich je pro kontrolu, co se kolem děje, a že to je v pořádku.