# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# usages:
+# git-debrebase launder # prints breakwater tip
+# git-debrebase analyse
+# git-debrebase start # like ffrebase start + debrebase launder
+# git-debrebase new-upstream [-f] UPSTREAM
+# git-debrebase <git-rebase options> # does debrebase start if necessary
+#
+# git-ffrebase start [BASE] # records previous HEAD so it can be overwritten
+# # records base for future git-ffrebase
+# git-ffrebase set-base BASE
+# git-ffrebase <git-rebase options>
+# git-ffrebase finish
+# git-ffrebase status [BRANCH]
+#
+# refs/ffrebase-prev/BRANCH BRANCH may be refs/...; if not it means
+# refs/ffrebase-base/BRANCH refs/heads/BRANCH
+# zero, one, or both of these may exist
+
use strict;
use Memoize;
memoize('cfg');
-# usage
-# git debrebase launder
-
sub get_commit ($) {
my ($objid) = @_;
my ($type,$data) = git_cat_file $objid;
}
sub launder ($;$) {
- my ($cur, $wantdebonly) = @_;
+ my ($cur, $pseudos_must_overwrite, $wantdebonly) = @_;
# go through commits backwards
# we generate two lists of commits to apply
my (@deb_cl, @ups_cl);
$queue->(\@ups_cl, "upstream");
next;
} elsif ($ty eq 'Pseudomerge') {
+ if (defined $pseudos_must_overwrite) {
+ }
push @pseudomerges, $cl;
$cur = $ty->{Contributor};
next;
my $committer_authline = calculate_committer_authline();
in_workarea sub {
+ mkdir $rd or $!==EEXIST or die $!;
+
my $current_method;
foreach my $cl (qw(Debian), @deb_cl, qw(Upstream), @ups_cl) {
if (!ref $cl) {
my $ch = $cl->{Msg};
$ch =~ s{^tree .*}{tree $newtree}m or confess "$ch ?";
$ch =~ s{^committer .*$}{$committer_authline}m or confess "$ch ?";
- my $newcommit = cmdoutput @git, qw(hash-object -t commit),
- $ch."\n".$cl->{Msg};
-
-
- #my $cdata = <<END;
-tree $newtree
-author $
+ open CD, ">", "$rd/m" or die $!;
+ print CD $ch, "\n", $cl->{Msg}; or die $!;
+ close CD or die $!;
+ my $newcommit = cmdoutput @git, qw(hash-object -t commit), "$rd/m";
+ $build = $newcommit;
+ }
};
+}
- $r->{FixupUpstreamMerge} = $
-
- push @deb_cl, {
- $cl,
- Type => NonGitNewUpstreamDgitImport,
- PreviousBreakwaterMerge =>
-
-
- push @phases, [ @deb_cl, @ups_cl ];
-
- if (@pseudomerges != 1) {
-}
chdir $GIT_DIR