threads / patch / 5000

patchcvsserver: imitate git-update-ref when committing

Subject: [PATCH] cvsserver: imitate git-update-ref when committing

## tl;dr

3 messages between Jul 26, 2006 and Jul 27, 2006. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Johannes Schindelin· Jul 26, 2006, 20:51 UTC · lore

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>
---
 git-cvsserver.perl |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
Show changes to git-cvsserver.perl +4 −4
diff --git a/git-cvsserver.perl b/git-cvsserver.perl
index 1b70cd9..2c1b0c7 100755
--- a/git-cvsserver.perl
+++ b/git-cvsserver.perl
@@ -1144,9 +1144,7 @@ sub req_ci
         exit;
     }
 
-    open FILE, ">", "$ENV{GIT_DIR}refs/heads/$state->{module}";
-    print FILE $commithash;
-    close FILE;
+    print LOCKFILE $commithash;
 
     $updater->update();
 
@@ -1173,7 +1171,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";
-- 
1.4.2.rc2.g2b3d-dirty
Shawn Pearce· Jul 27, 2006, 00:21 UTC · re: Johannes Schindelin · lore

Re: [PATCH] cvsserver: imitate git-update-ref when committing

You might want to also consider appending to the reflog, if it exists/is enabled. I still need to get upload-pack to do this but it may be useful for some heads for some people... or maybe not. :-)

Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 39 quoted lines
> 
> 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>
> ---
>  git-cvsserver.perl |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/git-cvsserver.perl b/git-cvsserver.perl
> index 1b70cd9..2c1b0c7 100755
> --- a/git-cvsserver.perl
> +++ b/git-cvsserver.perl
> @@ -1144,9 +1144,7 @@ sub req_ci
>          exit;
>      }
>  
> -    open FILE, ">", "$ENV{GIT_DIR}refs/heads/$state->{module}";
> -    print FILE $commithash;
> -    close FILE;
> +    print LOCKFILE $commithash;
>  
>      $updater->update();
>  
> @@ -1173,7 +1171,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";
> -- 
> 1.4.2.rc2.g2b3d-dirty
-- 
Shawn.
Johannes Schindelin· Jul 27, 2006, 08:53 UTC · re: Shawn Pearce · lore

Re: [PATCH] cvsserver: imitate git-update-ref when committing

Hi,
On Wed, 26 Jul 2006, Shawn Pearce wrote:
> You might want to also consider appending to the reflog, if it exists/is 
> enabled.

Given that I do not use it, and do not really understand what it does, this would be a bad idea ;-)

Ciao, Dscho

P.S.: How's your Java thing coming along?

← back to recent threads