Re: Finally implement "git log --follow"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/19/07, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

 - the commit simplification isn't done. So you cannot do "--follow"
   together with somethign that wants a contiguous history (like gitk) and
   uses "--parents".

   This is pretty fundamental. The commit simplification is a separate
   phase over the (non-linear!) commit space, and the "git log --follow"
   logic is really a *different* logic over the _linear_ space (namely the
   streaming "log output" space).

   Two totally different things, in other words. And not compatible.


Of course I need exactly that!

Really don't want to thrash away the nice qgit graph, also in file
histories, and at the same time I really like that '--follow' feature,
so....

I've just started to hit the wall against the scary revision.c and
friends, my goal is to find a solution (trick/hack) to get the renames
also with --parents.

First of all I have commented out:

		/* Can't prune commits with rename following: the paths change.. */
// 		if (!revs->diffopt.follow_renames)
			revs->prune_fn = try_to_simplify_commit;

So I've see that with --parents set try_to_simplify_commit() does his
job and when the processing arrives in diff_tree_sha1() it is already
pruned, so also if the check

if (opt->follow_renames && diff_might_be_rename())

is true and the following try_to_follow_renames() is called, no
alternative tree is found.

My idea, after have understood a little bit better how it works, is to
'resurrect' the pruned info  before calling try_to_follow_renames().
To do this I was thinking of saving a pointer to some pruned tree
information in try_to_simplify_commit() and in case use that pointer
after in diff_tree_sha1() when needed.

Nightmares??? Perhaps, I'm just starting with this difficult piece of
code and probably (90%) I will give up before the end and very
probably (99%) all said before is just brain dead, but...anyway I have
to start from somewhere.

Marco
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux