summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-01-08 00:05:35 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-01-08 22:14:48 +0000
commit8d39b62c354c9e80b23274aab6d60b9e0546b536 (patch)
tree92e039271343b0bac5cf9b6c064d70e8875d3362
parent19c2d673555201bf2bf6891cdd69236b1e599fb0 (diff)
dgit: dsc Dgit field handling: Break out resolve_dsc_field_commit
No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xdgit33
1 files changed, 21 insertions, 12 deletions
diff --git a/dgit b/dgit
index 7d2dd85..933c008 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: