threads / discuss / 32762

Cloning remote HTTP repository: Can only see 'master' branch

Subject: Cloning remote HTTP repository: Can only see 'master' branch

## tl;dr

3 messages between Jan 29, 2013 and Jan 30, 2013.

replies: 2people: 2as markdown or json

Michael Tyson· Jan 29, 2013, 05:54 UTC · lore
Hello!
I've a readonly git repository that I'm hosting via HTTP (a bare git repository located within the appropriate directory on the server). I push to it via my own SSH account (local repository with a remote pointing to the ssh:// URL).
This has all worked fine so far - I push via ssh, and others can clone and pull via the HTTP URL.
I've recently added a branch - "beta" - which pushed just fine, but now cloning via the HTTP URL doesn't seem to show the new branch - just master:
$ git clone http://server.tld/path/to/repository.git repository
Cloning into 'repository'...
$ cd repository
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Cloning via the readwrite ssh URL works fine though:
$ git clone ssh://user@server.tld:www/path/to/repository.git repository
Cloning into 'repository'...
stdin: is not a tty
remote: Counting objects: 225, done.
remote: Compressing objects: 100% (196/196), done.
remote: Total 225 (delta 109), reused 77 (delta 25)
Receiving objects: 100% (225/225), 9.55 MiB | 295 KiB/s, done.
Resolving deltas: 100% (109/109), done.
$ cd repository
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/beta
  remotes/origin/master
I've tried 'git clone --mirror' just in case, but this just resulted in a bare repository with only the 'master' branch, still.
Anyone have any ideas about what I'm doing wrong?

Cheers, Michael

Jeff King· Jan 29, 2013, 08:23 UTC · re: Michael Tyson · lore

Re: Cloning remote HTTP repository: Can only see 'master' branch

On Tue, Jan 29, 2013 at 04:54:13PM +1100, Michael Tyson wrote:
Show 11 quoted lines
> I've a readonly git repository that I'm hosting via HTTP (a bare git
> repository located within the appropriate directory on the server). I
> push to it via my own SSH account (local repository with a remote
> pointing to the ssh:// URL).
> 
> This has all worked fine so far - I push via ssh, and others can clone
> and pull via the HTTP URL.
> 
> I've recently added a branch - "beta" - which pushed just fine, but
> now cloning via the HTTP URL doesn't seem to show the new branch -
> just master:

If you are using the "dumb" http protocol (i.e., the web server knows nothing about git, and just serves the repo files), you need to run "git update-server-info" after each push in order to update the static file that tells the git client about each ref. You can have git do it automatically for you by setting receive.updateServerInfo in the server repo's config.

If the server is yours to control, consider setting up the "smart" http protocol, as it is much more efficient. Details are in "git help http-backend".

-Peff
Michael Tyson· Jan 30, 2013, 00:06 UTC · re: Jeff King · lore

Re: Cloning remote HTTP repository: Can only see 'master' branch

Ah!  Lovely, thank you, Jeff!
Alas, it's a shared server so I'm limited to what the host provides, but that solves my problem.
Cheers!
On 29 Jan 2013, at 19:23, Jeff King <peff@peff.net> wrote:
Show 30 quoted lines
> On Tue, Jan 29, 2013 at 04:54:13PM +1100, Michael Tyson wrote:
> 
>> I've a readonly git repository that I'm hosting via HTTP (a bare git
>> repository located within the appropriate directory on the server). I
>> push to it via my own SSH account (local repository with a remote
>> pointing to the ssh:// URL).
>> 
>> This has all worked fine so far - I push via ssh, and others can clone
>> and pull via the HTTP URL.
>> 
>> I've recently added a branch - "beta" - which pushed just fine, but
>> now cloning via the HTTP URL doesn't seem to show the new branch -
>> just master:
> 
> If you are using the "dumb" http protocol (i.e., the web server knows
> nothing about git, and just serves the repo files), you need to run "git
> update-server-info" after each push in order to update the static file
> that tells the git client about each ref. You can have git do it
> automatically for you by setting receive.updateServerInfo in the server
> repo's config.
> 
> If the server is yours to control, consider setting up the "smart" http
> protocol, as it is much more efficient. Details are in "git help
> http-backend".
> 
> -Peff
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

← back to recent threads