X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=git-debrebase;h=32737269a48120fa3f55720d8b778ca618ad3858;hb=ca03bca3d0443c539de63050693de56c9b2e0c03;hp=ad2672f1cd3e4f7633af0ee3b05874b6f06e80b5;hpb=da894f5bc73ad2a5cbf6d74533818ca359f141b0;p=dgit.git diff --git a/git-debrebase b/git-debrebase index ad2672f1..32737269 100755 --- a/git-debrebase +++ b/git-debrebase @@ -32,8 +32,7 @@ # git-debrebase [] stitch [--prose=] # git-debrebase [] downstream-rebase-launder-v0 # experimental # -# git-debrebase [] gbp2debrebase-v0 \ -# +# git-debrebase [] convert-from-gbp # problems / outstanding questions: # @@ -318,7 +317,6 @@ sub any_fproblems () { # Upstream # AddPatches # Mixed -# Unknown # # Pseudomerge # has additional entres in classification result @@ -332,6 +330,10 @@ sub any_fproblems () { # BreakwaterUpstreamMerge # has additional entry in classification result # OrigParents = [ subset of Parents ] # singleton list +# +# Unknown +# has additional entry in classification result +# Why => "prose" sub parsecommit ($;$) { my ($objid, $p_ref) = @_; @@ -390,7 +392,7 @@ sub classify ($) { }; my $unknown = sub { my ($why) = @_; - $r = { %$r, Type => qw(Unknown) }; + $r = { %$r, Type => qw(Unknown), Why => $why }; printdebug " ** Unknown\n"; return $r; }; @@ -660,7 +662,6 @@ sub walk ($;$$) { $prline->(" Import"); $rewrite_from_here->(); $upp_limit //= $#upp_cl; # further, deeper, patches discarded - die 'BUG $upp_limit is not used anywhere?'; $cur = $ovwr; next; } else { @@ -702,6 +703,8 @@ sub walk ($;$$) { runcmd @git, qw(read-tree), $treeish; $read_tree_debian->($build); }; + + $#upp_cl = $upp_limit if defined $upp_limit; my $committer_authline = calculate_committer_authline(); @@ -737,7 +740,6 @@ sub walk ($;$$) { next; } elsif ($method eq 'DgitImportDebianUpdate') { $read_tree_debian->($cltree); - rm_subdir_cached qw(debian/patches); } elsif ($method eq 'DgitImportUpstreamUpdate') { confess unless $rewriting; my $differs = (get_differs $build, $cltree); @@ -757,7 +759,7 @@ sub walk ($;$$) { my $newtree = cmdoutput @git, qw(write-tree); my $ch = $cl->{Hdr}; $ch =~ s{^tree .*}{tree $newtree}m or confess "$ch ?"; - $ch =~ s{^parent .*\n}{}m; + $ch =~ s{^parent .*\n}{}mg; $ch =~ s{(?=^author)}{ join '', map { "parent $_\n" } @parents }me or confess "$ch ?"; @@ -1163,8 +1165,9 @@ END close U or failedcmd @upd_cmd; } -sub cmd_gbp2debrebase () { - badusage "needs 1 optional argument, the upstream" unless @ARGV<=1; +sub cmd_convert_from_gbp () { + badusage "needs 1 optional argument, the upstream git rev" + unless @ARGV<=1; my ($upstream_spec) = @ARGV; $upstream_spec //= 'refs/heads/upstream'; my $upstream = git_rev_parse $upstream_spec; @@ -1210,9 +1213,9 @@ sub cmd_gbp2debrebase () { runcmd @git, qw(checkout -q gdr-internal~0); rm_subdir_cached 'debian/patches'; $work = make_commit ['HEAD'], [ - 'git-debrebase import: drop patch queue', + 'git-debrebase convert-from-gbp: drop patches from tree', 'Delete debian/patches, as part of converting to git-debrebase format.', - '[git-debrebase: gbp2debrebase, drop patches]' + '[git-debrebase convert-from-gbp: drop patches from tree]' ]; # make the breakwater pseudomerge # the tree is already exactly right @@ -1228,7 +1231,7 @@ sub cmd_gbp2debrebase () { $work = git_rev_parse 'HEAD'; }; - update_head_checkout $old_head, $work, 'gbp2debrebase'; + update_head_checkout $old_head, $work, 'convert-from-gbp'; } sub cmd_downstream_rebase_launder_v0 () {