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.
% init foo-base
% create alpha in first repo
adding alpha
% clone foo-base to foo-work
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% create beta in second repo
adding beta
% create gamma in first repo
adding gamma
% pull into work and merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
% revert to changeset 1 to simulate a failed merge
2 files updated, 0 files merged, 0 files removed, 0 files unresolved