Mercurial > hg
changeset 31993:bfb826c350d4
tags: introduce a function to return a valid fnodes list from revs
This will get used to compare tags between two set of revisions during a
transaction (pre and post heads). The end goal is to be able to track tags
movement in transaction hooks.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Tue, 28 Mar 2017 05:06:56 +0200 |
parents | 3e47a40d7a7a |
children | b36318e6d2ef |
files | mercurial/tags.py |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/tags.py Fri Apr 14 14:25:06 2017 +0200 +++ b/mercurial/tags.py Tue Mar 28 05:06:56 2017 +0200 @@ -78,6 +78,18 @@ # The most recent changeset (in terms of revlog ordering for the head # setting it) for each tag is last. +def fnoderevs(ui, repo, revs): + """return the list of '.hgtags' fnodes used in a set revisions + + This is returned as list of unique fnodes. We use a list instead of a set + because order matters when it comes to tags.""" + unfi = repo.unfiltered() + tonode = unfi.changelog.node + nodes = [tonode(r) for r in revs] + fnodes = _getfnodes(ui, repo, nodes[::-1]) # reversed help the cache + fnodes = _filterfnodes(fnodes, nodes) + return fnodes + def findglobaltags(ui, repo): '''Find global tags in a repo: return a tagsmap