Add symlink method to util.opener.
Differences from os.symlink:
- the symlink name is relative to the opener base directory
- if a file with that name already exists, it's removed
- if necessary, parent directories are created
- if the system (OS or filesystem) doesn't support symlinks, a
regular file is created. Its contents are the symlink target.
os = <unloaded module 'os'>
os.system = <built-in function system>
os = <module 'os' from '?'>
mercurial.version = <unloaded module 'version'>
mercurial.version.get_version = <function get_version at 0x?>
mercurial.version = <module 'mercurial.version' from '?'>
mercurial = <module 'mercurial' from '?'>
util = <unloaded module 'util'>
util.system = <function system at 0x?>
util = <module 'mercurial.util' from '?'>
util.system = <function system at 0x?>
fred = <unloaded module 're'>
re = <unloaded module 'sys'>
fred = <unloaded module 're'>
fred.sub = <function sub at 0x?>
fred = <proxied module 're'>
re = <unloaded module 'sys'>
re.stdout = <open file '<stdout>', mode 'w' at 0x?>
re = <proxied module 'sys'>