Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/util.py @ 4232:0d51eb296fb9
Merge with crew-stable
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 16 Mar 2007 00:45:18 -0300 |
parents | b5d1eaade333 c93562fb12cc |
children | da6b14877195 |
comparison
equal
deleted
inserted
replaced
4224:2a8b6d78d7ee | 4232:0d51eb296fb9 |
---|---|
323 res += re.escape(c) | 323 res += re.escape(c) |
324 return head + res + tail | 324 return head + res + tail |
325 | 325 |
326 _globchars = {'[': 1, '{': 1, '*': 1, '?': 1} | 326 _globchars = {'[': 1, '{': 1, '*': 1, '?': 1} |
327 | 327 |
328 def pathto(n1, n2): | 328 def pathto(root, n1, n2): |
329 '''return the relative path from one place to another. | 329 '''return the relative path from one place to another. |
330 root should use os.sep to separate directories | |
330 n1 should use os.sep to separate directories | 331 n1 should use os.sep to separate directories |
331 n2 should use "/" to separate directories | 332 n2 should use "/" to separate directories |
332 returns an os.sep-separated path. | 333 returns an os.sep-separated path. |
334 | |
335 If n1 is a relative path, it's assumed it's | |
336 relative to root. | |
337 n2 should always be relative to root. | |
333 ''' | 338 ''' |
334 if not n1: return localpath(n2) | 339 if not n1: return localpath(n2) |
340 if os.path.isabs(n1): | |
341 if os.path.splitdrive(root)[0] != os.path.splitdrive(n1)[0]: | |
342 return os.path.join(root, localpath(n2)) | |
343 n2 = '/'.join((pconvert(root), n2)) | |
335 a, b = n1.split(os.sep), n2.split('/') | 344 a, b = n1.split(os.sep), n2.split('/') |
336 a.reverse() | 345 a.reverse() |
337 b.reverse() | 346 b.reverse() |
338 while a and b and a[-1] == b[-1]: | 347 while a and b and a[-1] == b[-1]: |
339 a.pop() | 348 a.pop() |