This commit is contained in:
Junio C Hamano 2005-09-06 13:51:33 -07:00
Родитель 712d865523 760b663446
Коммит 78938b0d8a
8 изменённых файлов: 57 добавлений и 29 удалений

Просмотреть файл

@ -44,6 +44,9 @@ OPTIONS
to avoid noisy changesets. Highly recommended, but off by default to avoid noisy changesets. Highly recommended, but off by default
to preserve compatibility with early imported trees. to preserve compatibility with early imported trees.
-u::
Convert underscores in tag and branch names to dots.
-o <branch-for-HEAD>:: -o <branch-for-HEAD>::
The 'HEAD' branch from CVS is imported to the 'origin' branch within The 'HEAD' branch from CVS is imported to the 'origin' branch within
the git repository, as 'HEAD' already has a special meaning for git. the git repository, as 'HEAD' already has a special meaning for git.

Просмотреть файл

@ -3,25 +3,24 @@ git-get-tar-commit-id(1)
NAME NAME
---- ----
git-get-tar-commit-id - Some git command not yet documented. git-get-tar-commit-id - Extract commit ID from an archive created using git-tar-tree.
SYNOPSIS SYNOPSIS
-------- --------
'git-get-tar-commit-id' [ --option ] <args>... 'git-get-tar-commit-id' < <tarfile>
DESCRIPTION DESCRIPTION
----------- -----------
Does something not yet documented. Acts as a filter, extracting the commit ID stored in archives created by
git-tar-tree. It reads only the first 1024 bytes of input, thus its
runtime is not influenced by the size of <tarfile> very much.
If no commit ID is found, git-get-tar-commit-id quietly exists with a
OPTIONS return code of 1. This can happen if <tarfile> had not been created
------- using git-tar-tree or if the first parameter of git-tar-tree had been
--option:: a tree ID instead of a commit ID or tag.
Some option not yet documented.
<args>...::
Some argument not yet documented.
Author Author

Просмотреть файл

@ -1,6 +1,5 @@
git-rename-script(1) git-rename-script(1)
===================== ====================
v0.1, May 2005 v0.1, May 2005
NAME NAME

Просмотреть файл

@ -1,5 +1,5 @@
git-repack-script(1) git-repack-script(1)
===================== ====================
v0.99.5, August 2005 v0.99.5, August 2005
NAME NAME

Просмотреть файл

@ -1,5 +1,5 @@
git-send-email-script(1) git-send-email-script(1)
======================= ========================
v0.1, July 2005 v0.1, July 2005
NAME NAME

Просмотреть файл

@ -319,6 +319,8 @@ link:git-patch-id.html[git-patch-id]::
link:git-send-email-script.html[git-send-email]:: link:git-send-email-script.html[git-send-email]::
Send patch e-mails out of "format-patch --mbox" output. Send patch e-mails out of "format-patch --mbox" output.
link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
Extract commit ID from an archive created using git-tar-tree.
Commands not yet documented Commands not yet documented
--------------------------- ---------------------------
@ -338,9 +340,6 @@ link:git-diff-script.html[git-diff-script]::
link:git-format-patch-script.html[git-format-patch-script]:: link:git-format-patch-script.html[git-format-patch-script]::
git-format-patch-script. git-format-patch-script.
link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
git-get-tar-commit-id.
link:git-request-pull-script.html[git-request-pull-script]:: link:git-request-pull-script.html[git-request-pull-script]::
git-request-pull-script. git-request-pull-script.

Просмотреть файл

@ -1,3 +1,6 @@
/*
* Copyright (C) 2005 Rene Scharfe
*/
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>

Просмотреть файл

@ -24,23 +24,24 @@ use Time::Local;
use IO::Socket; use IO::Socket;
use IO::Pipe; use IO::Pipe;
use POSIX qw(strftime dup2); use POSIX qw(strftime dup2);
use IPC::Open2;
$SIG{'PIPE'}="IGNORE"; $SIG{'PIPE'}="IGNORE";
$ENV{'TZ'}="UTC"; $ENV{'TZ'}="UTC";
our($opt_h,$opt_o,$opt_v,$opt_k,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_s,$opt_m,$opt_M); our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_s,$opt_m,$opt_M);
sub usage() { sub usage() {
print STDERR <<END; print STDERR <<END;
Usage: ${\basename $0} # fetch/update GIT from CVS Usage: ${\basename $0} # fetch/update GIT from CVS
[ -o branch-for-HEAD ] [ -h ] [ -v ] [ -d CVSROOT ] [-o branch-for-HEAD] [-h] [-v] [-d CVSROOT]
[ -p opts-for-cvsps ] [ -C GIT_repository ] [ -z fuzz ] [-p opts-for-cvsps] [-C GIT_repository] [-z fuzz]
[ -i ] [ -k ] [-s subst] [ -m ] [ -M regex] [ CVS_module ] [-i] [-k] [-u] [-s subst] [-m] [-M regex] [CVS_module]
END END
exit(1); exit(1);
} }
getopts("hivmko:d:p:C:z:s:M:") or usage(); getopts("hivmkuo:d:p:C:z:s:M:") or usage();
usage if $opt_h; usage if $opt_h;
@ARGV <= 1 or usage(); @ARGV <= 1 or usage();
@ -628,13 +629,37 @@ my $commit = sub {
or die "Cannot write branch $branch for update: $!\n"; or die "Cannot write branch $branch for update: $!\n";
if($tag) { if($tag) {
open(C,">$git_dir/refs/tags/$tag") my($in, $out) = ('','');
or die "Cannot create tag $tag: $!\n"; my($xtag) = $tag;
print C "$cid\n" $xtag =~ s/\s+\*\*.*$//; # Remove stuff like ** INVALID ** and ** FUNKY **
or die "Cannot write tag $branch: $!\n"; $xtag =~ tr/_/\./ if ( $opt_u );
my $pid = open2($in, $out, 'git-mktag');
print $out "object $cid\n".
"type commit\n".
"tag $xtag\n".
"tagger $author <$author>\n"
or die "Cannot create tag object $xtag: $!\n";
close($out)
or die "Cannot create tag object $xtag: $!\n";
my $tagobj = <$in>;
chomp $tagobj;
if ( !close($in) or waitpid($pid, 0) != $pid or
$? != 0 or $tagobj !~ /^[0123456789abcdef]{40}$/ ) {
die "Cannot create tag object $xtag: $!\n";
}
open(C,">$git_dir/refs/tags/$xtag")
or die "Cannot create tag $xtag: $!\n";
print C "$tagobj\n"
or die "Cannot write tag $xtag: $!\n";
close(C) close(C)
or die "Cannot write tag $branch: $!\n"; or die "Cannot write tag $xtag: $!\n";
print "Created tag '$tag' on '$branch'\n" if $opt_v;
print "Created tag '$xtag' on '$branch'\n" if $opt_v;
} }
}; };