You're not missing something; that column's frequently unnecessary, but it does tell you something useful.
Mercurial originated on Unix—in fact, it was originally designed to manage the Linux kernel source code—so it tracks both whether a given file is executable, and whether it's a symlink, in Unix terms. But that's it: it doesn't track full Unix permissions. Because having a single column called "Executable or Symlink" made no sense, and because
hg serve shows you the permissions you will get if you update to the given revision on a Unix system, we opted to emulate
hg serve and show the Unix permissions you would get on cloning.
There are a couple alternatives that immediately come to mind:
- Never show the column at all, since it usually doesn't matter, even on Unix systems.
- Never show the column, but only on Windows systems, since it's literally counterproductive there. (
cmd.exe and Explorer both launch anything at all, as long as it has a recognized extension, so going by the executable flag could be dangerously misleading.) We would continue to display it if viewing the repository from a Unix or Mac system in this scenario.
- Attempt to convey whether a file is executable or a symlink via its icon. The only concern here is that there's no truly standard icon for executables versus documents, but I suspect that the generic Windows or Mac icons would be clear enough to be useful--and we could probably easily serve up icons appropriate to the platform of the browser viewing the page. This would be unobtrusive and less confusing, while still conveying the information.
We're not at all wedded to the current implementation. Option 3 seems like a good compromise to me. What are your thoughts?