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.
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
From: "Enrico Weigelt" <redacted> Sent: Saturday, November
10, 2012 8:23 AM
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