Thu, 05 Feb 2015 23:14:44 +0900 graphlog: remove too early return from getgraphlogrevs() for empty repo
Yuya Nishihara <yuya@tcha.org> [Thu, 05 Feb 2015 23:14:44 +0900] rev 24059
graphlog: remove too early return from getgraphlogrevs() for empty repo Even if repository is empty, null revision should exist.
Thu, 22 Jan 2015 22:22:09 -0800 trydiff: call util.binary in only one place
Martin von Zweigbergk <martinvonz@google.com> [Thu, 22 Jan 2015 22:22:09 -0800] rev 24058
trydiff: call util.binary in only one place It's practically free to call util.binary on empty or None content. By relying on that, we can replace the current four call sites by one.
Thu, 22 Jan 2015 21:35:57 -0800 trydiff: collect all lossiness checks in one place
Martin von Zweigbergk <martinvonz@google.com> [Thu, 22 Jan 2015 21:35:57 -0800] rev 24057
trydiff: collect all lossiness checks in one place By having all the checks for lossiness in one place, it becomes much easier to get an overview of the conditions that lead to losedatafn() being called. It also makes it obvious that it can not be called multiple times for a single time (something that was rather tricky to determine before).
Thu, 22 Jan 2015 21:03:57 -0800 trydiff: replace 'binarydiff' variable by 'binary' variable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 22 Jan 2015 21:03:57 -0800] rev 24056
trydiff: replace 'binarydiff' variable by 'binary' variable It's not obvious, but every path in the 'if opts.git or losedatafn:' block will have checked whether the file is binary [1]. Let's assign the result of this check to a variable so we can simplify by checking 'binary and opts.git' in only one place instead of every place we currently assign to 'binarydiff'. [1] Except when deleting an empty file, but checking whether an empty string is binary is very cheap anyway.
Fri, 16 Jan 2015 15:09:21 -0800 trydiff: rename 'op' to make it more specific
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Jan 2015 15:09:21 -0800] rev 24055
trydiff: rename 'op' to make it more specific Rename the 'op' variable that can take values None/'copy'/'rename' to 'copyop' to make it a little more specific.
Fri, 06 Feb 2015 15:52:55 +0800 hgweb: replace implicit <tbody> with explicit <thead> where appropriate
Anton Shestakov <engored@ya.ru> [Fri, 06 Feb 2015 15:52:55 +0800] rev 24054
hgweb: replace implicit <tbody> with explicit <thead> where appropriate Some templates in paper style use <tbody> elements inside <table> to assign a class to "body" part of that table (in this case, to make rows striped). The problem is that the <tbody> is preceded by <tr> element, which browsers understand as an implicit start of table body, so the following exlicit <tbody> will actually be "nested", which is not valid. Since that first <tr> contains table headers, wrapping it in <thead> is both semantically correct and follows the advertised XHTML 1.1 doctype.
Sat, 31 Jan 2015 12:54:35 -0500 obsolete: drop the explicit seek to EOF after append mode open()
Matt Harbison <matt_harbison@yahoo.com> [Sat, 31 Jan 2015 12:54:35 -0500] rev 24053
obsolete: drop the explicit seek to EOF after append mode open() posixfile now handles this.
Sat, 31 Jan 2015 12:42:05 -0500 branchmap: backout 6bf93440a717
Matt Harbison <matt_harbison@yahoo.com> [Sat, 31 Jan 2015 12:42:05 -0500] rev 24052
branchmap: backout 6bf93440a717 This is no longer needed now that posixfile handles seeking to EOF when it opens a file in append mode.
Sat, 31 Jan 2015 12:39:44 -0500 windows: seek to the end of posixfile when opening in append mode
Matt Harbison <matt_harbison@yahoo.com> [Sat, 31 Jan 2015 12:39:44 -0500] rev 24051
windows: seek to the end of posixfile when opening in append mode The position is implementation defined when opening in append mode, and it seems like Linux sets it to EOF while Windows keeps it at zero. This has caused problems in the past when a file is opened and tell() is immediately called, such as 48c232873a54 and 6bf93440a717. Since the only caller of osutil.posixfile is this windows module, this seems like a better place to fix the issue than in osutil.c and pure.osutil.
Thu, 20 Nov 2014 12:15:12 -0800 context: use unfiltered repo for '.'
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Nov 2014 12:15:12 -0800] rev 24050
context: use unfiltered repo for '.' There is no reason to read obsolescence markers when doing a plain 'hg status' without --rev. Use the unfiltered repo when initializing context._rev to speed things up. This speeds up 'hg status' from 1.342s to 0.080s on my repo with ~110k markers.
Thu, 05 Feb 2015 14:09:08 -0800 check-commit: check capitalization in summary lines
Eric Sumner <ericsumner@fb.com> [Thu, 05 Feb 2015 14:09:08 -0800] rev 24049
check-commit: check capitalization in summary lines At the moment, check-commit will complain about the topic being capitalized, but not the summary that comes after it. This diff corrects that deficiency.
Thu, 05 Feb 2015 10:57:45 -0800 bundle2: seek in part iterator
Eric Sumner <ericsumner@fb.com> [Thu, 05 Feb 2015 10:57:45 -0800] rev 24048
bundle2: seek in part iterator When iterating over bundle2 parts, add a seek to the iterator so that processing will continue normally even if the entire part isn't consumed.
Thu, 05 Feb 2015 10:56:05 -0800 bundle2: now that we have a seek implementation, use it
Eric Sumner <ericsumner@fb.com> [Thu, 05 Feb 2015 10:56:05 -0800] rev 24047
bundle2: now that we have a seek implementation, use it Replace bare part.read() calls with part.seek(0, 2) since the return value is being ignored. As this doesn't necessarily require building a string that contains the rest of the part, the potential exists to reduce the memory footprint of these operations.
Wed, 04 Feb 2015 22:25:35 -0800 obsolete: populate successors, precursors, children lazily
Martin von Zweigbergk <martinvonz@google.com> [Wed, 04 Feb 2015 22:25:35 -0800] rev 24046
obsolete: populate successors, precursors, children lazily The precursors and children dictionaries are not used by many commands. By making them lazily populated, 'hg log -r @~10::@ >/dev/null' is sped up from 0.564s to 0.440s on my hg.hg repo with 73k markers. Also make successors lazily populated, mostly for consistency with the others.
Wed, 04 Feb 2015 22:40:48 -0800 obsolete: pass only new markers to _checkinvalidmarkers()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 04 Feb 2015 22:40:48 -0800] rev 24045
obsolete: pass only new markers to _checkinvalidmarkers() We will soon delay populating precursors until we have to. To prepare for that, make _checkinvalidmarkers() scan for a nullid precursor in the list of new markers instead of the (currently) cheaper 'if nullid in precursors' check.
Tue, 20 Jan 2015 22:01:37 -0800 obsolete: extract helpers from _load()
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Jan 2015 22:01:37 -0800] rev 24044
obsolete: extract helpers from _load() In preparation for making the successors, precursors, and children dictionaries lazily populated, break up _load() into one function for adding markers to each dictionary.
Tue, 20 Jan 2015 17:38:42 -0800 test-gendoc: require gettext
Eric Sumner <ericsumner@fb.com> [Tue, 20 Jan 2015 17:38:42 -0800] rev 24043
test-gendoc: require gettext If the gettext utilities aren't installed, there is no way to make the translations. This causes the gettext client to fall back to the untranslated message, which triggers "** NOTHING TRANSLATED **" errors and a test failure.
Thu, 05 Feb 2015 20:34:30 +0800 hgweb: use css margin instead of empty <p> before diffstat table
Anton Shestakov <engored@ya.ru> [Thu, 05 Feb 2015 20:34:30 +0800] rev 24042
hgweb: use css margin instead of empty <p> before diffstat table The <p> elements were used to create an empty space between the diffstat link and the diffstat table, but they don't have any semantic meaning, so it is better to use css instead. Default margins for <p> elements can differ depending on the browser, but usually the margin is 1em (exceptions are IE 6 and 7 with 14pt, which is comparable). The css rule sets top margin to 1em. This change is a "better version" of 70cfa7e1611b, where <p> elements were simply properly closed.
Thu, 05 Feb 2015 19:24:35 +0800 hgweb: use css margin instead of empty <p> before <div class="atom-logo">
Anton Shestakov <engored@ya.ru> [Thu, 05 Feb 2015 19:24:35 +0800] rev 24041
hgweb: use css margin instead of empty <p> before <div class="atom-logo"> The <p> elements were used to create an empty space between the last menu item (i.e. "help") and the atom feed icon, but they don't have any semantic meaning, so it is better to use css instead. The css rule uses top margin of 10px, which is equal to the top margin of the menu blocks ("help", "changeset, browse", etc). Previously, with <p> elements, the margin wasn't set explicitly and was browser-dependent. This change is a "better version" of 70cfa7e1611b, where <p> elements were simply properly closed.
Mon, 26 Jan 2015 14:30:12 -0500 error: update docstring on ParseError
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:30:12 -0500] rev 24040
error: update docstring on ParseError It's now used by revsets and filesets.
Mon, 26 Jan 2015 14:50:36 -0500 dispatch: consolidate formatting of ParseErrors
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:50:36 -0500] rev 24039
dispatch: consolidate formatting of ParseErrors
Wed, 04 Feb 2015 13:57:35 -0800 error: store filename and message on LookupError for later
Martin von Zweigbergk <martinvonz@google.com> [Wed, 04 Feb 2015 13:57:35 -0800] rev 24038
error: store filename and message on LookupError for later It may be useful to be able to get to the failed path and the underlying error message when catching a LookupError, so let's make them accessible.
Wed, 14 Jan 2015 16:14:19 -0800 bundle2.unbundlepart: implement seek()
Eric Sumner <ericsumner@fb.com> [Wed, 14 Jan 2015 16:14:19 -0800] rev 24037
bundle2.unbundlepart: implement seek() This implements a seek() method for unbundlepart. This allows on-disk bundle2 parts to behave enough like files for bundlerepo to handle them. A future patch will add support for bundlerepo to read the bundle2 files that are written when the experimental.strip-bundle2-version config option is used.
Wed, 14 Jan 2015 15:57:57 -0800 bundle2.unbundlepart: tell() implementation
Eric Sumner <ericsumner@fb.com> [Wed, 14 Jan 2015 15:57:57 -0800] rev 24036
bundle2.unbundlepart: tell() implementation Keep track of how many bytes we've returned from read(); fairly straightforward.
Wed, 14 Jan 2015 14:46:23 -0800 bundle2.unbundlepart: keep an index of chunks and their locations
Eric Sumner <ericsumner@fb.com> [Wed, 14 Jan 2015 14:46:23 -0800] rev 24035
bundle2.unbundlepart: keep an index of chunks and their locations In order to make unbundlepart seekable, we need to keep a record of where the chunks are so that we can go back to the correct point.
Wed, 14 Jan 2015 14:32:22 -0800 bundle2.unbundlepart: raise payloadchunks from a closure to a method
Eric Sumner <ericsumner@fb.com> [Wed, 14 Jan 2015 14:32:22 -0800] rev 24034
bundle2.unbundlepart: raise payloadchunks from a closure to a method In a future patch, seek() will need to make a new chunk iterator for the stream; this places it somewhere it can be called multiple times.
Fri, 23 Jan 2015 17:06:03 -0800 manifest: make lru size configurable
Durham Goode <durham@fb.com> [Fri, 23 Jan 2015 17:06:03 -0800] rev 24033
manifest: make lru size configurable On machines with lots of ram, it's beneficial to increase the lru size of the manifest cache. On a large repo, configuring the lru to be size 10 can shave a large rebase (~12 commits) down from 95s to 70s.
Wed, 04 Feb 2015 11:38:30 -0500 parsers: use k instead of n for PyArg_ParseTuple because python 2.4 is awful
Augie Fackler <augie@google.com> [Wed, 04 Feb 2015 11:38:30 -0500] rev 24032
parsers: use k instead of n for PyArg_ParseTuple because python 2.4 is awful
(0) -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 +3000 +10000 tip