mbox series

[v2,00/14] SHA-256 CVS and SVN patches

Message ID 20200622180418.2418483-1-sandals@crustytoothpaste.net (mailing list archive)
Headers show
Series SHA-256 CVS and SVN patches | expand

Message

brian m. carlson June 22, 2020, 6:04 p.m. UTC
I recently sent out part 2/3 of the SHA-256 work and then I realized
that I hadn't built with the CVS and SVN adapters.  So this is part
2.5/3 (or, to be pedantic, 3/4).

The patches are ordered roughly with test-only fixes, then SVN, and then
CVS.  There are no additional tests here because everything fails with
SHA-256 before and passes afterwards.

Changes from v1:
* Adopt Andreas's suggestion to preserve more of the structure of the
  original function.

Range-diff below.

brian m. carlson (14):
  t9109: make test hash independent
  t9168: make test hash independent
  t9108: make test hash independent
  t9100: make test work with SHA-256
  t9104: make hash size independent
  t9101: make hash independent
  t/lib-git-svn: make hash size independent
  perl: create and switch variables for hash constants
  perl: make Git::IndexInfo work with SHA-256
  perl: make SVN code hash independent
  git-svn: set the OID length based on hash algorithm
  git-cvsserver: port to SHA-256
  git-cvsimport: port to SHA-256
  git-cvsexportcommit: port to SHA-256

 git-cvsexportcommit.perl                   | 14 ++--
 git-cvsimport.perl                         |  8 +--
 git-cvsserver.perl                         | 37 +++++-----
 git-svn.perl                               | 25 ++++---
 perl/Git/IndexInfo.pm                      |  6 +-
 perl/Git/SVN.pm                            | 83 +++++++++++-----------
 perl/Git/SVN/Editor.pm                     |  8 +--
 perl/Git/SVN/Fetcher.pm                    |  6 +-
 perl/Git/SVN/Log.pm                        |  2 +-
 perl/Git/SVN/Ra.pm                         |  4 +-
 t/lib-git-svn.sh                           | 17 +++--
 t/t9100-git-svn-basic.sh                   | 19 ++++-
 t/t9101-git-svn-props.sh                   | 12 ++--
 t/t9104-git-svn-follow-parent.sh           |  3 +-
 t/t9108-git-svn-glob.sh                    |  4 +-
 t/t9109-git-svn-multi-glob.sh              |  6 +-
 t/t9168-git-svn-partially-globbed-names.sh |  8 +--
 17 files changed, 151 insertions(+), 111 deletions(-)

Range-diff against v1:
 1:  cc8a204394 =  1:  cc8a204394 t9109: make test hash independent
 2:  814c3423ef =  2:  814c3423ef t9168: make test hash independent
 3:  81b1f48671 =  3:  81b1f48671 t9108: make test hash independent
 4:  8571f65b17 =  4:  8571f65b17 t9100: make test work with SHA-256
 5:  d93ded4e74 =  5:  d93ded4e74 t9104: make hash size independent
 6:  3e401f3e48 =  6:  3e401f3e48 t9101: make hash independent
 7:  02cb87e4be !  7:  17cc278f1d t/lib-git-svn: make hash size independent
    @@ t/lib-git-svn.sh: maybe_start_httpd () {
      
      convert_to_rev_db () {
     -	perl -w -- - "$@" <<\EOF
    --use strict;
    -+	perl -w -e "use strict; my \$oidlen = $(test_oid rawsz);" -e '
    ++	perl -w -- - "$(test_oid rawsz)" "$@" <<\EOF
    + use strict;
    ++my $oidlen = shift;
      @ARGV == 2 or die "usage: convert_to_rev_db <input> <output>";
    --open my $wr, '+>', $ARGV[1] or die "$!: couldn't open: $ARGV[1]";
    --open my $rd, '<', $ARGV[0] or die "$!: couldn't open: $ARGV[0]";
     +my $record_size = $oidlen + 4;
     +my $hexlen = $oidlen * 2;
    -+open my $wr, "+>", $ARGV[1] or die "$!: couldn'\''t open: $ARGV[1]";
    -+open my $rd, "<", $ARGV[0] or die "$!: couldn'\''t open: $ARGV[0]";
    + open my $wr, '+>', $ARGV[1] or die "$!: couldn't open: $ARGV[1]";
    + open my $rd, '<', $ARGV[0] or die "$!: couldn't open: $ARGV[0]";
      my $size = (stat($rd))[7];
     -($size % 24) == 0 or die "Inconsistent size: $size";
     -while (sysread($rd, my $buf, 24) == 24) {
    @@ t/lib-git-svn.sh: maybe_start_httpd () {
      		}
      	}
      	seek $wr, $offset, 0 or die $!;
    - 	print $wr $c,"\n" or die $!;
    - }
    - close $wr or die $!;
    --close $rd or die $!;
    --EOF
    -+close $rd or die $!;' \
    -+	-- "$@"
    - }
    - 
    - require_svnserve () {
 8:  d59b8ac38e =  8:  a59dbf9637 perl: create and switch variables for hash constants
 9:  d3c991fb52 =  9:  c2ff48efa4 perl: make Git::IndexInfo work with SHA-256
10:  7f87880cb2 = 10:  2b5d83ad2f perl: make SVN code hash independent
11:  9100fbd4cf = 11:  66a46baf27 git-svn: set the OID length based on hash algorithm
12:  9655d1f0ea = 12:  b2309179f6 git-cvsserver: port to SHA-256
13:  618abf0af1 = 13:  0d5680f2e6 git-cvsimport: port to SHA-256
14:  290f0ec11f = 14:  fecbc1fbf9 git-cvsexportcommit: port to SHA-256