Re: [PATCH v3 3/4] gitfaq: add entry about syncing working trees
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 4, 2024, 05:21 UTC
- Message-ID
- <xmqqjzi191fw.fsf@gitster.g>
- In-Reply-To
- <20240704003818.750223-4-sandals@crustytoothpaste.net>
"brian m. carlson" <sandals@crustytoothpaste.net> writes:
> -Credentials > ------------ > +Credentials and Transfers > +-------------------------
I can see (and appreciate) that you struggled to find a good section to piggyback on, instead of giving this topic its own section. But do these two make a good mix? They seem to be totally different topics.
Show 7 quoted lines
> +It is important not to use a cloud syncing service to sync any portion of a Git > +repository, since this can cause corruption, such as missing objects, changed > +or added files, broken refs, and a wide variety of other corruption. These > +services tend to sync file by file on a continuous basis and don't understand > +the structure of a Git repository. This is especially bad if they sync the > +repository in the middle of it being updated, since that is very likely to > +cause incomplete or partial updates and therefore data loss.
A naïve reader may say "but isn't it the point of these cloud syncing service that they will eventually catch up???" and we may want to have a good story why it does not work.
You create many objects in one repository in loose form, cloud
syncing service kicks in to transfer them to the second
repository, and then in the original repository an auto-gc kicks
in so some of the loose objects fail to propagate. The packfile
that is the result of auto-gc will eventually propagate to the
second repository, but before it completes, the second
repository would be in an inconsistent state, and especially if
the ref updates are propagated before objects, then the second
repository will be in a corrupt state. It would be a disaster
if another auto-gc kicked in there.is one scenario I came up with.