On Wed, Oct 31, 2012 at 2:51 AM, Jonathan Nieder <jrnie...@gmail.com> wrote:
> Felipe Contreras wrote:
>> It's not my job to
>> explain to you that 'git fast-export' doesn't work this way, you have
>> a command line to type those commands and see for yourself if they do
>> what you think they do with a vanilla version of git. That's exactly
>> what I did, to make sure I'm not using assumptions as basis for
>> arguing, it took me a few minutes.
> Well no, when I run "git blame" 10 years down the line and do not
> understand what your code is doing, it is not at all reasonable to
> expect me to checkout the parent commit, get it to compile with a
> modern toolchain, and type those commands for myself.
> Instead, the commit message should be self-contained and explain what
> the patch does.
> That has multiple parts:
> - first, what the current behavior is
> - second, what the intent behind the current behavior is. This is
> crucial information because presumably we want the change not to
> break that.
> - third, what change the patch makes
> - fourth, what the consequences of that are, in terms of new use
> cases that become possible and old use cases that become less
> - fifth, optionally, how the need for this change was discovered
> (real-life usage, code inspection, or something else)
> - sixth, optionally, implementation considerations and alternate
> approaches that were discarded
I don't see any "Explain in detail what different commands do, even if
they are irrelevant to the patch in question because someone might
think they would get broken by this patch when in fact they wouldn't",
that might belong in the discussion, but not in the commit message,
and certainly not in the form of any entitlement.
Again, it's _your_ responsibility to make sure the commands you say
might get broken do actually work with your current git, it's not mine
to run them for you, even though that's exactly what I did, because
I'm interested in getting things correctly on record.
And FTR, since you removed it, here is what I proposed to add to the
The reason this happens is that before traversing the commits,
fast-export checks if any of the refs point to the same object, and
any duplicated ref gets added to a list in order to issue 'reset'
commands after the traversing. Unfortunately, it's not even checking
if the commit is flagged as UNINTERESTING. The fix of course, is to do
With that, all the points above are tackled, except fourth, because
there aren't any.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html