comparison mercurial/hg.py @ 18944:a9c443b3b240

unionrepo: read-only operations on a union of two localrepos unionrepo is just like bundlerepo without bundles. The implementation is very similar to bundlerepo, but I don't see any obvious way to generalize it. Some most obvious use cases for this would be log and diff across local repos, as a kind of preview of pulls, for instance: $ hg -R union:repo1+repo2 heads $ hg -R union:repo1+repo2 log -r REPO1REV -r REPO2REV $ hg -R union:repo1+repo2 log -r '::REPO1REV-::REPO2REV' $ hg -R union:repo1+repo2 log -r 'ancestor(REPO1REV,REPO2REV)' $ hg -R union:repo1+repo2 diff -r REPO1REV -r REPO2REV This is going to be used in RhodeCode, and Bitbucket already uses something similar. Having a core implementation would be beneficial.
author Mads Kiilerich <madski@unity3d.com>
date Fri, 18 Jan 2013 15:54:09 +0100
parents b6b9475c563a
children 3b96d6e44a4d 0af993732f66
comparison
equal deleted inserted replaced
18943:27e8dfc2c338 18944:a9c443b3b240
7 # GNU General Public License version 2 or any later version. 7 # GNU General Public License version 2 or any later version.
8 8
9 from i18n import _ 9 from i18n import _
10 from lock import release 10 from lock import release
11 from node import hex, nullid 11 from node import hex, nullid
12 import localrepo, bundlerepo, httppeer, sshpeer, statichttprepo, bookmarks 12 import localrepo, bundlerepo, unionrepo, httppeer, sshpeer, statichttprepo
13 import lock, util, extensions, error, node, scmutil, phases, url 13 import bookmarks, lock, util, extensions, error, node, scmutil, phases, url
14 import cmdutil, discovery 14 import cmdutil, discovery
15 import merge as mergemod 15 import merge as mergemod
16 import verify as verifymod 16 import verify as verifymod
17 import errno, os, shutil 17 import errno, os, shutil
18 18
62 u.fragment = None 62 u.fragment = None
63 return str(u), (branch, branches or []) 63 return str(u), (branch, branches or [])
64 64
65 schemes = { 65 schemes = {
66 'bundle': bundlerepo, 66 'bundle': bundlerepo,
67 'union': unionrepo,
67 'file': _local, 68 'file': _local,
68 'http': httppeer, 69 'http': httppeer,
69 'https': httppeer, 70 'https': httppeer,
70 'ssh': sshpeer, 71 'ssh': sshpeer,
71 'static-http': statichttprepo, 72 'static-http': statichttprepo,