RE: Question re. git remote repository
- From
- David Lang <david@lang.hm>
- Date
- Jan 17, 2013, 01:59 UTC
- Message-ID
- <alpine.DEB.2.02.1301161756240.21503@nftneq.ynat.uz>
- In-Reply-To
- <A0DB01D693D8EF439496BC8B037A0AEF32209AD2@xmb-rcd-x15.cisco.com>
On Thu, 17 Jan 2013, Matt Seitz (matseitz) wrote:
Show 11 quoted lines
>> From: David Lang [mailto:david@lang.hm] >> >> Linus says that git does not have "proper locking", so think about it, >> what do >> you think will happen if person A does git add a/b; git commit and person >> B does >> git add c/d; git commit? > > Sorry, I wasn't clear. My assumption is that a shared repository on a network file system will either be: > > 1. a bare repository that is normally accessed only by "git push" and "git pull" (or "git fetch"), the central repository model.
pulling from it would not be a problem, I could see issues with multiple pushes taking place (the underlying repository would not get corrupted, but you will very quickly hit conflicts where the push is not a fast forward and you need to merge, not just push)
> 2. a repository where only one user does "git add" and "git commit", while > other users will do "git pull", the peer-to-peer model (you pull changes from > me, I pull changes from you).
At this point only one system is writing to the repository and it doesn't matter that it's on network storage vs local storage.
pulling from a shared repository is probably safe, but I wouldn't bet against there being any conditions where a pull at the same time someone is doing an update being able to cause problems.
The normal thing is to do the pulls through git-daemon, and that does make sure that what you are pulling is consistant.
David Lang