X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=git-debrebase;h=c25c18d9e91739b1f10dd392fac2ff93b135197b;hb=a23a044a9486d1aebdfaea9ff1c0ed2635339109;hp=0fb7c3c7c0517bc68f0ba6854d4a1a63a62601f6;hpb=684e1dfb2e9cc5816a8488b6ad3d08796ed5f390;p=dgit.git
diff --git a/git-debrebase b/git-debrebase
index 0fb7c3c7..c25c18d9 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -18,6 +18,24 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+# 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 # 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-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;
@@ -37,9 +55,6 @@ sub cfg ($) {
memoize('cfg');
-# usage
-# git debrebase launder
-
sub get_commit ($) {
my ($objid) = @_;
my ($type,$data) = git_cat_file $objid;
@@ -183,7 +198,7 @@ sub classify ($) {
}
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);
@@ -226,6 +241,8 @@ sub launder ($;$) {
$queue->(\@ups_cl, "upstream");
next;
} elsif ($ty eq 'Pseudomerge') {
+ if (defined $pseudos_must_overwrite) {
+ }
push @pseudomerges, $cl;
$cur = $ty->{Contributor};
next;
@@ -288,6 +305,8 @@ sub launder ($;$) {
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) {
@@ -314,27 +333,15 @@ sub launder ($;$) {
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 = <", "$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