diff options
author | brian m. carlson <sandals@crustytoothpaste.net> | 2020-06-22 20:04:15 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-06-22 20:21:07 +0200 |
commit | 66eadd119a02aa9a001d44006563b3bd99b41d54 (patch) | |
tree | 32a37f86a49f73329b0c030d1d25130d3f4b0592 /git-svn.perl | |
parent | perl: make SVN code hash independent (diff) | |
download | git-66eadd119a02aa9a001d44006563b3bd99b41d54.tar.xz git-66eadd119a02aa9a001d44006563b3bd99b41d54.zip |
git-svn: set the OID length based on hash algorithm
When reading the configuration or when creating a new repository, load
the extensions.objectFormat value and set the object ID length to 64 if
it's "sha256". Note that we use the hex length in git-svn because most
of our processing is done on hex values, not binary ones.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Acked-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-x | git-svn.perl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl index 00276c051b..58f5a7ac8f 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -500,6 +500,7 @@ sub do_git_init_db { command_noisy('config', "$pfx.preserve-empty-dirs", 'true'); command_noisy('config', "$pfx.placeholder-filename", $$fname); } + load_object_format(); } sub init_subdir { @@ -1977,9 +1978,15 @@ sub read_git_config { } } } + load_object_format(); delete @$opts{@config_only} if @config_only; } +sub load_object_format { + chomp(my $hash = `git config --get extensions.objectformat`); + $::oid_length = 64 if $hash eq 'sha256'; +} + sub extract_metadata { my $id = shift or return (undef, undef, undef); my ($url, $rev, $uuid) = ($id =~ /^\s*git-svn-id:\s+(.*)\@(\d+) |