Comments
Patch
@@ -1690,7 +1690,12 @@ def addpartbundlestream2(bundler, repo,
includeobsmarkers = False
if repo.obsstore:
remoteversions = obsmarkersversion(bundler.capabilities)
- if repo.obsstore._version in remoteversions:
+ if not remoteversions:
+ msg = _('server has obsolescence markers, '
+ 'but client cannot receive them')
+ hint = _('either enable evolution or clone without --stream')
+ raise error.Abort(msg, hint=hint)
+ elif repo.obsstore._version in remoteversions:
includeobsmarkers = True
filecount, bytecount, it = streamclone.generatev2(repo, includeobsmarkers)
requirements = _formatrequirementsspec(repo.requirements)
@@ -556,6 +556,13 @@ Clone non-publishing with obsolescence
$ hg debugobsolete -R with-obsolescence
50382b884f66690b7045cac93a540cba4d4c906f 0 {c17445101a72edac06facd130d14808dfbd5c7c2} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+ $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution
+ streaming all changes
+ remote: abort: server has obsolescence markers, but client cannot receive them
+ abort: pull failed on remote
+ (either enable evolution or clone without --stream)
+ [255]
+
$ killdaemons.py
#endif