Browse Source

cvsserver: imitate git-update-ref when committing

git-update-ref writes into the lockfile, and renames it afterwards. Like
commit v1.3.0-rc3~22, it is not only cleaner, but also helps with shared
setups: every developer can have a different primary group; what matters
is that $GIT_DIR/refs/heads has to be writable by a group you are in.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Johannes Schindelin 19 years ago committed by Junio C Hamano
parent
commit
cadbcf2712
  1. 8
      git-cvsserver.perl

8
git-cvsserver.perl

@ -1142,9 +1142,7 @@ sub req_ci @@ -1142,9 +1142,7 @@ sub req_ci
exit;
}

open FILE, ">", "$ENV{GIT_DIR}refs/heads/$state->{module}";
print FILE $commithash;
close FILE;
print LOCKFILE $commithash;

$updater->update();

@ -1171,7 +1169,9 @@ sub req_ci @@ -1171,7 +1169,9 @@ sub req_ci
}

close LOCKFILE;
unlink($lockfile);
my $reffile = "$ENV{GIT_DIR}refs/heads/$state->{module}";
unlink($reffile);
rename($lockfile, $reffile);
chdir "/";

print "ok\n";

Loading…
Cancel
Save