From: Nguyen Thai Ngoc Duy Date: Tue, 17 Aug 2010 03:44:11 GMT Subject: Re: [RFC/PATCH 2/2] blame: fix output in case of replacement by using parse_commit_repl() Message-ID: In-Reply-To: <20100817015901.5592.419.chriscool@tuxfamily.org> On Tue, Aug 17, 2010 at 11:59 AM, Christian Couder wrote: > git blame was not showing the sha1 of the replacement commit while > it was properly showing other information from the replacement commit, > because parse_commit() is buggy regarding replacement. > > Signed-off-by: Christian Couder > --- >  builtin/blame.c    |    4 ++-- >  t/t6050-replace.sh |    8 ++++++++ >  2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/builtin/blame.c b/builtin/blame.c > index 8f9e7b0..c469e09 100644 > --- a/builtin/blame.c > +++ b/builtin/blame.c > @@ -1226,7 +1226,7 @@ static void pass_blame(struct scoreboard *sb, struct origin *origin, int opt) > >                        if (sg_origin[i]) >                                continue; > -                       if (parse_commit(p)) > +                       if (parse_commit_repl(&p)) This is the hard way. There are another ~40 parse_commit() calls elsewhere. Most of them are in git commands, so we can check one by one. There are some calls in revision.c, sha1_name.c, tree.c, upload-pack.c and walker.c, which may be used in many places. Checking them would be harder. -- Duy