зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
22ff00fc8b
Коммит
fee3365fe1
|
@ -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")
|
||||
|
|
Загрузка…
Ссылка в новой задаче