[PATCH 1/2] archimport: allow for old style branch and public tag names
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Nov 15, 2005, 08:05 UTC
- Message-ID
- <20051115080546.GA30506@Muzzle>
- In-Reply-To
- <20051115080352.GG7484@mail.yhbt.net>
This patch adds the -o switch, which lets old trees tracked by git-archmirror continue working with their old branch and tag names to make life easier for people tracking your tree.
Private tags that are only used internally by git-archimport continue to be new-style, and automatically converted upon first run.
Signed-off-by:: Eric Wong <normalperson@yhbt.net>
---
git-archimport.perl | 22 +++++++++++++++++----- 1 files changed, 17 insertions(+), 5 deletions(-)
applies-to: 44d831812786f4dfbf54a67b51e5f48c7d5afd66 4b341dd903883db0a89fe2f04e93dab053beb045
diff --git a/git-archimport.perl b/git-archimport.perl index 1f721f6..304d462 100755 --- a/git-archimport.perl +++ b/git-archimport.perl @@ -67,12 +67,12 @@ my $git_dir = $ENV{"GIT_DIR"} || ".git"; $ENV{"GIT_DIR"} = $git_dir; my $ptag_dir = "$git_dir/archimport/tags"; -our($opt_h,$opt_v,$opt_T,$opt_t,$opt_D,$opt_a); +our($opt_h,$opt_v,$opt_T,$opt_t,$opt_D,$opt_a,$opt_o); sub usage() { print STDERR <<END; Usage: ${\basename $0} # fetch/update GIT from Arch - [ -h ] [ -v ] [ -T ] [ -a ] [ -D depth ] [ -t tempdir ] + [ -o ] [ -h ] [ -v ] [ -T ] [ -a ] [ -D depth ] [ -t tempdir ] repository/arch-branch [ repository/arch-branch] ... END exit(1); @@ -267,7 +267,15 @@ sub tree_dirname { return $name; } -*git_branchname = *tree_dirname; +# old versions of git-archimport just use the <category--branch> part: +sub old_style_branchname { + my $id = shift; + my $ret = safe_pipe_capture($TLA,'parse-package-name','-p',$id); + chomp $ret; + return $ret; +} + +*git_branchname = $opt_o ? *old_style_branchname : *tree_dirname; # process patchsets in ancestry order foreach my $ps (@psets) { @@ -527,8 +535,12 @@ sub parselog { sub tag { my ($tag, $commit) = @_; - # don't use subdirs for tags yet, it could screw up other porcelains - $tag =~ s|/|,|; + if ($opt_o) { + $tag =~ s|/|--|g; + } else { + # don't use subdirs for tags yet, it could screw up other porcelains + $tag =~ s|/|,|g; + } if ($commit) { open(C,">","$git_dir/refs/tags/$tag") --- 0.99.9.GIT