git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Locking files / git

From
Sitaram Chamarty <sitaramc@gmail.com>
Date
Sep 18, 2013, 21:12 UTC
Message-ID
<523A174F.4030905@gmail.com>
In-Reply-To
<CACPGbcv+w=p+Zk_+djL8ONEWN4LfDNbeVbxcpk-TJX=B3To=gg@mail.gmail.com>
On 09/18/2013 03:42 PM, Nicolas Adenis-Lamarre wrote:
Show 9 quoted lines
> Thanks a lot for your answer.
> That's really good arguments that i was waiting for and that i have
> not get until now.
> 
> My comprehension now :
> - it's not easy to maintain several versions of a binary file in parallel.
> So basically, it's not recommanded to have complex workflow for binary files.
> In case the project has a low number of binary files, it can be handle
> by simple communication,

Yes. Since you mentioned gitolite in your original post, I assume you read this caution also in the doc [1]:

    "Of course, locking by itself is not quite enough. You may still get
    into merge situations if you make changes in branches. For best
    results you should actually keep all the binary files in their own
    branch, separate from the ones containing source code."

The point is that locking and distribution don't go together at all. The **core** of distributed VCS is the old "coding on an airplane" story. What if someone locks a file after I am in the air, and I manage to get in a good 4 hours of solid work?

CVCSs can also get into this situation, but to a lesser extent, I think. At least you won't be able to commit!

[1]: http://gitolite.com/gitolite/locking.html
Show 9 quoted lines
> In case the project has a lot of binary files, a simple workflow with
> a centralized workflow is recommanded
> - git doesn't hate locks, it's just that it's not the layer to
> implement it because git is workflow independant. Locks depend on a
> centralized server which is directly linked to the workflow.
> 
> I'm not trying to implement a such workflow. I'm just curious, reading
> a lot of things about git, and trying to understand what is sometimes
> called a limitation of git.

It's not a limitation of git. It's a fundamental conflict between the idea of "distributed" and what locking necessitates.

> A simple line in the documentation to say that locking should be
> handled in the upper layer (and it's done for example in gitolite)
> because it's dependant of the workflow could help some people looking
> about that point.

For people who don't realise how important the "D" in DVCS is, and assume some sort of a central server will always exist, this "simple line" won't do. You'd have to explain all of that.

And for people who do understand it, it's not necessary :-)
Show 40 quoted lines
> Thanks a lot for git.
> 
> 2013/9/17 Fredrik Gustafsson <iveqy@iveqy.com>:
>> On Tue, Sep 17, 2013 at 09:45:26PM +0200, Nicolas Adenis-Lamarre wrote:
>>> Ooops. It seems that each time somebody says these two words together,
>>> people hate him, and he is scorned by friends and family.
>>>
>>> For the moment, i want a first feedback, an intermediate between
>>> "locking is bad" and "ok", but i would prefer in the negativ answer
>>> something with arguments ("Take CVS as an example of what not to do;
>>> if in doubt, make the exact opposite decision." is one), and in the
>>> positiv answer, good remarks about problems with my implementation
>>> that could make it better.
>>
>> So working with locks and text-files is generally stupid to do with git
>> since you don't use git merging capabilities. Working with binary files
>> in git is stupid because git doesn't handle them very well because they
>> the deltas can't be calculated very good.
>>
>> It seems to me that if you need to do locking one of the above scenarios
>> is true for you and you should not use git at all.
>>
>> However, there's always the case when you've a mixed project with both
>> binary and text-files. In that case I believe Jeff gave an excellent answer.
>>
>> But think twice, are you using git in a sane way? Even a small binary
>> file will result in a huge git repo if it's updated often and the
>> project has a long history.
>>
>> --
>> Med vänliga hälsningar
>> Fredrik Gustafsson
>>
>> tel: 0733-608274
>> e-post: iveqy@iveqy.com
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
Previous: Nicolas Adenis-LamarreNext: Thomas Koch
Message 5 of 7 in “Locking files / git”
  1. Nicolas Adenis-LamarreSep 17, 2013
  2. Jeff KingSep 17, 2013
  3. Fredrik GustafssonSep 17, 2013
  4. Nicolas Adenis-LamarreSep 18, 2013
  5. Sitaram ChamartySep 18, 2013
  6. Thomas KochSep 18, 2013
  7. Sitaram ChamartySep 18, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.