Thu, 30 May 2013 18:47:16 -0700 filelog: switch 'not len(filerevlog)' to 'not filerevlog'
Durham Goode <durham@fb.com> [Thu, 30 May 2013 18:47:16 -0700] rev 19293
filelog: switch 'not len(filerevlog)' to 'not filerevlog' A few places in the code use 'if not len(revlog)' to check if the revlog exists. Replacing this with 'not filerevlog' allows alternative revlog implementations to override __nonzero__ to handle this case without implementing __len__.
Thu, 30 May 2013 19:29:03 -0700 annotate: simplify annotate parent function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:29:03 -0700] rev 19292
annotate: simplify annotate parent function The annotate algorithm used a custom parents() function to try to reuse filectx and filelogs. I simplified it a bit to rely more heavily on the self.parents() which makes it work well with alternative filectx implementations. I tested performance on a file with 5000+ revisions but no renames, and on a file with 500 revisions repeating a series of 4 edits+renames and saw zero performance hit. In fact, it was reliably a couple milliseconds faster now. Added the perfannotate command to contrib/perf.py for future use.
Thu, 30 May 2013 19:26:56 -0700 changegroup: move changegroup file adding to a separate function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:26:56 -0700] rev 19291
changegroup: move changegroup file adding to a separate function Moving the logic that adds files to a changegroup to a different function allows extensions to override it and customize the way filelogs are added to changegroups. No logic is changed.
Thu, 30 May 2013 19:25:55 -0700 log: move log file walk to its own function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:25:55 -0700] rev 19290
log: move log file walk to its own function This moves the logic that determines which changesets to process during a 'hg log foo.txt' command. Putting it in its own function allows extensions to modify how the file log is traversed. For instance, the current implementation uses filelog revs heavily. Other implementations may not have filelog revs available. The function throws an exception if the traversal is not possible via the filelog, so the parent function can do things the slow way if necessary (by walking the entire commit history). Aside from the exception throwing, no logic is changed.
Thu, 30 May 2013 17:51:13 -0700 bundle: refactor changegroup prune to be its own function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 17:51:13 -0700] rev 19289
bundle: refactor changegroup prune to be its own function Moving the prune function to be a non-nested function allows extensions to control which revisions are allowed in the changegroup. For example, in my shallow repo extension I want to prevent filelogs from being added to the bundle. This also allows an extension to use a filelog implementation that doesn't have revlog.linkrev implemented.
Thu, 30 May 2013 17:49:37 -0700 filectx: refactor filectx.rev() to use filectx._changeid
Durham Goode <durham@fb.com> [Thu, 30 May 2013 17:49:37 -0700] rev 19288
filectx: refactor filectx.rev() to use filectx._changeid The code in filectx.rev() was identical to filectx._changeid. Fixing this allows alternative filectx implementations to only override _changeid.
Mon, 03 Jun 2013 17:20:45 -0700 util: add an optional timestamp parameter to makedate
Bryan O'Sullivan <bryano@fb.com> [Mon, 03 Jun 2013 17:20:45 -0700] rev 19287
util: add an optional timestamp parameter to makedate This will be used by the upcoming shelve extension.
(0) -10000 -3000 -1000 -300 -100 -30 -10 -7 +7 +10 +30 +100 +300 +1000 +3000 +10000 +30000 tip