sapling/hgext/infinitepush/README

26 lines
945 B
Plaintext
Raw Normal View History

## What is it?
This extension adds ability to save certain pushes to a remote blob store
as bundles and to serve commits from remote blob store.
The revisions are stored on disk or in everstore.
The metadata are stored in sql or on disk.
infinitepush: sample implementation Summary: Copy of hackbranch hackathon project with a few changes. The goal is to allow saving commits under certain bookmarks in the separate store. These bookmarks are called 'scratch' bookmarks and are defined in config file (for example, 're:scratch/.+'). Scratch commits are sent in a separate bundle2 part during push. During pull new bundle repo is created and requests are served using this bundle repo. There are a few changes from hackathon project implementation. # It requires no changes in mercurial core. It was done by wrapping `findcommonincoming()` function and changing `lookup()` wireproto method (see below). # Instead of introducing `listkeypattern()` wireproto method, `lookup()` method and `pull()` command were wrapped. I did it because I thought that it will make code easier. It probably haven't made it easier, it's almost the same. I can change it back to `listkeypattern` if it's necessary. The bad thing about current implementation is that scratch bookmarks are not downloaded. But in the previous implementation also haven't downloaded bookmark if remotenames is enabled. There are a couple of problems: 1) As I mentioned before, scratch bookmarks are not downloaded 2) It's impossible to pull both scratch and non-scratch bookmark Test Plan: python ../../../hg-crew/tests/run-tests.py test-bundlestore.t Reviewers: durham, rmcelroy, mitrandir Reviewed By: mitrandir Subscribers: mjpieters Differential Revision: https://phabricator.intern.facebook.com/D3750999 Tasks: 12479677 Signature: t1:3750999:1472052396:5d7828566863f0aa437cdc34439ec0759503c6c9
2016-08-26 16:09:01 +03:00
## Config options
infinitepush.branchpattern: pattern to detect a scratchbranch, example
're:scratch/.+'
infinitepush.indextype: disk or sql for the metadata
infinitepush.reponame: only relevant for sql metadata backend, reponame to put in
sql
infinitepush.indexpath: only relevant for ondisk metadata backend, the path to
store the index on disk. If not set will be under .hg
in a folder named filebundlestore
infinitepush.storepath: only relevant for ondisk metadata backend, the path to
store the bundles. If not set, it will be
.hg/filebundlestore