git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Are concurrent git operations on the same repo safe?
@ 2018-02-05 20:16 Ian Norton
  2018-02-06 10:16 ` Duy Nguyen
  2018-02-06 20:10 ` Jonathan Nieder
  0 siblings, 2 replies; 5+ messages in thread
From: Ian Norton @ 2018-02-05 20:16 UTC (permalink / raw)
  To: git

Hi all,

I'm generally used to the idea that if a thing is not marked as
"thread-safe" then it isn't thread safe, but I thought I'd ask anyway
to be sure.

Is it safe for me to do several operations with git concurrently on
the same local repo? Specifically I'm trying to speed up "git
submodule update" by doing several at the same time.  I've noticed
some odd side effects afterwards though when trying to commit changes
to my super project.

Apologies if this is answered elsewhere, my google-foo is weak today.

Many thanks

Ian

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Are concurrent git operations on the same repo safe?
  2018-02-05 20:16 Are concurrent git operations on the same repo safe? Ian Norton
@ 2018-02-06 10:16 ` Duy Nguyen
  2018-02-06 17:30   ` Stefan Beller
  2018-02-06 20:10 ` Jonathan Nieder
  1 sibling, 1 reply; 5+ messages in thread
From: Duy Nguyen @ 2018-02-06 10:16 UTC (permalink / raw)
  To: Ian Norton; +Cc: Git Mailing List, Stefan Beller

On Tue, Feb 6, 2018 at 3:16 AM, Ian Norton <inorton@gmail.com> wrote:
> Hi all,
>
> I'm generally used to the idea that if a thing is not marked as
> "thread-safe" then it isn't thread safe, but I thought I'd ask anyway
> to be sure.
>
> Is it safe for me to do several operations with git concurrently on
> the same local repo?

Off the top of my head, object database access (e.g. things in
.git/objects), refs updates (.git/refs) and .git/index should handle
concurrent operations fine (or in the worst case you get "some
operation is ongoing, aborted" and you need to try again but not
corruption or anything else). I think we generally try to make it safe
concurrently.

> Specifically I'm trying to speed up "git
> submodule update" by doing several at the same time.  I've noticed
> some odd side effects afterwards though when trying to commit changes
> to my super project.

submodule is a hot area with lots of development lately I think,
perhaps you're seeing some bugs... CCing at least one submodule
person...

> Apologies if this is answered elsewhere, my google-foo is weak today.
>
> Many thanks
>
> Ian



-- 
Duy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Are concurrent git operations on the same repo safe?
  2018-02-06 10:16 ` Duy Nguyen
@ 2018-02-06 17:30   ` Stefan Beller
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Beller @ 2018-02-06 17:30 UTC (permalink / raw)
  To: Duy Nguyen; +Cc: Ian Norton, Git Mailing List

On Tue, Feb 6, 2018 at 2:16 AM, Duy Nguyen <pclouds@gmail.com> wrote:
> On Tue, Feb 6, 2018 at 3:16 AM, Ian Norton <inorton@gmail.com> wrote:
>> Hi all,
>>
>> I'm generally used to the idea that if a thing is not marked as
>> "thread-safe" then it isn't thread safe, but I thought I'd ask anyway
>> to be sure.
>>
>> Is it safe for me to do several operations with git concurrently on
>> the same local repo?
>
> Off the top of my head, object database access (e.g. things in
> .git/objects), refs updates (.git/refs) and .git/index should handle
> concurrent operations fine (or in the worst case you get "some
> operation is ongoing, aborted" and you need to try again but not
> corruption or anything else). I think we generally try to make it safe
> concurrently.
>
>> Specifically I'm trying to speed up "git
>> submodule update" by doing several at the same time.  I've noticed
>> some odd side effects afterwards though when trying to commit changes
>> to my super project.
>
> submodule is a hot area with lots of development lately I think,
> perhaps you're seeing some bugs... CCing at least one submodule
> person...
>
>> Apologies if this is answered elsewhere, my google-foo is weak today.
>>
>> Many thanks
>>
>> Ian

"git submodule update" has the network part parallelized,
but not the local part IIRC. (That is cloning/fetching submodules
can be done with "-j <n>", but the local checkout is still serial for
UX purposes, i.e. it wants to stop at the first conflict and only
have one conflict at a time)

Which odd side effects do you see?
I'd be curious to see if that is a bug in the code or documentation.

Thanks,
Stefan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Are concurrent git operations on the same repo safe?
  2018-02-05 20:16 Are concurrent git operations on the same repo safe? Ian Norton
  2018-02-06 10:16 ` Duy Nguyen
@ 2018-02-06 20:10 ` Jonathan Nieder
  2018-02-06 20:26   ` Ian Norton
  1 sibling, 1 reply; 5+ messages in thread
From: Jonathan Nieder @ 2018-02-06 20:10 UTC (permalink / raw)
  To: Ian Norton; +Cc: git

Ian Norton wrote:

>                      Specifically I'm trying to speed up "git
> submodule update" by doing several at the same time.

Can you say more about this?  E.g. how can I reproduce your experience?
Is there a script I can run?

Thanks,
Jonathan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Are concurrent git operations on the same repo safe?
  2018-02-06 20:10 ` Jonathan Nieder
@ 2018-02-06 20:26   ` Ian Norton
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Norton @ 2018-02-06 20:26 UTC (permalink / raw)
  To: Jonathan Nieder; +Cc: git

Sure, my office is still devoid of power, i'll have to get back to you
to be more precise but I was using a morally equivalent process to
https://gitlab.com/inorton/git-multi-sync

cd repo
python -m gitmultisync --update-submodules

where I had a superproject containing 5-6 submodules, some of which
were quite large (1-2Gb history)

Afterwards, I had trouble doing "git pull -r" in my submodules to pull
in newer changes.

On 6 February 2018 at 20:10, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Ian Norton wrote:
>
>>                      Specifically I'm trying to speed up "git
>> submodule update" by doing several at the same time.
>
> Can you say more about this?  E.g. how can I reproduce your experience?
> Is there a script I can run?
>
> Thanks,
> Jonathan

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-02-06 20:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-05 20:16 Are concurrent git operations on the same repo safe? Ian Norton
2018-02-06 10:16 ` Duy Nguyen
2018-02-06 17:30   ` Stefan Beller
2018-02-06 20:10 ` Jonathan Nieder
2018-02-06 20:26   ` Ian Norton

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).