Merge branch 'maint-1.6.3' into maint

* maint-1.6.3:
  git-clone: add missing comma in --reference documentation
  git-cvsserver: no longer use deprecated 'git-subcommand' commands
  clone: disconnect transport after fetching
This commit is contained in:
Junio C Hamano 2009-09-03 09:42:56 -07:00
commit bc29df6022
4 changed files with 28 additions and 24 deletions

View File

@ -84,7 +84,7 @@ its source repository, you can simply run `git repack -a` to copy all
objects from the source repository into a pack in the cloned repository. objects from the source repository into a pack in the cloned repository.
--reference <repository>:: --reference <repository>::
If the reference repository is on the local machine If the reference repository is on the local machine,
automatically setup .git/objects/info/alternates to automatically setup .git/objects/info/alternates to
obtain objects from the reference repository. Using obtain objects from the reference repository. Using
an already existing repository as an alternate will an already existing repository as an alternate will

View File

@ -574,8 +574,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
option_no_checkout = 1; option_no_checkout = 1;
} }
if (transport) if (transport) {
transport_unlock_pack(transport); transport_unlock_pack(transport);
transport_disconnect(transport);
}
if (!option_no_checkout) { if (!option_no_checkout) {
struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file)); struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file));

View File

@ -285,7 +285,7 @@ sub req_Root
return 0; return 0;
} }
my @gitvars = `git-config -l`; my @gitvars = `git config -l`;
if ($?) { if ($?) {
print "E problems executing git-config on the server -- this is not a git repository or the PATH is not set correctly.\n"; print "E problems executing git-config on the server -- this is not a git repository or the PATH is not set correctly.\n";
print "E \n"; print "E \n";
@ -702,7 +702,7 @@ sub req_Modified
# Save the file data in $state # Save the file data in $state
$state->{entries}{$state->{directory}.$data}{modified_filename} = $filename; $state->{entries}{$state->{directory}.$data}{modified_filename} = $filename;
$state->{entries}{$state->{directory}.$data}{modified_mode} = $mode; $state->{entries}{$state->{directory}.$data}{modified_mode} = $mode;
$state->{entries}{$state->{directory}.$data}{modified_hash} = `git-hash-object $filename`; $state->{entries}{$state->{directory}.$data}{modified_hash} = `git hash-object $filename`;
$state->{entries}{$state->{directory}.$data}{modified_hash} =~ s/\s.*$//s; $state->{entries}{$state->{directory}.$data}{modified_hash} =~ s/\s.*$//s;
#$log->debug("req_Modified : file=$data mode=$mode size=$size"); #$log->debug("req_Modified : file=$data mode=$mode size=$size");
@ -1289,7 +1289,7 @@ sub req_ci
# do a checkout of the file if it is part of this tree # do a checkout of the file if it is part of this tree
if ($wrev) { if ($wrev) {
system('git-checkout-index', '-f', '-u', $filename); system('git', 'checkout-index', '-f', '-u', $filename);
unless ($? == 0) { unless ($? == 0) {
die "Error running git-checkout-index -f -u $filename : $!"; die "Error running git-checkout-index -f -u $filename : $!";
} }
@ -1331,15 +1331,15 @@ sub req_ci
{ {
$log->info("Removing file '$filename'"); $log->info("Removing file '$filename'");
unlink($filename); unlink($filename);
system("git-update-index", "--remove", $filename); system("git", "update-index", "--remove", $filename);
} }
elsif ( $addflag ) elsif ( $addflag )
{ {
$log->info("Adding file '$filename'"); $log->info("Adding file '$filename'");
system("git-update-index", "--add", $filename); system("git", "update-index", "--add", $filename);
} else { } else {
$log->info("Updating file '$filename'"); $log->info("Updating file '$filename'");
system("git-update-index", $filename); system("git", "update-index", $filename);
} }
} }
@ -1351,7 +1351,7 @@ sub req_ci
return; return;
} }
my $treehash = `git-write-tree`; my $treehash = `git write-tree`;
chomp $treehash; chomp $treehash;
$log->debug("Treehash : $treehash, Parenthash : $parenthash"); $log->debug("Treehash : $treehash, Parenthash : $parenthash");
@ -1368,7 +1368,7 @@ sub req_ci
} }
close $msg_fh; close $msg_fh;
my $commithash = `git-commit-tree $treehash -p $parenthash < $msg_filename`; my $commithash = `git commit-tree $treehash -p $parenthash < $msg_filename`;
chomp($commithash); chomp($commithash);
$log->info("Commit hash : $commithash"); $log->info("Commit hash : $commithash");
@ -1821,7 +1821,7 @@ sub req_annotate
# TODO: if we got a revision from the client, use that instead # TODO: if we got a revision from the client, use that instead
# to look up the commithash in sqlite (still good to default to # to look up the commithash in sqlite (still good to default to
# the current head as we do now) # the current head as we do now)
system("git-read-tree", $lastseenin); system("git", "read-tree", $lastseenin);
unless ($? == 0) unless ($? == 0)
{ {
print "E error running git-read-tree $lastseenin $ENV{GIT_INDEX_FILE} $!\n"; print "E error running git-read-tree $lastseenin $ENV{GIT_INDEX_FILE} $!\n";
@ -1830,7 +1830,7 @@ sub req_annotate
$log->info("Created index '$ENV{GIT_INDEX_FILE}' with commit $lastseenin - exit status $?"); $log->info("Created index '$ENV{GIT_INDEX_FILE}' with commit $lastseenin - exit status $?");
# do a checkout of the file # do a checkout of the file
system('git-checkout-index', '-f', '-u', $filename); system('git', 'checkout-index', '-f', '-u', $filename);
unless ($? == 0) { unless ($? == 0) {
print "E error running git-checkout-index -f -u $filename : $!\n"; print "E error running git-checkout-index -f -u $filename : $!\n";
return; return;
@ -1861,7 +1861,7 @@ sub req_annotate
close ANNOTATEHINTS close ANNOTATEHINTS
or (print "E failed to write $a_hints: $!\n"), return; or (print "E failed to write $a_hints: $!\n"), return;
my @cmd = (qw(git-annotate -l -S), $a_hints, $filename); my @cmd = (qw(git annotate -l -S), $a_hints, $filename);
if (!open(ANNOTATE, "-|", @cmd)) { if (!open(ANNOTATE, "-|", @cmd)) {
print "E error invoking ". join(' ',@cmd) .": $!\n"; print "E error invoking ". join(' ',@cmd) .": $!\n";
return; return;
@ -2078,17 +2078,17 @@ sub transmitfile
die "Need filehash" unless ( defined ( $filehash ) and $filehash =~ /^[a-zA-Z0-9]{40}$/ ); die "Need filehash" unless ( defined ( $filehash ) and $filehash =~ /^[a-zA-Z0-9]{40}$/ );
my $type = `git-cat-file -t $filehash`; my $type = `git cat-file -t $filehash`;
chomp $type; chomp $type;
die ( "Invalid type '$type' (expected 'blob')" ) unless ( defined ( $type ) and $type eq "blob" ); die ( "Invalid type '$type' (expected 'blob')" ) unless ( defined ( $type ) and $type eq "blob" );
my $size = `git-cat-file -s $filehash`; my $size = `git cat-file -s $filehash`;
chomp $size; chomp $size;
$log->debug("transmitfile($filehash) size=$size, type=$type"); $log->debug("transmitfile($filehash) size=$size, type=$type");
if ( open my $fh, '-|', "git-cat-file", "blob", $filehash ) if ( open my $fh, '-|', "git", "cat-file", "blob", $filehash )
{ {
if ( defined ( $options->{targetfile} ) ) if ( defined ( $options->{targetfile} ) )
{ {
@ -2935,7 +2935,7 @@ sub update
push @git_log_params, $self->{module}; push @git_log_params, $self->{module};
} }
# git-rev-list is the backend / plumbing version of git-log # git-rev-list is the backend / plumbing version of git-log
open(GITLOG, '-|', 'git-rev-list', @git_log_params) or die "Cannot call git-rev-list: $!"; open(GITLOG, '-|', 'git', 'rev-list', @git_log_params) or die "Cannot call git-rev-list: $!";
my @commits; my @commits;
@ -3021,7 +3021,7 @@ sub update
next; next;
} }
my $base = eval { my $base = eval {
safe_pipe_capture('git-merge-base', safe_pipe_capture('git', 'merge-base',
$lastpicked, $parent); $lastpicked, $parent);
}; };
# The two branches may not be related at all, # The two branches may not be related at all,
@ -3033,7 +3033,7 @@ sub update
if ($base) { if ($base) {
my @merged; my @merged;
# print "want to log between $base $parent \n"; # print "want to log between $base $parent \n";
open(GITLOG, '-|', 'git-log', '--pretty=medium', "$base..$parent") open(GITLOG, '-|', 'git', 'log', '--pretty=medium', "$base..$parent")
or die "Cannot call git-log: $!"; or die "Cannot call git-log: $!";
my $mergedhash; my $mergedhash;
while (<GITLOG>) { while (<GITLOG>) {
@ -3075,7 +3075,7 @@ sub update
if ( defined ( $lastpicked ) ) if ( defined ( $lastpicked ) )
{ {
my $filepipe = open(FILELIST, '-|', 'git-diff-tree', '-z', '-r', $lastpicked, $commit->{hash}) or die("Cannot call git-diff-tree : $!"); my $filepipe = open(FILELIST, '-|', 'git', 'diff-tree', '-z', '-r', $lastpicked, $commit->{hash}) or die("Cannot call git-diff-tree : $!");
local ($/) = "\0"; local ($/) = "\0";
while ( <FILELIST> ) while ( <FILELIST> )
{ {
@ -3149,7 +3149,7 @@ sub update
# this is used to detect files removed from the repo # this is used to detect files removed from the repo
my $seen_files = {}; my $seen_files = {};
my $filepipe = open(FILELIST, '-|', 'git-ls-tree', '-z', '-r', $commit->{hash}) or die("Cannot call git-ls-tree : $!"); my $filepipe = open(FILELIST, '-|', 'git', 'ls-tree', '-z', '-r', $commit->{hash}) or die("Cannot call git-ls-tree : $!");
local $/ = "\0"; local $/ = "\0";
while ( <FILELIST> ) while ( <FILELIST> )
{ {
@ -3451,7 +3451,7 @@ sub commitmessage
return $message; return $message;
} }
my @lines = safe_pipe_capture("git-cat-file", "commit", $commithash); my @lines = safe_pipe_capture("git", "cat-file", "commit", $commithash);
shift @lines while ( $lines[0] =~ /\S/ ); shift @lines while ( $lines[0] =~ /\S/ );
$message = join("",@lines); $message = join("",@lines);
$message .= " " if ( $message =~ /\n$/ ); $message .= " " if ( $message =~ /\n$/ );

View File

@ -149,11 +149,13 @@ test_expect_success 'clone a void' '
( (
cd src-0 && git init cd src-0 && git init
) && ) &&
git clone src-0 target-6 && git clone "file://$(pwd)/src-0" target-6 2>err-6 &&
! grep "fatal:" err-6 &&
( (
cd src-0 && test_commit A cd src-0 && test_commit A
) && ) &&
git clone src-0 target-7 && git clone "file://$(pwd)/src-0" target-7 2>err-7 &&
! grep "fatal:" err-7 &&
# There is no reason to insist they are bit-for-bit # There is no reason to insist they are bit-for-bit
# identical, but this test should suffice for now. # identical, but this test should suffice for now.
test_cmp target-6/.git/config target-7/.git/config test_cmp target-6/.git/config target-7/.git/config