Merge branch 'master' of .

maint
Junio C Hamano 2005-09-06 13:51:33 -07:00
commit 78938b0d8a
8 changed files with 57 additions and 29 deletions

View File

@ -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.

View File

@ -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

View File

@ -1,6 +1,5 @@

git-rename-script(1) git-rename-script(1)
===================== ====================
v0.1, May 2005 v0.1, May 2005


NAME NAME

View File

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


NAME NAME

View File

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


NAME NAME

View File

@ -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.



View File

@ -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>

View File

@ -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;
} }
}; };