From: Johannes Schindelin Date: Wed, 26 Jul 2006 20:51:52 +0000 (+0200) Subject: cvsserver: imitate git-update-ref when committing X-Git-Tag: v1.4.2-rc3~41^2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=cadbcf2712ff346dcd757d0b116359380920b2a4;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/git-cvsserver.perl b/git-cvsserver.perl index 5b73837bb..2130d5702 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -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 } close LOCKFILE; - unlink($lockfile); + my $reffile = "$ENV{GIT_DIR}refs/heads/$state->{module}"; + unlink($reffile); + rename($lockfile, $reffile); chdir "/"; print "ok\n";