Print

Print


On Wed, May 21, 2014 at 12:08 AM, Kian-Tat Lim <[log in to unmask]> wrote:
        Can someone please define for me exactly what "clean history"
means?  I see at least four different components that people have
mentioned:

1) commit (on master) == feature or commit == bugfix (i.e. squashing)
2) commit messages are written and formatted correctly
3) avoidance of "messy merges" (define, please?)
4) avoidance of parallel branches other than at the tip (i.e. rebasing)

I think the first two are fine.  But in the ideal case, wouldn't
feature == ticket and bug == ticket, so commit (on master) == ticket merge?

For many small tickets, I think we would want to squash commits such that there is only a single commit for the ticket, and in that case I think it might make more sense to rebase them onto master and hence have no merge commit.  To tie the commit to the ticket we could add the ticket number to the log message instead.

For larger tickets that touch multiple code components or are done in multiple stages, it makes more sense to have multiple commits for a ticket, and in this case I'd still like to have an explicit merge-to-master commit.

I think the third is quite avoidable but does not *require* the fourth.


I'm not personally pushing for option 4 either - I think there are good arguments to be made for both that and having explicit merge commits for tickets, and I'm ambivalent about which is better.  But I'd definitely like to avoid merging master to a ticket branch; when that operation is necessary it's better to rebase.
 
        So I guess maybe I'm saying the problem really starts earlier,
with too much being done on each ticket.


I partially agree: a lot of the messiness does happen earlier, but I think we should let it happen then, and only demand that it be cleaned up (i.e. via rebase -i) before we merge it to master.

Jim




Use REPLY-ALL to reply to list

To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1