##// END OF EJS Templates
bundle: add an experimental knob to include obsmarkers in bundle...
marmoute -
r32516:37d70ba1 default
parent child Browse files
Show More
@@ -1348,7 +1348,10 b' def writenewbundle(ui, repo, source, fil'
1348 elif not bundletype.startswith('HG20'):
1348 elif not bundletype.startswith('HG20'):
1349 raise error.ProgrammingError('unknown bundle type: %s' % bundletype)
1349 raise error.ProgrammingError('unknown bundle type: %s' % bundletype)
1350
1350
1351 bundle = bundle20(ui)
1351 caps = {}
1352 if 'obsolescence' in opts:
1353 caps['obsmarkers'] = ('V1',)
1354 bundle = bundle20(ui, caps)
1352 bundle.setcompression(compression, compopts)
1355 bundle.setcompression(compression, compopts)
1353 _addpartsfromopts(ui, repo, bundle, source, outgoing, opts)
1356 _addpartsfromopts(ui, repo, bundle, source, outgoing, opts)
1354 chunkiter = bundle.getchunks()
1357 chunkiter = bundle.getchunks()
@@ -1377,6 +1380,10 b' def _addpartsfromopts(ui, repo, bundler,'
1377
1380
1378 addparttagsfnodescache(repo, bundler, outgoing)
1381 addparttagsfnodescache(repo, bundler, outgoing)
1379
1382
1383 if opts.get('obsolescence', False):
1384 obsmarkers = repo.obsstore.relevantmarkers(outgoing.missing)
1385 buildobsmarkerspart(bundler, obsmarkers)
1386
1380 def addparttagsfnodescache(repo, bundler, outgoing):
1387 def addparttagsfnodescache(repo, bundler, outgoing):
1381 # we include the tags fnode cache for the bundle changeset
1388 # we include the tags fnode cache for the bundle changeset
1382 # (as an optional parts)
1389 # (as an optional parts)
@@ -1326,6 +1326,8 b' def bundle(ui, repo, fname, dest=None, *'
1326
1326
1327
1327
1328 contentopts = {'cg.version': cgversion}
1328 contentopts = {'cg.version': cgversion}
1329 if repo.ui.configbool('experimental', 'evolution.bundle-obsmarker', False):
1330 contentopts['obsolescence'] = True
1329 bundle2.writenewbundle(ui, repo, 'bundle', fname, bversion, outgoing,
1331 bundle2.writenewbundle(ui, repo, 'bundle', fname, bversion, outgoing,
1330 contentopts, compression=bcompression,
1332 contentopts, compression=bcompression,
1331 compopts=compopts)
1333 compopts=compopts)
@@ -83,6 +83,21 b' check that bundle is not affected'
83 adding file changes
83 adding file changes
84 added 1 changesets with 0 changes to 1 files (+1 heads)
84 added 1 changesets with 0 changes to 1 files (+1 heads)
85 (run 'hg heads' to see heads)
85 (run 'hg heads' to see heads)
86
87 check-that bundle can contain markers:
88
89 $ hg bundle --hidden --rev f89bcc95eba5 --base "f89bcc95eba5^" ../f89bcc95eba5-obs.hg --config experimental.evolution.bundle-obsmarker=1
90 1 changesets found
91 $ hg debugbundle ../f89bcc95eba5.hg
92 Stream params: sortdict([('Compression', 'BZ')])
93 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])"
94 f89bcc95eba5174b1ccc3e33a82e84c96e8338ee
95 $ hg debugbundle ../f89bcc95eba5-obs.hg
96 Stream params: sortdict([('Compression', 'BZ')])
97 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])"
98 f89bcc95eba5174b1ccc3e33a82e84c96e8338ee
99 obsmarkers -- 'sortdict()'
100
86 $ cd ..
101 $ cd ..
87
102
88 pull does not fetch excessive changesets when common node is hidden (issue4982)
103 pull does not fetch excessive changesets when common node is hidden (issue4982)
General Comments 0
You need to be logged in to leave comments. Login now