From 8d39b62c354c9e80b23274aab6d60b9e0546b536 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 8 Jan 2017 00:05:35 +0000 Subject: [PATCH 1/1] dgit: dsc Dgit field handling: Break out resolve_dsc_field_commit No functional change. Signed-off-by: Ian Jackson --- dgit | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/dgit b/dgit index 7d2dd851..933c0082 100755 --- a/dgit +++ b/dgit @@ -2728,6 +2728,25 @@ sub parse_dsc_field ($$) { } } +sub resolve_dsc_field_commit ($$) { + my ($already_distro, $already_mapref) = @_; + + return unless defined $dsc_hash; + + my $rewritemapdata = git_cat_file $already_mapref.':map'; + if (defined $rewritemapdata + && $rewritemapdata =~ m/^$dsc_hash(?:[ \t](\w+))/m) { + progress "server's git history rewrite map contains a relevant entry!"; + + $dsc_hash = $1; + if (defined $dsc_hash) { + progress "using rewritten git hash in place of .dsc value"; + } else { + progress "server data says .dsc hash is to be disregarded"; + } + } +} + sub fetch_from_archive () { ensure_setup_existing_tree(); @@ -2740,22 +2759,12 @@ sub fetch_from_archive () { if ($dsc) { parse_dsc_field($dsc, 'last upload to archive'); + resolve_dsc_field_commit access_basedistro, + lrfetchrefs."/".$rewritemap } else { progress "no version available from the archive"; } - my $rewritemapdata = git_cat_file lrfetchrefs."/".$rewritemap.':map'; - if (defined $rewritemapdata - && $rewritemapdata =~ m/^$dsc_hash(?:[ \t](\w+))/m) { - progress "server's git history rewrite map contains a relevant entry!"; - $dsc_hash = $1; - if (defined $dsc_hash) { - progress "using rewritten git hash in place of .dsc value"; - } else { - progress "server data says .dsc hash is to be disregarded"; - } - } - # If the archive's .dsc has a Dgit field, there are three # relevant git commitids we need to choose between and/or merge # together: -- 2.30.2