Jonathan Nieder writes ("Re: want <reason> option to git-rebase"): > Oh, good catch. "git rebase" already generally does the right thing > when GIT_REFLOG_ACTION is set (by only appending to it and never > replacing it). Great. I indeed did not know about this. > Ian, does that work well for you? If so, any ideas where it should go > in the documentation to be more discoverable for next time? Thanks for asking exactly the right question :-). I didn't make a record of exactly where I looked but I'm pretty sure I looked at the manpages for git-reflog and git-rebase. I think I probably also looked at git-update-ref; I have read git-update-ref a number of times. Right now in Debian unstable I see that none of these places document this convention. I think git-reflog ought to mention it, so that it says where the information it provides comes from. It also ought to be mentioned in git-update-ref, because all callers of git-update-ref need to implement it ! Indeed, because I didn't know about this convention, dgit and git-debrebase do not honour it. At least in my case, if it had been in git-update-ref I would have implemented it myself and then I would obviously have thought of making use of it myself. Also, I have to say, the documentation for GIT_REFLOG_ACTION in git(1) is very obscure. It sort of generally waffles around what it is for, but it does not say: * what does this variable contain * who can and should set it * who should consume it * what the rules are for modifying it I don't think simply adding a cross-reference to GIT_REFLOG_ACTION in git(1) would be sufficient, without also improving this part. The explanations provided by you and Johannes, here in these emails, are much much better: > >> "git rebase" sets this itself, so it doesn't solve your problem. > > > > If it does so unconditionally, then that is a bug. If a script > > wants to set GIT_REFLOG_ACTION, but finds that it is already set, > > then it must not change the value. set_reflog_action in > > git-sh-setup does the right thing. > > > > So, if there is another script or application around git-rebase, then it > > should just set GIT_REFLOG_ACTION (if it is not already set) and export the > > environment variable to git-rebase. > > Oh, good catch. "git rebase" already generally does the right thing > when GIT_REFLOG_ACTION is set (by only appending to it and never > replacing it). Maybe some of this prose, which explains things quite well, could be reworked into a form suitable for the git docs. (Even though there seems to be disagreement about whether a subcommand may *append* to GIT_REFLOG_ACTION; which, ISTM, is a practice which ought to be encouraged rather than discouraged.) Regards, Ian. -- Ian Jackson <ijackson@xxxxxxxxxxxxxxxxxxxxxx> These opinions are my own. If I emailed you from an address @fyvzl.net or @evade.org.uk, that is a private address which bypasses my fierce spamfilter.