( )⚙ D4765 fastcheckout: extension for obtaining a checkout quickly

This is an archive of the discontinued Mercurial Phabricator instance.

fastcheckout: extension for obtaining a checkout quickly
AbandonedPublic

Authored by indygreg on Sep 26 2018, 5:44 PM.

Details

Reviewers
None
Group Reviewers
hg-reviewers
Summary

One of the use cases for version control is in automated environments
that just want to obtain a working directory for a specific revision
as fast as possible. They don't necessarily care about repository
history or even the ability to commit to a local repo or do anything
beyond basic filesystem operations on the working directory. For these
consumers, a svn co equivalent local repo / working directory is
all they need.

This commit introduces an extension with the aim of fulfilling this
market niche. hg fastcheckout can be used to construct a working
directory against a revision in a remote repo, optionally purging
and cleaning the working directory along the way.

While this command might be useful as a general Mercurial feature,
the main reason I'm writing it is to provide a command where we can
start flushing out partial clone in core APIs and in end-user UI.
We already do some of this in support of the narrow extension. However,
narrow has a certain view of the world and I'm not convinced that its
view will align with the APIs available in the new wire protocol. I'd
like to start from scratch and see where that takes us. Since my top
priority for partial clone is to enable fast single revision checkouts
in automated environments, it makes sense to provide a command that
does this while simultaneously allowing us to test partial clone and
measure its performance.

Diff Detail

Repository
rHG Mercurial
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

indygreg created this revision.Sep 26 2018, 5:44 PM
indygreg abandoned this revision.Oct 17 2018, 4:11 AM

Per discussions at 4.8 sprint, we're going to hold off on this.