mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
219554305e
Summary: The current `clone --shallow` command has some issues: - It fetches *all* remote bookmarks, since selectivepull does not work with streamclone, then remove most remote bookmarks in a second transaction. - It goes through remotenames, which is racy, and D20703268 does not fix the clone case. Possible cause of T65349853. - Too many wrappers (ex. in remotefilelog, remotenames, fastdiscovery) wtih many configurations (ex. narrow-heads on/off) makes it hard to reason about. Instead of bandaidding the clone function, this diff adds a new clone implementation that aims to solve the issues: - Use streamclone, but do not pull all remote names. - Pull selectivepull names explicitly with a working "discovery" strategy (repo heads should be non-empty with narrow-heads on or off). - Do clone in one transaction. Outside world won't see an incomplete state. - Use `repo.pull` API, which is not subject to race conditions. - Eventually, this might be the only supported "clone" after Mononoke becoming the single source of truth. Note: the code path still goes through bookmarks.py and remotenames.py. They will be cleaned up in upcoming diffs. Reviewed By: DurhamG Differential Revision: D21011401 fbshipit-source-id: d8751ac9bd643e9661e58c87b683be285f0dc925 |
||
---|---|---|
.. | ||
contrib | ||
distutils_rust | ||
doc | ||
edenscm | ||
edenscmnative | ||
exec | ||
i18n | ||
lib | ||
newdoc | ||
pystubs | ||
slides | ||
tests | ||
.editorconfig | ||
.flake8 | ||
.gitignore | ||
COPYING | ||
gen_version.py | ||
hgeditor | ||
Makefile | ||
README.rst | ||
setup3.py | ||
setup.py |
Mercurial ========= Mercurial is a fast, easy to use, distributed revision control tool for software developers. Basic install:: $ make # see install targets $ make install # do a system-wide install $ hg debuginstall # sanity-check setup $ hg # see help Running without installing:: $ make local # build for inplace usage $ ./hg --version # should show the latest version See https://mercurial-scm.org/ for detailed installation instructions, platform-specific notes, and Mercurial user information.