summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-02-18 11:32:21 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-06-16 16:06:58 +0100
commit7faed22010cacb9bd7cc029b860840947e03bf8a (patch)
treece6da313692a8b4cbc3718976fa477ff2cf2193c
parent4f22209a590da904276c3a52643473f44cc22d18 (diff)
git-debrebase: Introduce term `anchor'
And replace `breakwater merge' and `breakwater upstream merge' everywhere. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r--NOTES.git-debrebase18
-rw-r--r--README.git-debrebase2
-rwxr-xr-xgit-debrebase60
-rw-r--r--tests/lib-gdr6
4 files changed, 44 insertions, 42 deletions
diff --git a/NOTES.git-debrebase b/NOTES.git-debrebase
index d2b88b6..b4ffdda 100644
--- a/NOTES.git-debrebase
+++ b/NOTES.git-debrebase
@@ -44,29 +44,29 @@ overall format
[git-debrebase: split mixed commit, debian part]
[git-debrebase: split mixed commit, upstream-part]
[git-debrebase: convert dgit import, debian changes]
-[git-debrebase breakwater: convert dgit import, upstream changes]
+[git-debrebase anchor: convert dgit import, upstream changes]
[git-debrebase upstream-combine . PIECE[ PIECE...]: new upstream]
-[git-debrebase breakwater: new upstream NEW-UPSTREAM-VERSION, merge]
+[git-debrebase anchor: new upstream NEW-UPSTREAM-VERSION, merge]
[git-debrebase: new upstream NEW-UPSTREAM-VERSION, changelog]
[git-debrebase convert-from-gbp: drop patches]
-[git-debrebase breakwater: declare upstream]
+[git-debrebase anchor: declare upstream]
[git-debrebase pseudomerge: stitch]
[git-debrebase convert-to-gbp: commit patches]
m{^\[git-debrebase (?:\w*-)?upstream combine \.((?: $extra_orig_namepart_re)+)\]}
-Every breakwater commit must be a merge. In principle, this is not
+Every anchor commit must be a merge. In principle, this is not
necessary. After all, we are relying on the
- [git-debrebase breakwater: ...]
-commit message annotation in "declare" breakwater merges (which
-do not have any upstream changes), to distinguish those breakwater
+ [git-debrebase anchor: ...]
+commit message annotation in "declare" anchor merges (which
+do not have any upstream changes), to distinguish those anchor
merges from ordinary pseudomerges (which we might just try to strip).
However, the user is going to be doing git-rebase a lot. We really
-don't want them to rewrite a breakwater base commit. git-rebase
+don't want them to rewrite an anchor commit. git-rebase
trips up on merges, so that is a useful safety catch.
@@ -267,7 +267,7 @@ import from gbp
new breakwater is
old HEAD
commit to remove d/patches
- breakwater pseudomerge with upstream
+ anchor merge with upstream
"rebase" of pq branch, each commit with d/patches stripped
]
diff --git a/README.git-debrebase b/README.git-debrebase
index 9efdc1a..48ddd54 100644
--- a/README.git-debrebase
+++ b/README.git-debrebase
@@ -24,7 +24,7 @@ with a series of pseudomerges to make it fast-forwarding.
B3 mixed commit (eg made by an NMUer)
# upstream releases
- -p- special merge, takes contents of debian/ from the
+ -p- anchor merge, takes contents of debian/ from the
/ previous `breakwater' commit and rest from upstream
-/- pseudomerge; contents are identical to
diff --git a/git-debrebase b/git-debrebase
index 2b65846..b9f36ca 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -330,10 +330,12 @@ sub any_fproblems () {
# has additional entry in classification result
# OrigParents = [ subset of Parents ]
#
-# BreakwaterUpstreamMerge
+# Anchor
# has additional entry in classification result
# OrigParents = [ subset of Parents ] # singleton list
#
+# BreakwaterStart
+#
# Unknown
# has additional entry in classification result
# Why => "prose"
@@ -400,12 +402,12 @@ sub classify ($) {
return $r;
};
- my $claims_to_be_breakwater =
- $r->{Msg} =~ m{^\[git-debrebase breakwater.*\]$}m;
+ my $claims_to_be_anchor =
+ $r->{Msg} =~ m{^\[git-debrebase anchor.*\]$}m;
if (@p == 1) {
- if ($claims_to_be_breakwater) {
- return $unknown->("single-parent git-debrebase breakwater \`merge'");
+ if ($claims_to_be_anchor) {
+ return $unknown->("single-parent git-debrebase anchor \`merge'");
}
my $d = $r->{Parents}[0]{Differs};
if ($d == D_PAT_ADD) {
@@ -440,8 +442,8 @@ sub classify ($) {
}
my @identical = grep { !$_->{Differs} } @p;
- if (@p == 2 && @identical == 1 && !$claims_to_be_breakwater
- # breakwater merges can look like pseudomerges, if they are
+ if (@p == 2 && @identical == 1 && !$claims_to_be_anchor
+ # anchor merges can look like pseudomerges, if they are
# "declare" commits (ie, there are no upstream changes)
) {
my @overwritten = grep { $_->{Differs} } @p;
@@ -488,7 +490,7 @@ sub classify ($) {
my ($stype, $series) = git_cat_file "$t:debian/patches/series";
my $haspatches = $stype ne 'missing' && $series =~ m/^\s*[^#\n\t ]/m;
- # How to decide about l/r ordering of breakwater merges ? git
+ # How to decide about l/r ordering of anchors ? git
# --topo-order prefers to expand 2nd parent first. There's
# already an easy rune to look for debian/ history anyway (git log
# debian/) so debian breakwater branch should be 1st parent; that
@@ -496,9 +498,9 @@ sub classify ($) {
# patches (--topo-order).
# The above tells us which way *we* will generate them. But we
- # might encounter ad-hoc breakwater merges generated manually,
+ # might encounter ad-hoc anchor merges generated manually,
# which might be the other way around. In principle, in some odd
- # situations, a breakwater merge might have two identical parents.
+ # situations, an anchor merge might have two identical parents.
# In that case we guess which way round it is (ie, which parent
# has the upstream history). The order of the 2-iteration loop
# controls which guess we make.
@@ -509,12 +511,12 @@ sub classify ($) {
!$p[$prevbrw]{IsOrigin} && # breakwater never starts with an origin
!($p[!$prevbrw]{Differs} & ~DS_DEB) && # no non-debian changess
!($p[$prevbrw]{Differs} & ~D_UPS)) { # no non-upstream changes
- return $classify->(qw(BreakwaterUpstreamMerge),
+ return $classify->(qw(Anchor),
OrigParents => [ $p[!$prevbrw] ]);
}
}
- # multi-orig upstreams are represented with a breakwater merge
+ # multi-orig upstreams are represented with an anchor merge
# from a single upstream commit which combines the orig tarballs
return $unknown->("complex merge");
@@ -533,7 +535,7 @@ sub breakwater_of ($) {
if ($ty eq 'Packaging' or
$ty eq 'Changelog') {
$breakwater //= $head;
- } elsif ($ty eq 'BreakwaterUpstreamMerge' or
+ } elsif ($ty eq 'Anchor' or
$ty eq 'BreakwaterStart') {
$breakwater //= $head;
last;
@@ -560,7 +562,7 @@ sub walk ($;$$);
sub walk ($;$$) {
my ($input,
$nogenerate,$report) = @_;
- # => ($tip, $breakwater_tip, $last_upstream_merge_in_breakwater)
+ # => ($tip, $breakwater_tip, $last_anchor)
# (or nothing, if $nogenerate)
printdebug "*** WALK $input ".($nogenerate//0)." ".($report//'-')."\n";
@@ -622,7 +624,7 @@ sub walk ($;$$) {
no warnings qw(exiting); last;
};
- my $last_upstream_update;
+ my $last_anchor;
for (;;) {
$cl = classify $cur;
@@ -641,7 +643,7 @@ sub walk ($;$$) {
$cur = $p0;
next;
} elsif ($ty eq 'BreakwaterStart') {
- $last_upstream_update = $cur;
+ $last_anchor = $cur;
$build_start->('FirstPackaging', $cur);
} elsif ($ty eq 'Upstream') {
push @upp_cl, $cl;
@@ -665,9 +667,9 @@ sub walk ($;$$) {
$rewrite_from_here->();
$cur = $contrib;
next;
- } elsif ($ty eq 'BreakwaterUpstreamMerge') {
- $last_upstream_update = $cur;
- $build_start->("PreviousBreakwater", $cur);
+ } elsif ($ty eq 'Anchor') {
+ $last_anchor = $cur;
+ $build_start->("Anchor", $cur);
} elsif ($ty eq 'DgitImportUnpatched') {
my $pm = $pseudomerges[-1];
if (defined $pm) {
@@ -708,7 +710,7 @@ sub walk ($;$$) {
%$cl,
SpecialMethod => 'DgitImportUpstreamUpdate',
$xmsg->("convert dgit import: upstream update",
- " breakwater")
+ " anchor")
};
$prline->(" Import");
$rewrite_from_here->();
@@ -829,7 +831,7 @@ sub walk ($;$$) {
confess "$ch ?" unless $rewriting or $newcommit eq $cl->{CommitId};
$build = $newcommit;
if (grep { $method eq $_ } qw(DgitImportUpstreamUpdate)) {
- $last_upstream_update = $cur;
+ $last_anchor = $cur;
}
}
};
@@ -838,7 +840,7 @@ sub walk ($;$$) {
die sprintf "internal error %#x %s %s", $final_check, $build, $input
if $final_check & ~D_PAT_ADD;
- my @r = ($build, $breakwater, $last_upstream_update);
+ my @r = ($build, $breakwater, $last_anchor);
printdebug "*** WALK RETURN @r\n";
return @r
}
@@ -871,11 +873,11 @@ sub update_head_postlaunder ($$$) {
sub cmd_launder () {
badusage "no arguments to launder allowed" if @ARGV;
my $old = get_head();
- my ($tip,$breakwater,$last_upstream_merge) = walk $old;
+ my ($tip,$breakwater,$last_anchor) = walk $old;
update_head_postlaunder $old, $tip, 'launder';
printf "# breakwater tip\n%s\n", $breakwater;
printf "# working tip\n%s\n", $tip;
- printf "# last upstream merge\n%s\n", $last_upstream_merge;
+ printf "# last anchor\n%s\n", $last_anchor;
}
sub defaultcmd_rebase () {
@@ -1128,14 +1130,14 @@ sub cmd_new_upstream_v0 () {
# $new_upstream is either the single upstream commit, or the
# combined commit we just made. Either way it will be the
- # "upstream" parent of the breakwater special merge.
+ # "upstream" parent of the anchor merge.
read_tree_subdir 'debian', "$old_bw:debian";
- # index now contains the breakwater merge contents
+ # index now contains the anchor merge contents
$new_bw = make_commit [ $old_bw, $new_upstream ],
[ "Update to upstream $new_upstream_version",
- "[git-debrebase breakwater: new upstream $new_upstream_version, merge]",
+ "[git-debrebase anchor: new upstream $new_upstream_version, merge]",
];
# Now we have to add a changelog stanza so the Debian version
@@ -1280,12 +1282,12 @@ sub cmd_convert_from_gbp () {
'Delete debian/patches, as part of converting to git-debrebase format.',
'[git-debrebase convert-from-gbp: drop patches from tree]'
];
- # make the breakwater pseudomerge
+ # make the anchor merge
# the tree is already exactly right
$work = make_commit [$work, $upstream], [
'git-debrebase import: declare upstream',
'First breakwater merge.',
- '[git-debrebase breakwater: declare upstream]'
+ '[git-debrebase anchor: declare upstream]'
];
# rebase the patch queue onto the new breakwater
diff --git a/tests/lib-gdr b/tests/lib-gdr
index de365a2..565e0b1 100644
--- a/tests/lib-gdr
+++ b/tests/lib-gdr
@@ -55,8 +55,8 @@ t-gdr-good () {
Changelog/Packaging) ;;
Changelog/Upstream) ;;
Upstream/SAME) ;;
- BreakwaterUpstreamMerge/Upstream) ;;
- BreakwaterUpstreamMerge/Packaging) ;;
+ Anchor/Upstream) ;;
+ Anchor/Packaging) ;;
*)
fail "etype=$etype ctype=$ctype cetype=$cetype $cid"
;;
@@ -98,7 +98,7 @@ t-gdr-good () {
Upstream/SAME)
git diff --quiet $expect..$cid -- ':debian'
;;
- BreakwaterUpstreamMerge)
+ Anchor)
break
;;
esac