Re: Problem using GIT CVS-server
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 3, 2006, 19:49 UTC
- Message-ID
- <7v1wvaevno.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <46a038f90605030411o29af1d1bra3276353347516f6@mail.gmail.com>
"Martin Langhoff" <martin.langhoff@gmail.com> writes:
Show 7 quoted lines
> On 5/3/06, Martin Langhoff <martin.langhoff@gmail.com> wrote: >> Hmmm. 100% reproduceable -- looking at it now. > > Grumble. Some recent change has broken cvsserver -- if I rewind to the > commit I made of cvsserver, the checkout works correctly. I suspect > changes to git-diff-tree. However, I'll play dumb and try bisect to > see where it leads...
Ah, the "master" git-log is C-rewrite version and does not show the parents on the "commit (.*)" line itself with --parents.
Could you see if the attached patch helps?
When Linus and I did the rewrite, we tried to be somewhat careful not to break people's expectations, but at the same time, we considered that the log/show/whatchanged frontends to rev-list are primarily for human consumption, so we "improved" the details a bit [*1*], which obviously broke cvsserver's use of git-log.
*1* Another difference I know about is that whatchanged used to start an entry with "diff-tree" but now says "commit" like others in "log" family of frontends.
-- >8 --
diff --git a/git-cvsserver.perl b/git-cvsserver.perl index 11d153c..71e384c 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -2076,14 +2076,15 @@ sub update # TODO: log processing is memory bound # if we can parse into a 2nd file that is in reverse order # we can probably do something really efficient - my @git_log_params = ('--parents', '--topo-order'); + my @git_rl_params = ('--parents', '--topo-order', '--pretty'); if (defined $lastcommit) { - push @git_log_params, "$lastcommit..$self->{module}"; + push @git_rl_params, "$lastcommit..$self->{module}"; } else { - push @git_log_params, $self->{module}; + push @git_rl_params, $self->{module}; } - open(GITLOG, '-|', 'git-log', @git_log_params) or die "Cannot call git-log: $!"; + open(GITLOG, '-|', 'git-rev-list', + @git_rl_params) or die "Cannot call git-rev-list: $!"; my @commits;