git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PROBLEM] Checkout from cloned repository does not work
@ 2005-09-02 11:20 Pekka Enberg
  2005-09-02 18:13 ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Pekka Enberg @ 2005-09-02 11:20 UTC (permalink / raw)
  To: git

Hi,

I cannot checkout from a cloned git repository I have created. I am
using git 0.99.5 from Gentoo portage.

Following the tutorial, I create new git repository:

  $ mkdir git-test
  $ cd git-test/
  $ git-init-db
  defaulting to local storage area
  $ echo "Hello, Git" > hello
  $ git-update-cache --add hello
  $ git-write-tree
  4bd2134df7a908d2764f70d155e32650954cfc72
  $ echo "Initial commit" | git-commit-tree
4bd2134df7a908d2764f70d155e32650954cfc72 > .git/HEAD
  Committing initial tree 4bd2134df7a908d2764f70d155e32650954cfc72

Now on the server, I create a repository:

  $ mkdir git-test.git
  GIT_DIR=git-test.git/ git-init-db

Then I push my local repository to remote server like this:

  $ git push ssh.remote.server:/home/penberg/public_html/git-test.git master
  Password:
  updating 'refs/heads/master'
    from 0000000000000000000000000000000000000000
    to   8744316e49411509ba28e9cf567f3aec5833ec74
  Packing 3 objects
  Unpacking 3 objects
   100% (3/3) done
  refs/heads/master: 0000000000000000000000000000000000000000 ->
8744316e49411509ba28e9cf567f3aec5833ec74

After which I clone the newly created repository like this:

  $ git clone http://www.remote.server/~penberg/git-test.git cloned
  defaulting to local storage area
  Somebody should define smarter http server protocol

Now, the problem is that checkout does not work:

  $ git checkout
  usage: git-read-tree (<sha> | -m [-u] <sha1> [<sha2> [<sha3>]])

That's because I have no HEAD:

  $ ls -l .git/HEAD
  lrwxrwxrwx  1 penberg users 17 Sep  2 14:07 .git/HEAD -> refs/heads/master

  $ ls -l .git/refs/heads/
  total 0

What am I doing wrong here? Doing a git pull causes the following error:

  $ git pull http://www.remote.server/~penberg/git-test.git
  Fetching HEAD from http://www.remote.server/~penberg/git-test.git using http
  got 8744316e49411509ba28e9cf567f3aec5833ec74
  got 4bd2134df7a908d2764f70d155e32650954cfc72
  got b7aec520dec0a7516c18eb4c68b64ae1eb9b5a5e
  * committish: 8744316e49411509ba28e9cf567f3aec5833ec74  HEAD from
http://www.remote.server/~penberg/git-test.git
  cat: .git/HEAD: No such file or directory
  fatal: Needed a single revision
  git-resolve-script <head> <remote> <merge-message>

                                       Pekka

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PROBLEM] Checkout from cloned repository does not work
  2005-09-02 11:20 [PROBLEM] Checkout from cloned repository does not work Pekka Enberg
@ 2005-09-02 18:13 ` Junio C Hamano
  2005-09-03  6:49   ` Pekka Enberg
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2005-09-02 18:13 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: git

Pekka Enberg <penberg@cs.helsinki.fi> writes:

> I cannot checkout from a cloned git repository I have created. I am
> using git 0.99.5 from Gentoo portage.

> Following the tutorial, I create new git repository:
>...
> Now on the server, I create a repository:
>
>   $ mkdir git-test.git
>   GIT_DIR=git-test.git/ git-init-db

You would need 'chmod +x git-test.git/hooks/post-update' here if
you are allowing people to pull over http from this repository.

I just realized that where this was documented was quite obscure
in the tutorial.  I'll update it with the appended patch.

> After which I clone the newly created repository like this:
>
>   $ git clone http://www.remote.server/~penberg/git-test.git cloned
>   defaulting to local storage area
>   Somebody should define smarter http server protocol
>
> Now, the problem is that checkout does not work:

The problem is that 'git clone' does not support cloning over
http from servers that are not properly prepared.  This 'git
clone' exited with non-zero status with an error message, didn't
it?

-->8-- -->8-- -->8--
Mention post-update when we first talk about publishing a repository.

There is more detailed instruction for `project lead` later in
the tutorial to talk about the same, but at this point in the
flow of tutorial, the first time reader has no way of knowing it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt
--- a/Documentation/tutorial.txt
+++ b/Documentation/tutorial.txt
@@ -1103,6 +1103,12 @@ your login shell is `bash`, only `.bashr
 `.bash_profile`. As a workaround, make sure `.bashrc` sets up
 `$PATH` so that you can run `git-receive-pack` program.
 
+[NOTE]
+If you plan to publish this repository to be accessed over http,
+you should do `chmod +x my-git.git/hooks/post-update` at this
+point.  This makes sure that every time you push into this
+repository, `git-update-server-info` is run.
+
 Your "public repository" is now ready to accept your changes.
 Come back to the machine you have your private repository. From
 there, run this command:

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PROBLEM] Checkout from cloned repository does not work
  2005-09-02 18:13 ` Junio C Hamano
@ 2005-09-03  6:49   ` Pekka Enberg
  2005-09-03  7:31     ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Pekka Enberg @ 2005-09-03  6:49 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi Junio,

On Fri, 2005-09-02 at 11:13 -0700, Junio C Hamano wrote:
> You would need 'chmod +x git-test.git/hooks/post-update' here if
> you are allowing people to pull over http from this repository.

Aah, thanks! That fixed it for me.

On Fri, 2005-09-02 at 11:13 -0700, Junio C Hamano wrote:
> The problem is that 'git clone' does not support cloning over
> http from servers that are not properly prepared.  This 'git
> clone' exited with non-zero status with an error message, didn't
> it?

I double checked that -- no, it does not print out an error. I copied
the exact output in the original mail. 

On Fri, 2005-09-02 at 11:13 -0700, Junio C Hamano wrote:
> +[NOTE]
> +If you plan to publish this repository to be accessed over http,
> +you should do `chmod +x my-git.git/hooks/post-update` at this
> +point.

How about "must do chmod before pushing anything to this repository"? I
think I tried chmod at some point but always did it too late (i.e. after
the initial push).

			Pekka

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PROBLEM] Checkout from cloned repository does not work
  2005-09-03  6:49   ` Pekka Enberg
@ 2005-09-03  7:31     ` Junio C Hamano
  2005-09-03  7:43       ` Pekka Enberg
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2005-09-03  7:31 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: git

Pekka Enberg <penberg@cs.helsinki.fi> writes:

> I double checked that -- no, it does not print out an error. I copied
> the exact output in the original mail. 

Which ended with the error message "Somebody should define
smarter http server protocol".  That's from git-clone-script and
the echo to generate the output is followed by "exit 1".

>> +[NOTE]
>> +If you plan to publish this repository to be accessed over http,
>> +you should do `chmod +x my-git.git/hooks/post-update` at this
>> +point.
>
> How about "must do chmod before pushing anything to this repository"? I
> think I tried chmod at some point but always did it too late (i.e. after
> the initial push).

I think "at this point" in the flow of tutorial text would be
explicit enough, but I am not very good at writing
documentation, so rewording/clarifying patches are always
welcome.

You could always run git-update-server-info manually after
pushing if you forgot to enable the hook.  If you are paranoid
you could run it with '-f' flag to rebuild the info from
scratch.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PROBLEM] Checkout from cloned repository does not work
  2005-09-03  7:31     ` Junio C Hamano
@ 2005-09-03  7:43       ` Pekka Enberg
  0 siblings, 0 replies; 5+ messages in thread
From: Pekka Enberg @ 2005-09-03  7:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sat, 2005-09-03 at 00:31 -0700, Junio C Hamano wrote:
> Which ended with the error message "Somebody should define
> smarter http server protocol".  That's from git-clone-script and
> the echo to generate the output is followed by "exit 1".

Oh, I just didn't realize that was an error message. Perhaps it could
have an "Error" prefix and an explanation that the repository was not
cloned properly.

Anyway, thanks for the help!

			Pekka

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-09-03  7:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-02 11:20 [PROBLEM] Checkout from cloned repository does not work Pekka Enberg
2005-09-02 18:13 ` Junio C Hamano
2005-09-03  6:49   ` Pekka Enberg
2005-09-03  7:31     ` Junio C Hamano
2005-09-03  7:43       ` Pekka Enberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).