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