Fri, 07 Aug 2015 22:39:47 -0700 commands.push: use paths API
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 07 Aug 2015 22:39:47 -0700] rev 26057
commands.push: use paths API ui.path instances now collect most of the data used by commands.push(). Move away from ui.expandpath() and call ui.paths.getpath() to get a path instance. Some "pushing to" output was dropped as one test demonstrates. I believe the dropped message was redundant with the error message and the change to be acceptable.
Sat, 08 Aug 2015 00:16:02 -0700 ui: move URL and path detection into path API
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 00:16:02 -0700] rev 26056
ui: move URL and path detection into path API ui.expandpath() has code for recognizing URLs or local filesystem paths. Our goal is to use ``path`` class instances everywhere a path is represented. Changing ui.expandpath() to return path instances is a lot of work. Our goal is to slowly marginalize it by moving logic into the paths API and to convert callers to the paths API. Many callers of ui.expandpath() pass in a value that could be a local filesystem path or URI. We move the detection of these strings from ui.expandpath() to paths.getpath() and path.__init__(). To do this properly in a way that is compatible with future callers, we need to parse the "#branch" syntax out of locations. This is a bit complicated, but it is necessary. The code for URL parsing is essentially a copy of hg.parseurl(). Once all consumers are speaking the paths API, it is likely that this function won't be called any more and it can be deleted.
Fri, 14 Aug 2015 15:52:19 +0900 reachableroots: return list of revisions instead of set
Yuya Nishihara <yuya@tcha.org> [Fri, 14 Aug 2015 15:52:19 +0900] rev 26055
reachableroots: return list of revisions instead of set Now we don't need a set of reachable revisions, and the caller wants a sorted list of revisions, so constructing a set is just a waste of time. revset #0: 0::tip 2) 0.002536 3) 0.001598 63% PyList_New() should set an appropriate exception on error, so we don't need to call PyErr_NoMemory() manually. This patch lacks error handling of PyList_Append() as it was before for PySet_Add(). It should be fixed later.
Fri, 14 Aug 2015 15:49:11 +0900 reachableroots: use internal "revstates" array to test if rev is reachable
Yuya Nishihara <yuya@tcha.org> [Fri, 14 Aug 2015 15:49:11 +0900] rev 26054
reachableroots: use internal "revstates" array to test if rev is reachable This is faster than using PySet_Contains(). revset #0: 0::tip 1) 0.003678 2) 0.002536 68%
(0) -10000 -3000 -1000 -300 -100 -30 -10 -4 +4 +10 +30 +100 +300 +1000 +3000 +10000 tip