summaryrefslogtreecommitdiff
path: root/git-archimport.perl
diff options
context:
space:
mode:
authorMartin Langhoff <martin@catalyst.net.nz>2005-11-17 08:20:45 (GMT)
committerMartin Langhoff <martin@catalyst.net.nz>2005-11-17 08:20:45 (GMT)
commitfee3365fe13f36fdd432b1ede9980062cf744663 (patch)
treea17c1f442587b9c7d68b4f7e08c5f6786599c61e /git-archimport.perl
parent22ff00fc8bde65414653ed139fd13d90f00fe662 (diff)
downloadgit-fee3365fe13f36fdd432b1ede9980062cf744663.zip
git-fee3365fe13f36fdd432b1ede9980062cf744663.tar.gz
git-fee3365fe13f36fdd432b1ede9980062cf744663.tar.bz2
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-xgit-archimport.perl23
1 files changed, 17 insertions, 6 deletions
diff --git a/git-archimport.perl b/git-archimport.perl
index 4717439..c3bed08 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")