We do not currently support showing tags and bookmarks in Mercurial remotes in Diffusion.
Description
Revisions and Commits
Restricted Differential Revision | |
Restricted Differential Revision | |
Restricted Differential Revision | |
Restricted Differential Revision | |
Restricted Differential Revision | |
Restricted Differential Revision |
Related Objects
Event Timeline
They're a function of an individual commit instead of being a function of the repository as a whole, so we'd have to do a lot more work to support them (it's not meaningful to, say, "list all tags in the repository", as it is with Git), and I suspect they're not used much in the wild because of how they work. I'm not sure if this is true or not.
At least Python and Mercurial itself use tags extensively, and there are many more projects that do.
Listing all tags is straightforward at tip (hg tags), but, as you indicated correctly, they can be altered freely since they reside in the .hgtags file.
However, since the browse view (to my knowledge) displays the repository at tip, listing the tags at that revision would be feasible. I'm not at all sure how this would work in Phabricator.
Our projects make use of mercurial tags, specifically for marking versions and for managing some repository dependencies (preventing commits being pushed upstream to repo A unless they already exist upstream in repo B).
Having the ability to see tags available at the tip repo would be nice but in our case I don't think there's any specific need to be able to see them in Phabricator.
Thanks
Our projects make heavy use of mercurial tags too, for version tagging and it would be great to see them in Phabricator to easily compare files between versions (they're way more easy to remember than changeset hashes).
This is not the case. Effective tags in Mercurial are considered to be the combination of the tags in all heads (though there is potential for some conflict). The hg tags command lists such tags. With this definition, tags are indeed a function of the repository, not each commit. It's a pretty essential definition, so that if you update to an old tag, you can still see later tags in the list and update to them, and to be able to see and update to tags in other branches.
This is explained on the tag page on the Mercurial wiki.
So implementation should be fairly (though not exactly) comparable in complexity to the Git case. It would be good to have support for them in Phabricator/Diffusion.
Ah, you're right, thanks! I misread that page -- that does make Mercurial tags a lot easier to deal with.