diff options
author | Martin Langhoff <martin@catalyst.net.nz> | 2005-11-17 21:20:45 +1300 |
---|---|---|
committer | Martin Langhoff <martin@catalyst.net.nz> | 2005-11-17 21:20:45 +1300 |
commit | fee3365fe13f36fdd432b1ede9980062cf744663 (patch) | |
tree | a17c1f442587b9c7d68b4f7e08c5f6786599c61e /git-archimport.perl | |
parent | 22ff00fc8bde65414653ed139fd13d90f00fe662 (diff) | |
download | git-fee3365fe13f36fdd432b1ede9980062cf744663.tar.gz |
archimport: allow for old style branch and public tag names
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.
[ ml: rebased to skip import overhaul ]
Signed-off-by:: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
Diffstat (limited to 'git-archimport.perl')
-rwxr-xr-x | git-archimport.perl | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/git-archimport.perl b/git-archimport.perl index 47174391a7..c3bed08086 100755 --- a/git-archimport.perl +++ b/git-archimport.perl @@ -72,13 +72,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_C,$opt_t); +our($opt_h,$opt_v, $opt_T,$opt_t,$opt_o); sub usage() { print STDERR <<END; Usage: ${\basename $0} # fetch/update GIT from Arch - [ -h ] [ -v ] [ -T ] [ -t tempdir ] + [ -o ] [ -h ] [ -v ] [ -T ] [ -t tempdir ] repository/arch-branch [ repository/arch-branch] ... END exit(1); @@ -263,7 +262,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 foreach my $ps (@psets) { @@ -629,8 +636,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") |