git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Libify puzzle
@ 2006-03-07 11:00 Johannes Schindelin
  2006-03-07 15:40 ` Fredrik Kuivinen
  0 siblings, 1 reply; 2+ messages in thread
From: Johannes Schindelin @ 2006-03-07 11:00 UTC (permalink / raw)
  To: git

Hi,

I was just thinking a bit about teaching git-blame about renames, and hit 
a problem: When rev-list stops because none of the parents has the file of 
interest, the program should look if the parents contained a similar file 
which got deleted. But the commit's parents were explicitely culled!

The problem seems to affect more programs when we try to libify them: What 
used to be a pipe between two programs, can no longer just set 
save_commit_buffer = 0 in the first stage, since the second might depend 
on the buffer.

Would the correct solution be something like reparse_commit(commit)?

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Libify puzzle
  2006-03-07 11:00 Libify puzzle Johannes Schindelin
@ 2006-03-07 15:40 ` Fredrik Kuivinen
  0 siblings, 0 replies; 2+ messages in thread
From: Fredrik Kuivinen @ 2006-03-07 15:40 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

On Tue, Mar 07, 2006 at 12:00:02PM +0100, Johannes Schindelin wrote:
> Hi,
> 
> I was just thinking a bit about teaching git-blame about renames, and hit 
> a problem: When rev-list stops because none of the parents has the file of 
> interest, the program should look if the parents contained a similar file 
> which got deleted. But the commit's parents were explicitely culled!
> 
> The problem seems to affect more programs when we try to libify them: What 
> used to be a pipe between two programs, can no longer just set 
> save_commit_buffer = 0 in the first stage, since the second might depend 
> on the buffer.
> 
> Would the correct solution be something like reparse_commit(commit)?
> 

I have started on the rename support for git-blame but it isn't
working code yet.

My idea is to change the revision.h interface a bit. Instead having
the pathname pruning hard-coded in try_to_simplify_commit as it is
today we could have a pointer to a function in the rev_info structure
which is called the same way as try_to_simplify_commit is called
now. Then users of the revision walking interface could populate the
rev_info structure with their own try_to_simplify_commit-like
function. In the case of git-blame that function could then do the
appropriate rename detection.

Thoughts/comments?

- Fredrik

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-03-07 15:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-07 11:00 Libify puzzle Johannes Schindelin
2006-03-07 15:40 ` Fredrik Kuivinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).