Thu, 19 Jul 2012 10:00:15 -0400 largefiles: defer lfdirstate.drop() until after commit (issue3364) stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 10:00:15 -0400] rev 17230
largefiles: defer lfdirstate.drop() until after commit (issue3364) The example in comment #9 of the bug writeup must be run exactly- it was the commit after the rm and prior to the addremove that screwed things up, because that commit noticed that the largefile was missing, called drop(), and then the original commit function did nothing (due to the file in the '!' state). The addremove command properly put it into the 'R' state, but it remained stuck in that state (because commit insisted 'nothing changed'). Without the commit prior to addremove, the problem didn't occur. Maybe this is an indication that lfdirstate needs to take a few more hints from the regular dirstate, regardless of what _it_ thinks the state is- similar inconsistency is probably still possible with this patch if the original commit succeeds but the lfdirstate write fails.
Thu, 19 Jul 2012 06:30:59 -0400 largefiles: fix addremove with -R option stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 06:30:59 -0400] rev 17229
largefiles: fix addremove with -R option If a file was missing, the missing list contained a path relative to the repo. When building the matcher from that list, the file name ended up concatenated to cwd, causing the command to abort with '<file> not under root'. This rebuilds the missing list with paths relative to cwd.
Thu, 19 Jul 2012 21:20:56 +0200 dispatch: fix traceback when extension was tested with newer versions only stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 19 Jul 2012 21:20:56 +0200] rev 17228
dispatch: fix traceback when extension was tested with newer versions only The "worst" extension still is the one tested with the lowest tested version below the current version of Mercurial, but if an extension with was only tested with newer versions, it is considered a candidate for a bad extension, too. In this case extensions which have been tested with higher versions of Mercurial are considered better. This allows finding the oldest extension if ct can't be calculated correctly and therefore defaults to an empty tuple, and it involves less changes to the comparison logic during the current code freeze.
Thu, 19 Jul 2012 16:50:52 +0200 test-extension.t: use fixed version string instead of current tag stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 19 Jul 2012 16:50:52 +0200] rev 17227
test-extension.t: use fixed version string instead of current tag Currently tests break with the current tag being 2.3-rc and tags set by the user could affect this test, too.
Wed, 18 Jul 2012 19:09:06 -0500 Added tag 2.3-rc for changeset a06e2681dd17 stable
Matt Mackall <mpm@selenic.com> [Wed, 18 Jul 2012 19:09:06 -0500] rev 17226
Added tag 2.3-rc for changeset a06e2681dd17
Wed, 18 Jul 2012 19:08:25 -0500 merge default into stable for 2.3 code freeze stable 2.3-rc
Matt Mackall <mpm@selenic.com> [Wed, 18 Jul 2012 19:08:25 -0500] rev 17225
merge default into stable for 2.3 code freeze
Wed, 18 Jul 2012 19:08:11 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Wed, 18 Jul 2012 19:08:11 -0500] rev 17224
merge with crew
Thu, 19 Jul 2012 00:54:33 +0200 merge with stable
Martin Geisler <martin@geisler.net> [Thu, 19 Jul 2012 00:54:33 +0200] rev 17223
merge with stable
Thu, 19 Jul 2012 00:53:27 +0200 windows: removed duplicate termwidth definition stable
Martin Geisler <martin@geisler.net> [Thu, 19 Jul 2012 00:53:27 +0200] rev 17222
windows: removed duplicate termwidth definition Changeset dbf91976f900 caused this when the "from win32 import *" line was replaced with explicit import statements: the wildcard import was at the bottom of the file and so windows.termwidth was overwritten by win32.termwidth as indented, but the new explicit import statements were at the top and so win32.termwidth got lost. With the switch to ctypes, win32 can always be imported and so the fallback termwidth in windows is no longer needed.
Fri, 13 Jul 2012 13:21:20 +0200 httprepo: ensure Content-Type header exists when pushing data
Pierre-Yves.David@ens-lyon.org [Fri, 13 Jul 2012 13:21:20 +0200] rev 17221
httprepo: ensure Content-Type header exists when pushing data Otherwise the wireprotocol just hangs while trying to send data. (And nothing is received at the other side)
Fri, 13 Jul 2012 22:15:11 +0200 obsolete: obsstore.add now takes a list of markers.
Pierre-Yves.David@ens-lyon.org [Fri, 13 Jul 2012 22:15:11 +0200] rev 17220
obsolete: obsstore.add now takes a list of markers. This allow efficient IO and it greatly simplify the merging of markers.
Thu, 12 Jul 2012 19:58:07 +0200 obsolete: refactor writemarkers to only encode them
Pierre-Yves.David@ens-lyon.org [Thu, 12 Jul 2012 19:58:07 +0200] rev 17219
obsolete: refactor writemarkers to only encode them The function is now able to write the version header as necessary. The function now yield bytes to be written to a stream. This should ease later use of this function for wireprotocol based exchanged. Prepare the public use of the writemarker by wireprotocol function.
Sat, 14 Jul 2012 18:29:46 +0200 update: put rules for uncommitted changes into verbose help section
Adrian Buehlmann <adrian@cadifra.com> [Sat, 14 Jul 2012 18:29:46 +0200] rev 17218
update: put rules for uncommitted changes into verbose help section
Fri, 06 Jul 2012 18:41:25 +0200 hooks: print out more information when loading a python hook fails
Simon Heimberg <simohe@besonet.ch> [Fri, 06 Jul 2012 18:41:25 +0200] rev 17217
hooks: print out more information when loading a python hook fails When loading a python hook with file syntax fails, there is no information that this happened while loading a hook. When the python file does not exist even the file name is not printed. (Only that a file is missing.) This patch adds this information and a test for loading a non existing file and a directory not being a python module.
Wed, 18 Jul 2012 07:51:20 -0700 perf: fix perfcca to work with new casecollisionauditor interface
Joshua Redstone <joshua.redstone@fb.com> [Wed, 18 Jul 2012 07:51:20 -0700] rev 17216
perf: fix perfcca to work with new casecollisionauditor interface A recent changeset, afd75476939e, modified the caescollisionauditor interface but did not update perf.py. This changeset remidies that.
Tue, 17 Jul 2012 18:21:49 +0200 checkheads: extract branchmap preprocessing
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 18:21:49 +0200] rev 17215
checkheads: extract branchmap preprocessing The checkheads function is far too complicated. This extract help to explicite what part of the preprocessing are reused by the actual check. This the first step toward a wider refactoring.
Tue, 17 Jul 2012 17:59:29 +0200 checkheads: take future obsoleted heads into account
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 17:59:29 +0200] rev 17214
checkheads: take future obsoleted heads into account If we push some successors they will likely create a new head on remote. However as the obsoleted head will disappear after the push we are not really increasing the number of heads. There is several case which will lead to extra being actually pushed. But this first changeset aims to be simple. See the inline comment for details. Without this change, you need to push --force every time you want to push a newer version which is very error prone. The remote side still display +n heads on unbundle because it does not have the obsolete marker at unbundle time.
Tue, 17 Jul 2012 17:31:29 +0200 obsolete: add an any successors function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 17:31:29 +0200] rev 17213
obsolete: add an any successors function This function yield every nodes which succeed to a group of nodes. The first user will be checkheads who need to know if we push successors for remote extra heads.
Tue, 17 Jul 2012 18:14:16 +0200 checkheads: extract bookmark computation from the branch loop
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 18:14:16 +0200] rev 17212
checkheads: extract bookmark computation from the branch loop No branch specific data are used in the computation of the bookmarked heads. We can only compute it once.
Tue, 17 Jul 2012 16:30:42 +0200 checkheads: simplify the structure build by preprocessing
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 16:30:42 +0200] rev 17211
checkheads: simplify the structure build by preprocessing All useful data are now gathered in a single dictionnary. `branchmapsummary` is renamed to `headssummary` and its return value is greatly simplified.
Tue, 17 Jul 2012 16:16:17 +0200 _updatebranchcache: prevent deleting dict key during iteration
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 16:16:17 +0200] rev 17210
_updatebranchcache: prevent deleting dict key during iteration We use dict.keys() to fetch all keys before starting to delete some. Otherwise python complains that the dictionnary is altered during iteration.
Tue, 17 Jul 2012 18:21:49 +0200 checkheads: extract branchmap preprocessing
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 18:21:49 +0200] rev 17209
checkheads: extract branchmap preprocessing The checkheads function is far too complicated. This extract help to explicite what part of the preprocessing are reused by the actual check. This the first step toward a wider refactoring.
Mon, 16 Jul 2012 17:56:50 +0200 obsolete: mark unreachable extinct changesets as hidden
Pierre-Yves.David@ens-lyon.org [Mon, 16 Jul 2012 17:56:50 +0200] rev 17208
obsolete: mark unreachable extinct changesets as hidden The repo.hiddenrevs set is updated with all extinct() changesets which aren't descendants of either: - the current working copy, - a bookmark, - a tag.
Mon, 16 Jul 2012 17:44:46 +0200 hidden: move hiddenrevs set on the repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 16 Jul 2012 17:44:46 +0200] rev 17207
hidden: move hiddenrevs set on the repository This set is always accessed through the repo for now. Having this set carried by the changelog make it complicated to: - initialize it, computing hidden set may involve revset call - lazy compute it, (1) only the changelog can detect someone access it, (2) only the repo have enought knowledge to compute it. In later version I expect he changelog to apply filtering itself and the set to be carried by changelog again.
Fri, 13 Jul 2012 14:38:49 +0200 obsolete: do not exchange extinct changesets
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 13 Jul 2012 14:38:49 +0200] rev 17206
obsolete: do not exchange extinct changesets Extinct changesets are excluded from all exchange operations. This is a silent exclusion because the user should not need to be aware of them. There is no reason to strongly enforce this exclusion except implementation simplicity. User should be able to explicitly request an extinct changeset in the future.
Tue, 17 Jul 2012 01:22:31 +0200 repo: move visibleheads and visiblebranchmap logic in discovery
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 17 Jul 2012 01:22:31 +0200] rev 17205
repo: move visibleheads and visiblebranchmap logic in discovery They were previously inside the mercurial.phases module, but obsolete logic will need them to exclude `extinct` changesets from pull and push. The proper and planned way to implement such filtering is still to apply a changelog level filtering. But we are far to late in the cycle to implement and push such a critical piece of code (changelog filtering). With Matt Mackall approval I'm extending this quick and dirty mechanism for obsolete purpose. Changelog level filtering should come during the next release cycle.
Tue, 17 Jul 2012 01:04:45 +0200 localpeer: return only visible heads and branchmap
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 17 Jul 2012 01:04:45 +0200] rev 17204
localpeer: return only visible heads and branchmap Now that we have localpeer, we can apply filtering on heads and branchmap the same way it's done for wireprotocol peer.
Wed, 18 Jul 2012 14:41:58 +0200 util, posix: eliminate encodinglower and encodingupper
Adrian Buehlmann <adrian@cadifra.com> [Wed, 18 Jul 2012 14:41:58 +0200] rev 17203
util, posix: eliminate encodinglower and encodingupper 2ebe3d0ce91d claims this was needed "to avoid cyclic dependency", but there is no cyclic dependency. windows.py already imports encoding, posix.py can import it too, so we can simply use encoding.upper in windows.py and in posix.py. (this is a partial backout of 2ebe3d0ce91d)
Sun, 08 Jul 2012 17:17:02 +0200 hgweb: side-by-side comparison functionality
wujek srujek [Sun, 08 Jul 2012 17:17:02 +0200] rev 17202
hgweb: side-by-side comparison functionality Adds new web command to the core, ``comparison``, which enables colorful side-by-side change display, which for some might be much easier to work with than the standard line diff output. The idea how to implement comes from the SonicHq extension. The web interface gets a new link to call the comparison functionality. It lets users configure the amount of context lines around change blocks, or to show full files - check help (also in this changeset) for details and defaults. The setting in hgrc can be overridden by adding ``context=<value>`` to the request query string. The comparison creates addressable lines, so as to enable sharing links to specific lines, just as standard diff does. Incorporates updates to all web related styles. Known limitations: * the column diff is done against the first parent, just as the standard diff * this change allows examining diffs for single files only (as I am not sure if examining the whole changeset in this way would be helpful) * syntax highlighting of the output changes is not performed (enabling the highlight extension has no influence on it)
Fri, 06 Jul 2012 13:56:40 -0700 scmutil: 25% speedup in casecollisionauditor
Joshua Redstone <joshua.redstone@fb.com> [Fri, 06 Jul 2012 13:56:40 -0700] rev 17201
scmutil: 25% speedup in casecollisionauditor On a large repository, switching casecollisionauditor to lowercasing all file names at once rather than one at a time improves hg-add time by 25%.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 +30000 tip