summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-03 12:18:00 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-03 13:59:13 +0100
commit51a3f746ef8525c1a24085b97e28cc36c85b1268 (patch)
tree0d0ee873f3b6ff26b51901845679614af749688b
parente59fb2f70123dc40f515f60d707c4f99653d6d07 (diff)
dgit: Provide print-unapplied-treeish subcommand.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r--debian/changelog1
-rwxr-xr-xdgit18
-rw-r--r--dgit.120
3 files changed, 39 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 4ea57ef..791066d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ dgit (6.5~) unstable; urgency=medium
* test suite: Add t-tstunt-parsechangelog to many gdr tests.
* test suite: editing a test script overrides DGIT_TESTS_PROGRESSIVE.
* dgit: Rename --dgit-view-save to --save-dgit-view, leaving an alias.
+ * dgit: Provide print-unapplied-treeish subcommand.
--
diff --git a/dgit b/dgit
index 777532e..48feca9 100755
--- a/dgit
+++ b/dgit
@@ -6558,6 +6558,24 @@ sub cmd_quilt_fixup {
build_maybe_quilt_fixup();
}
+sub cmd_print_unapplied_treeish {
+ badusage "incorrect arguments to dgit print-unapplied-treeish" if @ARGV;
+ my $headref = git_rev_parse('HEAD');
+ my $clogp = commit_getclogp $headref;
+ $package = getfield $clogp, 'Source';
+ $version = getfield $clogp, 'Version';
+ $isuite = getfield $clogp, 'Distribution';
+ $csuite = $isuite; # we want this to be offline!
+ notpushing();
+
+ prep_ud();
+ changedir $playground;
+ my $uv = upstreamversion $version;
+ quilt_make_fake_dsc($uv);
+ my $u = quilt_fakedsc2unapplied($headref, $uv);
+ print $u, "\n" or die $!;
+}
+
sub import_dsc_result {
my ($dstref, $newhash, $what_log, $what_msg) = @_;
my @cmd = (git_update_ref_cmd $what_log, $dstref, $newhash);
diff --git a/dgit.1 b/dgit.1
index 4ea34da..a21f212 100644
--- a/dgit.1
+++ b/dgit.1
@@ -471,6 +471,26 @@ to cause it to exclude exactly the .git diredcory
and nothing else.
The separate arguments are unquoted, separated by spaces,
and do not contain spaces.
+.TP
+.B dgit print-unapplied-treeish
+Constructs a tree-ish approximating the patches-unapplied state
+of your 3.0 (quilt) package,
+and prints the git object name to stdout.
+This requires appropriate .orig tarballs.
+This tree object is identical to your .origs
+as regards upstream files.
+The contents of the debian subdirectory is not interesting
+and should not be inspected;
+except that debian/patches will be identical to your HEAD.
+
+To make this operate off-line,
+the access configuration key
+which is used to determine the build-products-dir
+is the uncanonicalised version of the suite name from the changelog,
+or (of course) dgit.default.build-products-dir.
+See ACCESS CONFIGURATION, below.
+
+This function is primarily provided for the benefit of git-debrebase.
.SH OPTIONS
.TP
.BR --dry-run " | " -n