threads / discuss / 18019

gitosis: how to create absolutely empty repos

Subject: gitosis: how to create absolutely empty repos

## tl;dr

3 messages between Feb 25, 2009 and Feb 26, 2009.

replies: 2people: 2as markdown or json

Lasse Kliemann· Feb 25, 2009, 19:54 UTC · lore

$ mkdir test $ cd test $ git init Initialized empty Git repository in /home/foo/new-repos/test/.git/ $ git remote add origin ext:test.git

('ext' is configured in ~/.ssh/config to be my git user and host.)

Here the docs say to add some files and to do a commit. However, I want an absolutely empty repos created, so I skip this step.

$ git push origin master:refs/heads/master Initialized empty Git repository in /home/git/repositories/test.git/ error: src refspec master does not match any. fatal: The remote end hung up unexpectedly error: failed to push some refs to 'ext:test.git'

So, this did not work. It will work, however, if I do at least one commit. A way to do this without adding files is the following:

$ git commit --allow-empty
Then the push will work:
$ git push origin master:refs/heads/master
Counting objects: 2, done.
Writing objects: 100% (2/2), 168 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To ext:test.git
 * [new branch]      master -> master
Is there a better way to do it?
Thomas Rast· Feb 26, 2009, 09:23 UTC · re: Lasse Kliemann · lore

Re: gitosis: how to create absolutely empty repos

Lasse Kliemann wrote:
Show 8 quoted lines
> Here the docs say to add some files and to do a commit. However, 
> I want an absolutely empty repos created, so I skip this step.
> 
> $ git push origin master:refs/heads/master
> Initialized empty Git repository in /home/git/repositories/test.git/
> error: src refspec master does not match any.
> fatal: The remote end hung up unexpectedly
> error: failed to push some refs to 'ext:test.git'

You can do "anything" to the repository and gitosis will create it. For example, doing an invalid push will work (you'll need to do this in a git repository to make git-push happy, but it doesn't matter what it contains):

  git push gitosis@server.example.com:repo.git :master

Note that _cloning_ such a repository is only possible since 86ac751 (Allow cloning an empty repository, 2009-01-23), which is not in any released version yet, but will be in 1.6.2.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Lasse Kliemann· Feb 26, 2009, 11:54 UTC · re: Thomas Rast · lore

Re: gitosis: how to create absolutely empty repos

Thomas Rast <trast@student.ethz.ch> writes:
Thank you for your reply!
Show 10 quoted lines
> You can do "anything" to the repository and gitosis will create it.
> For example, doing an invalid push will work (you'll need to do this
> in a git repository to make git-push happy, but it doesn't matter what
> it contains):
> 
>  git push gitosis@server.example.com:repo.git :master
> 
> Note that _cloning_ such a repository is only possible since 86ac751
> (Allow cloning an empty repository, 2009-01-23), which is not in any
> released version yet, but will be in 1.6.2.

Not sure if it's the same, but cloning a local repository just initialized with 'git init' seems to work; it only gives a warning: "warning: remote HEAD refers to nonexistent ref, unable to checkout." Using git version 1.6.1.3.

← back to recent threads