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