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