Merge branch 'maint'
* maint: git-cvsserver: no longer use deprecated 'git-subcommand' commands clone: disconnect transport after fetching
This commit is contained in:
commit
193a5d195b
@ -580,8 +580,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));
|
||||||
|
@ -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$/ );
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user