Mercurial > hg > mercurial-source
changeset 35773:cabc840ffdee stable 4.4.1
stable: merge with security patches
author | Augie Fackler <augie@google.com> |
---|---|
date | Tue, 07 Nov 2017 11:22:24 -0500 |
parents | 0f5521e56b77 (diff) 1a314176da9c (current diff) |
children | 929bf8390056 |
files | mercurial/configitems.py |
diffstat | 5 files changed, 52 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/share.py +++ b/hgext/share.py @@ -63,16 +63,6 @@ # leave the attribute unspecified. testedwith = 'ships-with-hg-core' -configtable = {} -configitem = registrar.configitem(configtable) - -configitem('share', 'pool', - default=None, -) -configitem('share', 'poolnaming', - default='identity', -) - @command('share', [('U', 'noupdate', None, _('do not create a working directory')), ('B', 'bookmarks', None, _('also share bookmarks')),
--- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -570,9 +570,8 @@ unresolvedlist = [f for f in mergestate.unresolved() if m(f)] if unresolvedlist: mergeliststr = '\n'.join( - [' %s' % os.path.relpath( - os.path.join(repo.root, path), - pycompat.getcwd()) for path in unresolvedlist]) + [' %s' % util.pathto(repo.root, pycompat.getcwd(), path) + for path in unresolvedlist]) msg = _('''Unresolved merge conflicts: %s
--- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -790,6 +790,12 @@ coreconfigitem('server', 'zliblevel', default=-1, ) +coreconfigitem('share', 'pool', + default=None, +) +coreconfigitem('share', 'poolnaming', + default='identity', +) coreconfigitem('smtp', 'host', default=None, )
--- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -243,7 +243,9 @@ try: sharedpath = os.path.relpath(sharedpath, destvfs.base) requirements += 'relshared\n' - except IOError as e: + except (IOError, ValueError) as e: + # ValueError is raised on Windows if the drive letters differ on + # each path raise error.Abort(_('cannot calculate relative path'), hint=str(e)) else:
--- a/mercurial/pathutil.py +++ b/mercurial/pathutil.py @@ -135,7 +135,47 @@ return False def canonpath(root, cwd, myname, auditor=None): - '''return the canonical path of myname, given cwd and root''' + '''return the canonical path of myname, given cwd and root + + >>> def check(root, cwd, myname): + ... a = pathauditor(root, realfs=False) + ... try: + ... return canonpath(root, cwd, myname, a) + ... except error.Abort: + ... return 'aborted' + >>> def unixonly(root, cwd, myname, expected='aborted'): + ... if pycompat.iswindows: + ... return expected + ... return check(root, cwd, myname) + >>> def winonly(root, cwd, myname, expected='aborted'): + ... if not pycompat.iswindows: + ... return expected + ... return check(root, cwd, myname) + >>> winonly(b'd:\\\\repo', b'c:\\\\dir', b'filename') + 'aborted' + >>> winonly(b'c:\\\\repo', b'c:\\\\dir', b'filename') + 'aborted' + >>> winonly(b'c:\\\\repo', b'c:\\\\', b'filename') + 'aborted' + >>> winonly(b'c:\\\\repo', b'c:\\\\', b'repo\\\\filename', + ... b'filename') + 'filename' + >>> winonly(b'c:\\\\repo', b'c:\\\\repo', b'filename', b'filename') + 'filename' + >>> winonly(b'c:\\\\repo', b'c:\\\\repo\\\\subdir', b'filename', + ... b'subdir/filename') + 'subdir/filename' + >>> unixonly(b'/repo', b'/dir', b'filename') + 'aborted' + >>> unixonly(b'/repo', b'/', b'filename') + 'aborted' + >>> unixonly(b'/repo', b'/', b'repo/filename', b'filename') + 'filename' + >>> unixonly(b'/repo', b'/repo', b'filename', b'filename') + 'filename' + >>> unixonly(b'/repo', b'/repo/subdir', b'filename', b'subdir/filename') + 'subdir/filename' + ''' if util.endswithsep(root): rootsep = root else: