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