updated faq/readme again · Entire

updated faq/readme again

1b676c0main·

Soph·2mo ago·1 file·+8 added/-5

Sessions

65651c113574View transcript

[?
can you review the faq changes in this branch, can you look at them as an engineer being familiar with general usage of git and how repositories workCodex·GPT-5.4·1 step](/content/gh/entireio/git-sync/session/019ddda4-e5fe-7d62-bd1f-f28b89eb8f99#timeline-65651c113574/index.html)

Changes

1

103 unmodified lines

104
105
106
107
107
108
109
110
111
112
113
114
115
111
116
117
113
114
115
118
119
120
121

103 unmodified lines

How does it scale?

The scalable path streams pack data from the source directly into the target without materializing the full object graph locally. The in-memory go-git store is used for planning, ancestry checks, and fallback materialized pushes. In fallback mode, git-sync fetches objects into memory, computes what must be pushed, then encodes and sends a pack to the target.
git-sync has two transfer paths:

Planning itself is cheap: ref-only round-trips, plus a filter tree:0 fetch for ancestry checks when the source advertises filter support.

How long does it take for a medium-sized repo?

There is no fixed runtime. It depends on repository size, pack size, network latency, provider speed, and whether relay is used. On the relay path, time is mostly source pack generation plus network transfer plus target receive time.
It depends on repository size, network speed, and whether the relay path is available. As a rule of thumb, the relay path is bounded by source pack generation + network transfer + target receive-pack time — roughly the time of a git clone from the source plus a git push of the same pack. The materialized fallback adds local memory work for objects that need inspection.

How does it deal with partial successes? Is it atomic?

git-sync plans before pushing and blocks unsafe refs before starting. A single target receive-pack push is atomic in the normal Git sense for that push. Across multiple batches or separate push requests, especially batched bootstrap, it is not globally atomic; batched bootstrap uses temporary refs and resume behavior.
For concrete numbers on your own setup, run the included benchmark tool against a representative repo; see docs/testing.md.

Does it support SSH?