Vtipný je commit
https://github.com/SmallhillCZ/Supervizor/commit/5a3bb15137c01301575ee2046bd1492bce45ce21
391 deletions
s titulkem "drobné úpravy" ... haha 391 řádků pryč, to je drobnost :)
Tak pulka těch řádků je z api-old.php. Hádám, že to byl v době mazání "mrtvý kód". A je možné, že ostatní řádky také. Takže se smějte, až pochopíte jakou funkčnost ten commit mění. Tohle je ještě celkem dobrá commit message. Říka, že se v tomto commitu nic zajímavého nestalo, což pokud jde opravdu jen o odstranění "mrtvého kódu", tak je to pravda.
"Takže se smějte, až pochopíte jakou funkčnost ten commit mění. "
http://chris.beams.io/posts/git-commit/
https://github.com/erlang/otp/wiki/writing-good-commit-messages
Ani toto moudro pořád nic nemění na tom, že ta commit message je na ho..o, ale jestli si myslíš, že je lepší je plácat po ramenou a říkat jak to napsali skvěle, tak můžeš, ale mazáním si medu kolem huby si nikdo moc nepomůže. A hodit link na to, jak by to mohlo být správně nejsou blbé kecy. taky jsem se to jednou musel naučit.
Jinak přispět se chystám, ještě nevím přesně kde a čím, asi jim napíšu jestli mají nějaký plán ať nedělám hovadiny, jenže já nejsem zaměstnancem MF, takže nemám tolik času ;-)
No a ani to pořád nic nemění na tom, že to zbastlili a má to chyby.
stat si samo muzes, ale pokud k tomu dopridame to tve "Asi zdražím", tak:
goto "autori nejsou programatori, delali to zdarma" ;)
slo me jednoduse o to, ze pokud nekdo udela neco zadarmo, ve svem volnem case, da to jako opensource a navic a v tomto pripade hlavne, jde o pouziti ve statni sprave, myslim ze neni treba mazat zadnej med, ale proste se na to podivat v tomto kontextu a take ze nebylo na to vyplacnuto desitky milionu.... nikoliv jen jako "je ten zdrojak dokonalej?" ;)
Já myslím, že vůbec není potřeba se na to dívat v kontextu toho, že někdo něco dělá zadarmo a dá to jako opensource. Myslím, že úplně stačí se na to podívat v kontextu toho, jak vypadá můj vlastní kód. Až kritici odkážou na své vlastní projekty na GitHubu, a tam uvidím v každé verzi perfektní kód a vzorově okomentované commity, bude ta jejich kritika věrohodnější.
Ony totiž komentáře ke commitům mají nějaký účel. Takže je potřeba psát je tak, aby ten účel plnily, a ne samoúčelně trvat na tom, aby autor zbytečně marnil čas nad vymýšlením komentářů.
Ale já to nepsal protože by za to měli peníze. Do teď nevím, kolik za to mají nebo nemají, jestli na tom makali i v pracovní době i když to nemají jako zaměstnání nebo za to bude třeba prémie a nebo nic. Já si prostě jen uvědomil, co se dá všechno zplodit, a to se s tím setkávám i ve firmách kde potřebují výpomoc s projekty .... No tak jsem napsal, že zdražím, mimochodem pro oddělení je tam těch pár teček, a hned se musí chytit trollík který bude škubat kousky vět a nadhazovat dokud se budu chytat, nejspíš jen z nudy a nebo má prostě akorát blbý víkend.
Mimochodem nikdy jsem neodmítl nikomu poradit a kdybych měl za každou radu korunu, tak bych nebyl milionář protože zase tuna lidí jen tak radí/radilo mě. Na vysoké škole jsem se, když už nic jiného, naučil jednu věc: "Nikdo neví, resp. neumí všechno", ale to neznamená, že když někdo udělá něco i zadarmo, co je doje..né, tak si budu hrát na nějakou nirvánu a tiše v úctě našlapovat. Klidně se i můžeš na hlavu postavit, ale to je tak všechno co se s tím dá dělat.
Tak samozřejmě že při psaní commitů nejde o nějakou slohovou exhibici, ale když se pak někdo podívá zpět, tak commit "drobné úpravy" mu opravdu nic neřekne, jen to v něm vzbudí dojem, že se tam přece jen něco významného dělo. Je tak těžké místo toho napsat třeba "Odmazán nepotřebný kód"?
ale když se pak někdo podívá zpět
No právě. Komentáře ke commitům se nepíšou kvůli tomu „až se někdo podívá zpět“. Je možné, že někdo má takovou úchylku, že si vytiskne komentáře ke commitům a čte si je před usnutím, ale na to není potřeba brát ohledy.
Je tak těžké místo toho napsat třeba "Odmazán nepotřebný kód"?
Je tak těžké být za všech okolností dokonalý? Ano, je. Lidé prostě občas mají slabší chvilky a píšou nedokonalé komentáře ke commitům. Kritiku bych bral, pokud by v projektu takovéhle komentáře byly standard. Ale takovéhle komentáře najdete v každém projektu, vytáhnout jeden komentář nevypovídá vůbec o ničem.
"ale když se pak někdo podívá zpět
No právě. Komentáře ke commitům se nepíšou kvůli tomu „až se někdo podívá zpět“. Je možné, že někdo má takovou úchylku, že si vytiskne komentáře ke commitům a čte si je před usnutím, ale na to není potřeba brát ohledy."
No ono to není k vůli nějaké úchylce, ale když se třeba dohledává, kdo třeba něco změnil, nebo je potřeba něco vrátit zpět. Až jednou budete v kódu, kam přispívá 30 lidí hledat nějakou změnu před měsícem, tak Vám hláška "drobné úpravy" opravdu pomůže. To už si tam zrovna můžete psát 'AAAA' a 'BBBBBBB' a nebo je nepsát vůbec.
Ale uznávám, že správné commitové messages jsou samozřejmě důležité i jindy, třeba např. u pull requestů. Pokud je ale konzistentně píšete správně, tak už ty situace vyjmenovávat nemusíte. Prostě mají smysl.
"že si vytiskne komentáře ke commitům a čte si je před usnutím"
To nesmíte brát ostatní podle sebe.
když se třeba dohledává, kdo třeba něco změnil
Nikdo nedohledává kdo třeba něco změnil. Pokud hledáte změny od konkrétního autora, nepoužijete k tomu komentáře ke commitu, ale údaje o tom, kdo je autorem commitu. Pokud hledáte důvod konkrétní změny, necháte si verzovací systém vybrat ty commity, ve kterých se daný kód změnil. Commit „drobné úpravy“ mezi nimi s největší pravděpodobností nebude. Pokud bude, podle hlášky víte, že ho můžete přeskočit. A pokud přesto zjistíte, že se daným commitem kód podstatně změnil, aspoň podle té zprávy poznáte, že autor ve skutečnosti udělal jinou změnu, než si myslel. Jiná hláška by vám to nijak neusnadnila.
je potřeba něco vrátit zpět
Nikdy není potřeba něco vrátit zpět. Může se například ukázat, že daný commit zavlekl do aplikaci chybu, pak je potřeba vrátit zpět ten konkrétní commit – což lze udělat bez ohledu na to, jaký má komentář.
Až jednou budete v kódu, kam přispívá 30 lidí hledat nějakou změnu před měsícem, tak Vám hláška "drobné úpravy" opravdu pomůže.
Pokud bych hledal nějakou změnu před měsícem použiju k tou časové značky na commitech, komentář mi bude k ničemu. Ale nikdy jsem nic takového nedělal a nevím proč bych to dělal – možná je to nějaká specifická situace u menších projektů, na kterých pracuje jenom 30 lidí. Občas hledám změny, kterými byla implementovaná nějaká změna (např. požadavek zákazníka), nebo hledám důvody, proč se změnil konkrétní kód. Ani v jednom případě případě mi nijak nepřekáží komentář „drobné úpravy“ u commitu, který provádí jen drobné úpravy.
správné commitové messages jsou samozřejmě důležité i jindy, třeba např. u pull requestů
U pull requestu je důležitý především popis toho pull requestu.
Prostě mají smysl.
To právě není pravda. Komentáře nemají smysl samy o sobě. Komentáře mají nějaký účel, a u některých commitů jsou ty komentáře důležitější než u jiných. Důležitější než komentář je třeba to, co vše je do commitu zahrnuto (aby nebyl ani moc malý ani moc velký).
Je to podobné, jako s komentáři v kódu. Dříve také všichni tvrdili, že správný kód má mít spoustu komentářů, a zároveň na to všichni kašlali. A když jste někde narazil na „vzorově“ okomentovaný kód, byl tam okomentovaný každý řádek, a to způsobem
i = i + 2 //k i se přičte jedna
(To 2 vs „jedna“ je záměr.) Dnes už snad většina programátorů ví, že rozhraní musí být především samovysvětlující a nesmí v něm být žádná překvapení – i bez dokumentace, protože tu nikdo nečte před tím, než začne daný kód používat. V dokumentaci rozhraní pak musí být uvedeny věci, které nejsou na první pohled zřejmé nebo které mohou být sporné – ale pořád to nesmí být žádné záludnosti, na které programátor přijde, až když mu program nefunguje. A to jsme pořád jen u dokumentačních komentářů. Dál je implementace, a ta má být napsaná tak, aby byla srozumitelná sama o sobě a komentáře nepotřebovala. A teprve když není jiná možnost a ten kód je potřeba napsat z nějakého důvodu nesrozumitelně přichází prostor pro komentář v kódu, který to nesrozumitelné místo vysvětlí.
A úplně stejné je to u komentářů ke commitům. Různé commity jsou různě závažné, a tomu musí odpovídat péče věnovaná danému commitu (včetně jeho komentáře).
Všimněte si, že váš popis toho, proč jsou komentáře ke commitům důležité, je plný slov někdo, něco, třeba. Na to jsem narážel tím čtením před usnutím. Ne, komentáře ke commitům se nepíšou proto, že by někdy někdo třeba chtěl udělat něco, k čemu bude třeba potřebovat něco z komentáře. Existují různé způsoby, k čemu se dají komentáře commitů použít, a různé projekty je dokonce mohou používat různě. A komentáře je potřeba přizpůsobit těm konkrétním způsobům použití, ne je prostě mít.
http://stackoverflow.com/questions/15324900/standard-to-follow-when-writing-git-commit-messages
http://chris.beams.io/posts/git-commit/
https://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message
https://wiki.openstack.org/wiki/GitCommitMessages
Jen dodám, že někdy pořádně nevíte ze kdy to hledáte nebo od koho, takže ten Váš výtvor je k ničemu. Nevím, proč by jste měl poslouchat nebo věřit zrovna mě, tak si projděte odkazy výše a případně UTFG.
Žádný z těch odkazů nevyvrací nic z toho, co jsem napsal. Váš popis neustále odpovídá tomu, že si někdo vypíše pod sebe seznam jednotlivých commitů s komentáři, a ty komentáře si jeden po druhém pročítá, přičemž není znám důvod, proč tak činí. Ano, je možné že tohle někdo dělá, ale nevidím k tomu jediní rozumný důvod. Takže nevidím důvod, proč tomuto způsobu zacházení přizpůsobovat komentáře.
"Žádný z těch odkazů nevyvrací nic z toho, co jsem napsal"
Ale já Vám nic vyvracet nechci. Vyslovuji se jen k tomu, jak a proč psát smysluplné commit messages. Co si Vy píšete do commitů je mi ....
Takže abych to shrnul. Doporučujete psát commit messages které se nevyslovují k účelu commitu a případnou změnu nebo něco hledat diffem na celý projekt. Paráda. Přeju hodně zábavy.
Takže abych to shrnul. Doporučujete psát commit messages které se nevyslovují k účelu commitu a případnou změnu nebo něco hledat diffem na celý projekt. Paráda. Přeju hodně zábavy.
Shrnujete to špatně. Já doporučuju psát takové komentáře ke commitu, které právě popisují účel commitu.
Diskutujeme tu pod odkazem na konkrétní git repository a konkrétní commit. Tak popište, co konkrétně a proč byste s tím repository dělal, aby vám tenhle konkrétní komentář zkomplikoval práci. To, že já ten příklad nevidím, neznamená, že neexistuje – ale pokud vy ho vidíte, tak ho popište konkrétně a nepište, že někdy někdo bude třeba něco…
Příklad? Dobře. Tak až budu hledat, kde někdo odmazal 390 řádků, tak radši uvidím commit třeba "Smazáno 390 řádků" + třeba ": file: Xyz.abc" než "Drobné úpravy".
Odkazy jsem Vám dal, dávám ještě jeden, tehdy jsem tam byl osobně, je od D. Grudla, který napsal a vedl velmi úspěšný a zdařilý framework Nette.
https://www.youtube.com/watch?v=HD-GTRdbdgo
O commitech od 15-té minuty
Speciálně pro Vás, aby jste se zase nemusel chytat za kde co, tak by příklad taky mohl být:
Až bud hledat, kde někdo něco umazal, tak budu hledat v commit messages fulltext mezi "Smazáno"... než tam mít nějaké "Drobné úpravy". To tam můžu mít zrovna "flkkjhfjhsdifnjosvfm", protože většinou každý ten commit přidává nějaké úpravy.
V tom případě chápeme ty odkázané návody každý úplně jinak, protože podle mne ten váš návod na vytváření komentáře commitu porušuje vše, co je v těch článcích/videích napsáno/řečeno.
Já osobně tedy váš komentář „smazáno 390 řádků, přidáno 35 řádků“ považuju za ukázkový příklad toho, jak komentář ke commitu vypadat nemá. Tyhle informace vidím v diffu, a navíc tam jsou správně, což o tom komentáři platit nemusí. Naopak se z toho komentáře vůbec nedozvím, proč ty řádky byly smazány a jiné přidány, což je přesně to, co od komentáře commitu očekávám.
No a k čemu je dobré hledat, jestli někdo náhodou nesmazal libovolných 390 řádků kódu, to už radši ani nechci vědět. A řekl bych, že musíte být dost zoufalý, když místo toho hledáte commit, ve kterém někdo přidal čtyři závorky. Protože až tak podrobnou statistiku asi do komentářů ke commitu nepíšete.
"váš komentář „smazáno 390 řádků, přidáno 35 řádků“"
"No a k čemu je dobré hledat, jestli někdo náhodou nesmazal libovolných 390 řádků kódu,..."
Nezapomněl jste si vzít prášek?
Chtěl jste příklad k tomu commitu, na kterém začalo toto vlákno. Já nemohu za to, že někdo něco smaže a udělá z toho commit a ještě tam napíše "Drobné úpravy" a pak se objeví pacient, který nedokáže pochopit, že když už i dá někdo do commitu jen to, že něco smazal a napíše message "Dobrý den", tak to není messge, který se vyslovuje k účelu commitu.
Nebo Vám připadá, že operaci smazání x řádků popisuje "Drobná úprava"? Tzn. pokud Vám napíšu "udělejte Drobnou úpravu" tak půjdete a něco smažete?
Nehledě na to, že commitovat si může kdo chce, co chce. Když mu připadá potřebné dělat commit u smazání řádků, no proč ne. To ale neznamená, že tam napíše "Hádej co jsem udělal" a je to v pohodě - to má totiž úplně stejný význam jako "Drobná úprava".
Toto je k tomu poslední komentář. Tímto Vás zdravím, přeji příjemný čas strávený v DIFFu.
Podle mne komentáře ke commitu nemá popisovat, co ten commit dělá (to je vidět z diffu a je to tam správně, což o komentáři nemusí platit), ale jaký ta úprava má účel. Komentář „drobná úprava“ ještě cosi o účelu té úpravy říká, komentář „smazáno 390 řádků“ o účelu toho mazání neříká vůbec nic, a navíc mi sděluje informaci, kterou mi lépe sdělí verzovací systém.
Ano, drobná úprava může vypadat i tak, že se smaže 390 řádků. Nevidím jediný důvod, proč by commit nemohl obsahovat jenom mazání řádků. A nevidím v tom repository žádný commit s komentářem „Dobrý den“. Odpovědi na to, proč byste v komentářích hledal text „smazáno 390 řádků“ jsem se nedočkal.
Aspoň že předposlední věta vašeho komentáře je rozumná.