Re: POHMELFS high performance network filesystem. Cache coherency, transactions, parallels.

From: Evgeniy Polyakov
Date: Mon May 26 2008 - 03:44:43 EST


On Mon, May 26, 2008 at 03:27:59AM -0400, Jeff Garzik (jeff@xxxxxxxxxx) wrote:
> git-update-server-info needs to be run on the server, not the client.
>
> You can automate this by running this on the server:
>
> chmod +x .git/hooks/post-update
>
> so that git-update-server-info always runs on the server, after each push.
>
> See git-update-server-info(1) for more info.

Hmm... Nothing can be run on server, since git does not believe it is in
git repo:
$ strace git-update-server-info
execve("/usr/bin/git-update-server-info", ["git-update-server-info"], [/* 20 vars */]) = 0

... ommitting mapping and shared lib loading ...

getcwd("/home/s0mbre/public_html/archive/pohmelfs/pohmelfs.git", 4097) = 55
access(".git/refs/", X_OK) = -1 ENOENT (No such file or directory)
chdir("..") = 0
access(".git/refs/", X_OK) = -1 ENOENT (No such file or directory)
chdir("..") = 0
access(".git/refs/", X_OK) = -1 ENOENT (No such file or directory)
chdir("..") = 0
access(".git/refs/", X_OK) = -1 ENOENT (No such file or directory)
chdir("..") = 0
access(".git/refs/", X_OK) = -1 ENOENT (No such file or directory)
chdir("..") = 0
access(".git/refs/", X_OK) = -1 ENOENT (No such file or directory)
chdir("..") = 0
access(".git/refs/", X_OK) = -1 ENOENT (No such file or directory)
chdir("..") = 0
write(2, "fatal: ", 7fatal: ) = 7
write(2, "Not a git repository", 20Not a git repository) = 20
write(2, "\n", 1

Obviously there is no .git dir, since we are in it:

pohmelfs.git$ ls -l
total 14
-rw-r--r-- 1 s0mbre s0mbre 23 May 13 21:33 HEAD
drwxr-xr-x 2 s0mbre s0mbre 48 May 13 21:33 branches
-rw-r--r-- 1 s0mbre s0mbre 66 May 13 21:31 config
-rw-r--r-- 1 s0mbre s0mbre 58 May 13 21:33 description
drwxr-xr-x 2 s0mbre s0mbre 328 May 13 21:33 hooks
drwxr-xr-x 2 s0mbre s0mbre 96 May 13 21:33 info
drwxr-xr-x 67 s0mbre s0mbre 1608 May 26 10:20 objects
drwxr-xr-x 5 s0mbre s0mbre 120 May 26 10:20 refs

And it can not be accessed from higher layer, since its name is not
'.git', but 'pohmelfs.git'.

pohmelfs.git$ ls -l ../
total 440
-rw-r--r-- 1 s0mbre s0mbre 90994 Apr 25 18:37 pohmelfs.1
-rw-r--r-- 1 s0mbre s0mbre 90998 May 12 13:28 pohmelfs.1.fixed
-rw-r--r-- 1 s0mbre s0mbre 119384 May 13 21:35 pohmelfs.2
-rw-r--r-- 1 s0mbre s0mbre 136685 May 25 17:20 pohmelfs.3
drwxr-xr-x 7 s0mbre s0mbre 248 May 13 21:33 pohmelfs.git
drwxr-xr-x 3 s0mbre s0mbre 256 May 26 00:19 server

I've updated by hand info/refs, which pointed to the previous revision,
but really thought it was mande somewhat automatically? It was created
when I made a exportable git tree, when I did git-update-server-info.
Git is a magic yet to resolve :)

--
Evgeniy Polyakov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/