Mercurial > public > mercurial-scm > hg
comparison mercurial/bundle2.py @ 40399:4ab6e7b4fe8a
streamclone: abort when client needs to handle obsmarkers, but doesn't
When client doesn't have any of obsolescence markers exchange capabilities,
then it's safe to say it can't handle obsmarkers. However, if it understands
even one format version, then stream clones are fine -- client can use
"obsmarkers" bundle2 part.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Fri, 05 Oct 2018 23:40:12 +0800 |
parents | 0ac794e0e285 |
children | 14b6afc6cb28 |
comparison
equal
deleted
inserted
replaced
40398:0ac794e0e285 | 40399:4ab6e7b4fe8a |
---|---|
1698 raise error.Abort(_('server does not support narrow stream clones')) | 1698 raise error.Abort(_('server does not support narrow stream clones')) |
1699 | 1699 |
1700 includeobsmarkers = False | 1700 includeobsmarkers = False |
1701 if repo.obsstore: | 1701 if repo.obsstore: |
1702 remoteversions = obsmarkersversion(bundler.capabilities) | 1702 remoteversions = obsmarkersversion(bundler.capabilities) |
1703 if repo.obsstore._version in remoteversions: | 1703 if not remoteversions: |
1704 raise error.Abort(_('server has obsolescence markers, but client ' | |
1705 'cannot receive them via stream clone')) | |
1706 elif repo.obsstore._version in remoteversions: | |
1704 includeobsmarkers = True | 1707 includeobsmarkers = True |
1705 | 1708 |
1706 filecount, bytecount, it = streamclone.generatev2(repo, includepats, | 1709 filecount, bytecount, it = streamclone.generatev2(repo, includepats, |
1707 excludepats, | 1710 excludepats, |
1708 includeobsmarkers) | 1711 includeobsmarkers) |