X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke.git;a=blobdiff_plain;f=tb-create.pl;h=68c571f369cd280c7eeb9c3abe9825af9a4edd93;hp=16954d4c09bacea7210817b5808c76917137fdc1;hb=3e8d721402b8e907a2658ef86ce9c05756f85c56;hpb=f188259a4c10646773fe0bbde14aadd419f341c9 diff --git a/tb-create.pl b/tb-create.pl index 16954d4..68c571f 100755 --- a/tb-create.pl +++ b/tb-create.pl @@ -7,6 +7,8 @@ use strict; use Getopt::Long; use Topbloke; +fixme needs update to new metadata; + Getopt::Long::Configure(qw(bundling)); die "bad usage\n" unless @ARGV==1; @@ -40,6 +42,8 @@ if (!defined $spec->{Date}) { chomp $spec->{Date} or die $!; } +defined $spec->{Nick} or die "no patch nickname specified\n"; + length($spec->{Date})==18 or die "partial date specified, not supported\n"; chdir_toplevel(); @@ -75,9 +79,10 @@ setup_config(); #----- subroutines for setup -sub create_and_switch ($) { - my ($branchref) = @_; - run_git(qw(update-ref -m), "tb-create base", $branchref, 'HEAD'); +sub create_and_switch ($$) { + my ($branchref, $what) = @_; + enable_reflog($branchref); + run_git(qw(update-ref -m), "tb-create $newpatch $what", $branchref, 'HEAD'); run_git(qw(symbolic-ref HEAD), $branchref); } @@ -101,26 +106,23 @@ if (lstat '.topbloke') { } my $baseref = "refs/topbloke-bases/$newpatch"; -create_and_switch($baseref); - -run_git(qw(update-ref -m), "tb-create base $newpatch", $baseref, 'HEAD'); -run_git(qw(symbolic-ref HEAD), $baseref); +create_and_switch($baseref, 'base'); meta_and_stage('msg', "# not applicable\n"); -meta_and_stage('deps', "# not applicable\n"); -meta_and_stage('flags', ''); +meta_and_stage('deps', ""); +meta_and_stage('props', "patch $current->{Fullname}\n"); if ($current->{Kind} eq 'foreign') { meta_and_stage('included', $current->{DepSpec}."\n"); - meta_and_stage('pflags', ''); + meta_and_stage('pprops', ''); } -run_git(qw(commit -q -m), "tb-create base $newpatch"); +run_git(qw(commit -q -m), "tb-create $newpatch base"); #----- create the tip branch my $tipref = "refs/topbloke-tips/$newpatch"; -create_and_switch($tipref); +create_and_switch($tipref, 'tip'); my $nm = wf_start('.topbloke/msg'); wf($nm, "From: $author\n"); @@ -141,9 +143,9 @@ wf_done($nm); stage_meta('msg'); meta_and_stage('deps', "$current->{DepSpec}\n"); -# we inherit empty flags from the base branch +# we inherit correct props and pprops from the base branch -flagsfile_add_flag('included',$newpatch); +depsfile_add_dep('included','tb',$newpatch); stage_meta('included'); -run_git(qw(commit -q -m), "tb-create tip $spec->{Nick}\n$newpatch\n"); +run_git(qw(commit -q -m), "tb-create $newpatch tip");