Re: [PATCH] New files in git weren't being downloaded during CVS update
- From
Junio C Hamano <junkio@cox.net>
- Date
- Jan 22, 2007, 02:35 UTC
- Message-ID
- <7vmz4bwzy4.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <200701211425.12971.andyparkins@gmail.com>
Andy Parkins <andyparkins@gmail.com> writes:
Show 24 quoted lines
> If a repository was checked out via git-cvsserver and then later a new > file is added to the git repository via some other method; a CVS update > wasn't fetching the new file. > > It would be reported as a new file as > A some/dir/newfile.c > but would never appear in the directory. > > The problem (I think) is that when git-cvsserver detected a new file, it > was issuing the new file message then skipping the actual file send part > and moving to the next file its list. In fact only an updated file > would be transmitted. > > The fix is to make the added file section identical to the udpated file > section. This additionally makes git-cvsserver behave like a > traditional CVS server and will now output > U some/dir/newfile.c > for an added file. > > Signed-off-by: Andy Parkins <andyparkins@gmail.com> > --- > This is in response to Simon Schubert's suggestion that T_ADDED is an > inappropriate category for a remotely added file. Instead this treats > remotely added files the same as remotely changed files.
Martin, I think this looks like a sane change.
I do not have anything other than the real CVS running on a Linux box to try this change (most notably I do not do Eclipse nor Tortoise) myself and I am reluctant to touch things I cannot personally test at this stage near the release. I am sure Andy tested this for his own use in his environment, but I would really appreciate a third party Ack from an environment different from the originator of the patch.
Show 26 quoted lines
> git-cvsserver.perl | 10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/git-cvsserver.perl b/git-cvsserver.perl
> index a33a876..501c182 100755
> --- a/git-cvsserver.perl
> +++ b/git-cvsserver.perl
> @@ -879,11 +879,11 @@ sub req_update
> elsif ( !defined($wrev) || $wrev == 0 )
> {
> $log->info("Tell the client the file will be added");
> - print "MT text A \n";
> - print "MT fname $filename\n";
> - print "MT newline\n";
> - next;
> -
> + print "MT +updated\n";
> + print "MT text U \n";
> + print "MT fname $filename\n";
> + print "MT newline\n";
> + print "MT -updated\n";
> }
> else {
> $log->info("Updating '$filename' $wrev");
> --
> 1.5.0.rc1.gf4b6c