Git commit messages
From Dreamwidth Notes
Revision as of 23:10, 26 September 2013 by AzureLunaticDW (Talk | contribs)
Guidelines on Git pull requests
From a #dreamwidth_dev conversation:
[02:18] <_Simon_> THat does lead to a question, actually - is there anything in particular you'd like to see in a pull request's text? Presumably t he bug number that it refers to, but otherwise... summary of what's done? Changelog? Just "Fixed it!"? (I realise this will depend a lot on the nature of the changes) [02:22] <Afuna> bsically, we want: [02:22] <Afuna> (Bug 1234) Description of what changed [02:22] <Bugsy> Bug http://bugs.dwscoalition.org/show_bug.cgi?id=1234 trivial, P5, -undecided-, dwbugzilla, RESOLVED FIXED, Overeager offer to delete old S2 layers owned by system [02:22] <Afuna> optional extended information [02:22] <Afuna> aww bugsy [02:22] <Afuna> we'll be coming out with actual guidelines shortly! [02:22] <Afuna> (at some point *G*) [02:23] <_Simon_> hee, bugsy :-) [02:23] <kunzite> i seem to be one of the poor guinea pigs here in Noobletville. :D [02:23] <_Simon_> fair enough [02:23] <_Simon_> kunzite: I've been submitting them too, I was just wondering whether there was specific stuff I should be saying :-) [02:23] <Afuna> hmm. http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html is a good start [02:23] <Afuna> and we're going to be basing what we want on that , plus requiring the bug number at the start [02:24] <_Simon_> err... those guidelines make sense as pull request messages. Not so much as commit messages, I'd have thought? [02:24] <Afuna> ahhh well! [02:24] <Afuna> the commit messages get used for the pull request [02:24] <Afuna> so in a sense , they're the same *G* [02:24] <Afuna> the goal basically is [02:24] <_Simon_> they do? [02:24] <Afuna> for someone reading the log later on [02:25] <Afuna> for it to still make sense t othem [02:25] * Afuna nods [02:25] <_Simon_> ah, I guess later on the pull request text has effectively vanished [02:25] <Afuna> eyeah [02:25] <Afuna> the pull requset text will still be on the website but it won't be part of the regular changelog [02:25] <Afuna> so the commit message is actually v. important [02:25] <Afuna> as it's what you se when going over history [02:25] <_Simon_> so do you want multiple work-in-progress commits to be rolled up into a single coherent one with a nice message before being submitted? [02:26] <Afuna> hmm. see there are arguments either way [02:26] <_Simon_> because I've submitted stuff with multiple commits of "added debugging stuff"; "removed debugging stuff"; "flailed a bit" and so forth... [02:26] <kunzite> i heart flailing. [02:26] <_Simon_> :-) [02:26] <Afuna> I'm in favor of just splatting them all in [02:26] <Afuna> *but* I'm not against cleaning up thinsg using git commit --squash [02:27] <_Simon_> Fair enough. Depends how embarassing the false-starts are, I guess ;-) [02:27] <Afuna> (because sometimes it's useful to see: "oh did this thing. which casued bug. don't do that. did this again" [02:27] <Afuna> yup! [02:27] <Afuna> basically *G* [02:27] <Afuna> so. right now we have in changelog [02:27] <Afuna> some ohhh maybe three changes to the same file [02:27] <_Simon_> (the last thing I worked on, it ended up such a mess that I actually started a new branch to do it again cleanly to submit...) [02:27] <Afuna> (apache/livejournal.pm) [02:27] <Afuna> because we one thing that kept running into edge cases [02:27] <Afuna> heeee [02:28] <Afuna> in that case, I would suggest git commit --squash [02:28] <kunzite> ok lovelies. i'm going to sleep. [02:28] <kunzite> <3 [02:28] <Afuna> that should prove useful for cleaning up the most egregious of... [02:28] <Afuna> stuff [02:28] <Afuna> night [02:28] <Afuna> ! [02:28] <_Simon_> *nod* In that case, the *code* was also in a mess. I couldn't remember where I had left warns etc all over the place, added stuff then commented it out, etc. But, yes :-) [02:29] * Afuna nod nods [02:29] <Afuna> it used to be that putting it all into zilla sort of fixed that because we'd just get the finished product [02:29] <_Simon_> *nod* [02:29] <Afuna> but also sometimes looking back at code ,there's the sense of: [02:29] <Afuna> "oh, why did they do $this and not $that?" [02:29] <Afuna> and you look back into history [02:29] <Afuna> and it was shoved in as part of some giant commit with no context [02:30] <_Simon_> and hopefully somebody explained it in the commit, or you see a sequence where they tried the other and it didn't work. I see [02:30] <Afuna> or with all context having gone on probably in some comment thread somewhere else or [02:30] <Afuna> yeah *nods* [02:30] <Afuna> in an [02:30] <Afuna> whatsis [02:30] <Afuna> intermediat ecommit [02:30] <Afuna> OTOH I do see the, how it'd be helpful to just be able t oclean out warns ;-) [02:31] <Afuna> (what I sometimse do: I use "git stash" to save away debug lines for later [02:31] <Afuna> but without putting it into the main ... commit thing [02:31] <_Simon_> *nod* [02:31] <Afuna> or else I'll save the warns in a commit where there are no other functional changes [02:31] <_Simon_> that makes sense [02:31] <Afuna> so that it's easy to find them again [02:31] <Afuna> of course that's easy to say after the fact *G*