[PATCH] Added "-kb" to all the entries lines sent to the client
- From
- Andy Parkins <andyparkins@gmail.com>
- Date
- Feb 22, 2007, 16:06 UTC
- Message-ID
- <200702221606.42638.andyparkins@gmail.com>
- In-Reply-To
- <200702221504.32848.andyparkins@gmail.com>
git doesn't distinguish between binary and text files - so force the client to do the same by sending everything as a binary.
Signed-off-by: Andy Parkins <andyparkins@gmail.com> --- DON'T APPLY TO REPOSITORY
Turns out the CVS protocol isn't as hard as I thought.
http://soc.if.usp.br/doc/cvs/html-cvsclient/cvsclient_5.html#SEC6
Was all I needed. I've changed every entries line to send "-kb" as one of options. I believe this will make all files into binaries as far as CVS clients are concerned.
I am certain this is too heavy handed for most users. I submit this patch only to help other poor souls who might have the same problem in the future. (Hello poor soul).
Perhaps when the whole .gitattributes system has settled down that could be used to conditionally set -kb
git-cvsserver.perl | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/git-cvsserver.perl b/git-cvsserver.perl index f6ddf34..e8d74ae 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -374,7 +374,7 @@ sub req_add print "Checked-in $dirpart\n"; print "$filename\n"; - print "/$filepart/0///\n"; + print "/$filepart/0//-kb/\n"; $addcount++; } @@ -455,7 +455,7 @@ sub req_remove print "Checked-in $dirpart\n"; print "$filename\n"; - print "/$filepart/-1.$wrev///\n"; + print "/$filepart/-1.$wrev//-kb/\n"; $rmcount++; } @@ -726,7 +726,7 @@ sub req_co print $state->{CVSROOT} . "/$module/" . ( defined ( $git->{dir} ) and $git->{dir} ne "./" ? $git->{dir} . "/" : "" ) . "$git->{name}\n"; # this is an "entries" line - print "/$git->{name}/1.$git->{revision}///\n"; + print "/$git->{name}/1.$git->{revision}//-kb/\n"; # permissions print "u=$git->{mode},g=$git->{mode},o=$git->{mode}\n"; @@ -917,8 +917,8 @@ sub req_update print $state->{CVSROOT} . "/$state->{module}/$filename\n"; # this is an "entries" line - $log->debug("/$filepart/1.$meta->{revision}///"); - print "/$filepart/1.$meta->{revision}///\n"; + $log->debug("/$filepart/1.$meta->{revision}//-kb/"); + print "/$filepart/1.$meta->{revision}//-kb/\n"; # permissions $log->debug("SEND : u=$meta->{mode},g=$meta->{mode},o=$meta->{mode}"); @@ -961,8 +961,8 @@ sub req_update print "Update-existing $dirpart\n"; $log->debug($state->{CVSROOT} . "/$state->{module}/$filename"); print $state->{CVSROOT} . "/$state->{module}/$filename\n"; - $log->debug("/$filepart/1.$meta->{revision}///"); - print "/$filepart/1.$meta->{revision}///\n"; + $log->debug("/$filepart/1.$meta->{revision}//-kb/"); + print "/$filepart/1.$meta->{revision}//-kb/\n"; } } elsif ( $return == 1 ) @@ -975,7 +975,7 @@ sub req_update { print "Update-existing $dirpart\n"; print $state->{CVSROOT} . "/$state->{module}/$filename\n"; - print "/$filepart/1.$meta->{revision}/+//\n"; + print "/$filepart/1.$meta->{revision}/+/-kb/\n"; } } else @@ -1207,7 +1207,7 @@ sub req_ci } else { print "Checked-in $dirpart\n"; print "$filename\n"; - print "/$filepart/1.$meta->{revision}///\n"; + print "/$filepart/1.$meta->{revision}//-kb/\n"; } }
-- 1.5.0.1.51.g5a369