threads / discuss / 32039

bare vs non-bare <1.7 then >=1.7 ?

Subject: bare vs non-bare <1.7 then >=1.7 ?

## tl;dr

5 messages between Nov 8, 2012 and Nov 10, 2012.

replies: 4people: 5as markdown or json

Mihamina Rakotomandimby· Nov 8, 2012, 10:11 UTC · lore
Hi all,

We're on the way to have our first project using Git. We're currently mostly using Hg (90%) & SVN (10%).

When experimenting in order to train some colleagues, I saw that If I clone a repository, I couldn't push to it because it was a non-bare one. Searchin for some explanations, I found this ressource: http://www.bitflop.com/document/111

It's told to be reliable information for Git < v1.7.

What would be different for Git > 1.7 so that I could be up to date with the facts?

Thank you.
-- 
RMA.
Carlos Martin Nieto· Nov 8, 2012, 13:26 UTC · re: Mihamina Rakotomandimby · lore

Re: bare vs non-bare <1.7 then >=1.7 ?

Mihamina Rakotomandimby <mihamina@rktmb.org> writes:
Show 15 quoted lines
> Hi all,
>
> We're on the way to have our first project using Git.
> We're currently mostly using Hg (90%) & SVN (10%).
>
> When experimenting in order to train some colleagues, I saw that If I
> clone a repository, I couldn't push to it because it was a non-bare
> one.
> Searchin for some explanations, I found this ressource:
> http://www.bitflop.com/document/111
>
> It's told to be reliable information for Git < v1.7.
>
> What would be different for Git > 1.7 so that I could be up to date
> with the facts?

Bare vs. non-bare hasn't changed. The reasoning behind the two types hasn't changed and is pretty fundamental. There is no reason for it to change.

   cmn
Jeff King· Nov 8, 2012, 14:59 UTC · re: Carlos Martin Nieto · lore

Re: bare vs non-bare <1.7 then >=1.7 ?

On Thu, Nov 08, 2012 at 02:26:40PM +0100, Carlos Martín Nieto wrote:
Show 14 quoted lines
> > When experimenting in order to train some colleagues, I saw that If I
> > clone a repository, I couldn't push to it because it was a non-bare
> > one.
> > Searchin for some explanations, I found this ressource:
> > http://www.bitflop.com/document/111
> >
> > It's told to be reliable information for Git < v1.7.
> >
> > What would be different for Git > 1.7 so that I could be up to date
> > with the facts?
> 
> Bare vs. non-bare hasn't changed. The reasoning behind the two types
> hasn't changed and is pretty fundamental. There is no reason for it to
> change.

Right. The key thing that changed in git v1.7 is that we started warning about and denying an operation that had always been dangerous, and that is why the referenced document mentions that version.

-Peff
Enrico Weigelt· Nov 10, 2012, 08:23 UTC · re: Mihamina Rakotomandimby · lore

Re: bare vs non-bare <1.7 then >=1.7 ?

Show 5 quoted lines
> When experimenting in order to train some colleagues, I saw that If I
> clone a repository, I couldn't push to it because it was a non-bare
> one.
> Searchin for some explanations, I found this ressource:
> http://www.bitflop.com/document/111

That's just a precaution (technically it's not necessary, just stops you from doing some dumb things). Suppose the following scenario:

* non-bare repository A, with branch 'master' currently checked out.
* clone B -> somebody's working on branch 'master' (which was forked 
  from A's master)
* on A, somebody did some local changes
* meanwhile somebody pushes the branch 'master' from B to A
* after that, on A, new commit to 'master'.

Weird things can happen, eg. the changes coming from B completely reverted by the new commit in A.

Unless nobody pushes to the branch currently checked and later somebody doing local changes after that, there shouldn't be any real technical problem. But then, you most likely wont need an worktree anyways.

Wait, there *is* an usecase for such things, deploying trees (eg. webapps) some server:

 * application is developed in git
 * the final production-system tree is maintained in certian branch
 * a post-update hook acts on a specific production branch and does
   something like git checkout --detach <treeish>
cu
-- 
Mit freundlichen Grüßen / Kind regards 

Enrico Weigelt 
VNC - Virtual Network Consult GmbH 
Head Of Development 

Pariser Platz 4a, D-10117 Berlin
Tel.: +49 (30) 3464615-20
Fax: +49 (30) 3464615-59

enrico.weigelt@vnc.biz; www.vnc.de 
Philip Oakley· Nov 10, 2012, 10:29 UTC · re: Enrico Weigelt · lore

Re: bare vs non-bare <1.7 then >=1.7 ?

From: "Enrico Weigelt" <enrico.weigelt@vnc.biz> Sent: Saturday, November 
10, 2012 8:23 AM
Show 9 quoted lines
> Wait, there *is* an usecase for such things, deploying trees (eg. 
> webapps)
> some server:
>
> * application is developed in git
> * the final production-system tree is maintained in certian branch
> * a post-update hook acts on a specific production branch and does
>   something like git checkout --detach <treeish>
>
I have an alternative use-case for un-trained collegues :

The network shared drive has master checked out, and the .git directory is hidden. Untrained colleagues don't know I have it as a git remote. Even if they show hidden directories they will tend to ignore it as being just another spurious directory.

I develop on my own box (local directory) on my own branch 'Philip' and features therefrom. I push my development history back to the network remote to act as a backup. Because I don't touch master I can normally push to it quite happily.

When I have some finished work I can change to 'working' on the network drive, and merge or rebase my 'Philip' branch into master, and update the network's working tree. The untrained folk now see the new updated files as if I'd simply worked on / copied into the network share and they are non the wiser (yet) that I do have proper (micro managed) history.

I can also capture any changes they made to the network share so can go back to a point in history when required. It's in matlab and is not a big code base.

Philip 

← back to recent threads