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.
#header#
<title>#repo|escape#: tags</title>
<link rel="alternate" type="application/rss+xml"
href="#url#rss-tags" title="RSS feed for #repo|escape#: tags">
</head>
<body>
<div class="buttons">
<a href="#url#log{sessionvars%urlparameter}">changelog</a>
<a href="#url#shortlog{sessionvars%urlparameter}">shortlog</a>
<a href="#url#file/#node|short#/{sessionvars%urlparameter}">manifest</a>
<a type="application/rss+xml" href="#url#rss-tags">rss</a>
</div>
<h2>tags:</h2>
<ul id="tagEntries">
#entries%tagentry#
</ul>
#footer#