mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
bundle: add revset expression to show bundle contents (issue3487)
bundle() revset expression returns all changes that are present in the bundle file (no matter whether they are in the repo or not). Bundle file should be specified via -R option.
This commit is contained in:
parent
d277fc55af
commit
fab490ae63
@ -33,6 +33,7 @@ class bundlerevlog(revlog.revlog):
|
||||
self.basemap = {}
|
||||
n = len(self)
|
||||
chain = None
|
||||
self.bundlenodes = []
|
||||
while True:
|
||||
chunkdata = bundle.deltachunk(chain)
|
||||
if not chunkdata:
|
||||
@ -48,6 +49,7 @@ class bundlerevlog(revlog.revlog):
|
||||
start = bundle.tell() - size
|
||||
|
||||
link = linkmapper(cs)
|
||||
self.bundlenodes.append(node)
|
||||
if node in self.nodemap:
|
||||
# this can happen if two branches make the same change
|
||||
chain = node
|
||||
|
@ -442,6 +442,19 @@ def bumped(repo, subset, x):
|
||||
bumped = obsmod.getrevs(repo, 'bumped')
|
||||
return [r for r in subset if r in bumped]
|
||||
|
||||
def bundle(repo, subset, x):
|
||||
"""``bundle()``
|
||||
Changesets in the bundle.
|
||||
|
||||
Bundle must be specified by the -R option."""
|
||||
|
||||
try:
|
||||
bundlenodes = repo.changelog.bundlenodes
|
||||
except AttributeError:
|
||||
raise util.Abort(_("no bundle provided - specify with -R"))
|
||||
revs = set(repo[n].rev() for n in bundlenodes)
|
||||
return [r for r in subset if r in revs]
|
||||
|
||||
def checkstatus(repo, subset, pat, field):
|
||||
m = None
|
||||
s = []
|
||||
@ -1513,6 +1526,7 @@ symbols = {
|
||||
"branch": branch,
|
||||
"branchpoint": branchpoint,
|
||||
"bumped": bumped,
|
||||
"bundle": bundle,
|
||||
"children": children,
|
||||
"closed": closed,
|
||||
"contains": contains,
|
||||
|
@ -444,6 +444,33 @@ Unbundle incremental bundles into fresh empty in one go
|
||||
added 1 changesets with 1 changes to 1 files
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
|
||||
View full contents of the bundle
|
||||
$ hg -R test bundle --base null -r 3 ../partial.hg
|
||||
4 changesets found
|
||||
$ cd test
|
||||
$ hg -R ../../partial.hg log -r "bundle()"
|
||||
changeset: 0:f9ee2f85a263
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
summary: 0.0
|
||||
|
||||
changeset: 1:34c2bf6b0626
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
summary: 0.1
|
||||
|
||||
changeset: 2:e38ba6f5b7e0
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
summary: 0.2
|
||||
|
||||
changeset: 3:eebf5a27f8ca
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
summary: 0.3
|
||||
|
||||
$ cd ..
|
||||
|
||||
test for 540d1059c802
|
||||
|
||||
test for 540d1059c802
|
||||
|
Loading…
Reference in New Issue
Block a user