gitosis: how to create absolutely empty repos

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

gitosis: how to create absolutely empty repos

Lasse Kliemann
$ 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?

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: gitosis: how to create absolutely empty repos

Thomas Rast
Lasse Kliemann wrote:
> 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 [hidden email]: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

signature.asc (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: gitosis: how to create absolutely empty repos

Lasse Kliemann
Thomas Rast <[hidden email]> writes:

Thank you for your reply!

> 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 [hidden email]: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.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html