Thu, 26 Jul 2012 13:58:43 +0900 revset: use appropriate predicate name in error messages stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 26 Jul 2012 13:58:43 +0900] rev 17258
revset: use appropriate predicate name in error messages "extinct" and "unstable" predicates use "obsolete" implementation internally, but own predicate name should be used in error messages of them instead of "obsolete".
Thu, 26 Jul 2012 23:08:34 +0200 test-histedit-fold: fix for Windows stable
Adrian Buehlmann <adrian@cadifra.com> [Thu, 26 Jul 2012 23:08:34 +0200] rev 17257
test-histedit-fold: fix for Windows Fixes 336121088ef1 failing with MSYS. MSYS sh.exe mangled that path by applying its path magic, which caused the test to fail on Windows.
Thu, 26 Jul 2012 17:04:01 -0500 tags: visit new heads in forward order when rebuilding cache stable
Matt Mackall <mpm@selenic.com> [Thu, 26 Jul 2012 17:04:01 -0500] rev 17256
tags: visit new heads in forward order when rebuilding cache This improves performance of building the tag cache by 4x on a repo with ~2800 heads.
Fri, 27 Jul 2012 13:56:19 +0200 identity: show trailing '+' for dirty subrepos (issue2839) stable
Patrick Mezard <patrick@mezard.eu> [Fri, 27 Jul 2012 13:56:19 +0200] rev 17255
identity: show trailing '+' for dirty subrepos (issue2839)
Fri, 27 Jul 2012 10:16:20 +0200 discovery: fix invalid comment about extinct being ignored stable
Patrick Mezard <patrick@mezard.eu> [Fri, 27 Jul 2012 10:16:20 +0200] rev 17254
discovery: fix invalid comment about extinct being ignored
Thu, 26 Jul 2012 16:21:43 +0200 obsolete: fix decoding error message arguments stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Jul 2012 16:21:43 +0200] rev 17253
obsolete: fix decoding error message arguments
Tue, 24 Jul 2012 21:20:56 +0200 push: do not try to push remote obsolete if local has none stable
Patrick Mezard <patrick@mezard.eu> [Tue, 24 Jul 2012 21:20:56 +0200] rev 17252
push: do not try to push remote obsolete if local has none
Thu, 26 Jul 2012 02:54:13 +0200 help: fix some instances of 'the the' stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 26 Jul 2012 02:54:13 +0200] rev 17251
help: fix some instances of 'the the'
Fri, 06 Jul 2012 18:06:52 -0400 pager: work around bug in python 2.4's subprocess module (issue3533) stable
Michael Bacarella <mbacarella@janestreet.com> [Fri, 06 Jul 2012 18:06:52 -0400] rev 17250
pager: work around bug in python 2.4's subprocess module (issue3533) hg v2.2.2 fixed the pager on Windows, but broke it on Python 2.4. This patch only uses the new behavior if Python >= 2.5 is detected.
Wed, 25 Jul 2012 19:02:35 +0200 clone: copy obsolete markers during local clone stable
Pierre-Yves.David@ens-lyon.org [Wed, 25 Jul 2012 19:02:35 +0200] rev 17249
clone: copy obsolete markers during local clone This change adds `obsstore` to the list of files copied by local clone, until now changesets were copied without their obsolete markers. Note: extinct changesets were and are still included by such clones to enable hardlinking. There is no obvious reason to prevent their exchange here. Rebased by Patrick Mezard <patrick@mezard.eu>
Wed, 25 Jul 2012 19:34:31 +0200 discovery: add extinct changesets to outgoing.excluded stable
Patrick Mezard <patrick@mezard.eu> [Wed, 25 Jul 2012 19:34:31 +0200] rev 17248
discovery: add extinct changesets to outgoing.excluded Before this change, push would incorrectly fast-path the bundle generation when extinct changesets are involved, because they are not added to outgoing.excluded. The reason to do so are related to outgoing.excluded being assumed to contain only secret changesets by scmutil.nochangesfound(), when displaying warnings like: changes found (ignored 9 secret changesets) Still, outgoing.excluded seems like a good API to report the extinct changesets instead of dedicated code and nothing in the docstring indicates it to be bound to secret changesets. This patch adds extinct changesets to outgoing.excluded and fixes scmutil.nochangesfound() to filter the excluded node list. Original version and test by Pierre-Yves.David@ens-lyon.org
Thu, 26 Jul 2012 12:07:55 +0200 convert/svn: handle non-local svn destination paths (issue3142) stable
Patrick Mezard <patrick@mezard.eu> [Thu, 26 Jul 2012 12:07:55 +0200] rev 17247
convert/svn: handle non-local svn destination paths (issue3142) test-convert-svn-sink.t still pass and I tested pushing to an svn+ssh repository
Wed, 25 Jul 2012 16:50:22 +0200 setup: fix build_hgexe for mingw32 compiler stable
Adrian Buehlmann <adrian@cadifra.com> [Wed, 25 Jul 2012 16:50:22 +0200] rev 17246
setup: fix build_hgexe for mingw32 compiler Fixes python setup.py build_hgexe -i --compiler=mingw32
Sun, 22 Jul 2012 23:37:53 -0400 largefiles: fix path handling for cp/mv (issue3516) stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 22 Jul 2012 23:37:53 -0400] rev 17245
largefiles: fix path handling for cp/mv (issue3516) Previously, a copy or a move of a largefile only worked if the cwd was the root of the repository. The first issue was that the destination path passed to os.mkdirs() chopped the absolute path to the standin after '.hglf/', which essentially created a path relative to the repository root. Similarly, the second issue was that the source and dest paths for copyfile() were relative to the repo root. This converts these three paths to absolute paths. Some notable issues, regardless of the directory in which the cp/mv is executed: 1) The copy is not being recorded in lfdirstate, but it is in dirstate for the standins. I'm not sure if this is by design (i.e. minimal info in lfdirstate). 2) status -C doesn't behave as expected. Using the testcase as an example: # after mv + ci $ hg status -C -v --rev '.^' # expected to see 'A' and ' ' lines too R dira\dirb\largefile $ hg status -C -v --rev '.^' foo/largefile # no output # expected to see 'A' and ' ' lines only $ hg status -C -v --rev '.^' foo/ # no output # expected to see 'A', ' ' and 'R' lines $ hg status -C -v --rev '.^' ./ # expected to see 'A' and ' ' lines too R dirb\largefile $ hg status -C -v --rev '.^' ../.hglf/dira/foo/largefile A ..\.hglf\dira\foo\largefile ..\.hglf\dira\dirb\largefile # no 'R' expected when new file is specified $ hg status -C -v --rev '.^' ../.hglf # OK A ..\.hglf\dira\foo\largefile ..\.hglf\dira\dirb\largefile R ..\.hglf\dira\dirb\largefile
Wed, 25 Jul 2012 16:15:28 +0900 revset: add explanation about difference between 'filelog()' and 'file()' stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 25 Jul 2012 16:15:28 +0900] rev 17244
revset: add explanation about difference between 'filelog()' and 'file()'
Wed, 25 Jul 2012 14:49:53 -0500 hgweb: improve colors for comparison page stable
Matt Mackall <mpm@selenic.com> [Wed, 25 Jul 2012 14:49:53 -0500] rev 17243
hgweb: improve colors for comparison page delete: red -> red insert: green -> yellow change: yellow -> gray
Wed, 25 Jul 2012 16:27:26 +0200 histedit: fix new nodes computation with --continue (issue3534) stable
Patrick Mezard <patrick@mezard.eu> [Wed, 25 Jul 2012 16:27:26 +0200] rev 17242
histedit: fix new nodes computation with --continue (issue3534) When running the following actions: pick 617f94f13c0f 1 +4 drop 888f9082bf99 2 +5 fold 251d831eeec5 3 +6 if the fold fails, is fixed by the user with a new changeset, --continue will ignore the new revision when generating the fold changelog. This was caused by --continue detecting new changesets as descendants of the parent not descendants of changesets in the initial list. In this case, dropped changesets must be ignored. Even with the computation fixed, the 'newchildren' list was always emptied by the filtering loop and passed empty to finishfold(). Note that changesets dropped and recreated identically will still be missed. This probably cannot be solved but is unlikely to happen. Other things, like 'newchildren' having multiple heads, should be checked as well.
Wed, 25 Jul 2012 11:09:51 +0200 histedit: end folding message with an LF stable
Patrick Mezard <patrick@mezard.eu> [Wed, 25 Jul 2012 11:09:51 +0200] rev 17241
histedit: end folding message with an LF This is convenient when running tests dumping the editor content, it avoids the following output line to be mixed with histedit message.
Tue, 24 Jul 2012 12:36:40 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Tue, 24 Jul 2012 12:36:40 -0500] rev 17240
merge with i18n
Mon, 23 Jul 2012 20:38:33 +0200 i18n-sv: synchronized with d1b49b02bc16 stable
Jens Bäckman <jens.backman@gmail.com> [Mon, 23 Jul 2012 20:38:33 +0200] rev 17239
i18n-sv: synchronized with d1b49b02bc16
Mon, 23 Jul 2012 15:40:19 -0700 merge with crew-stable stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 23 Jul 2012 15:40:19 -0700] rev 17238
merge with crew-stable
Mon, 23 Jul 2012 15:38:43 -0700 util: delegate seek and tell methods of atomictempfile stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 23 Jul 2012 15:38:43 -0700] rev 17237
util: delegate seek and tell methods of atomictempfile
Mon, 23 Jul 2012 15:55:26 -0600 encoding: add fast-path for ASCII uppercase. stable
Martin Geisler <mg@aragost.com> [Mon, 23 Jul 2012 15:55:26 -0600] rev 17236
encoding: add fast-path for ASCII uppercase. This copies the performance hack from encoding.lower (c481761033bd). The case-folding logic that kicks in on case-insensitive filesystems hits encoding.upper hard: with a repository with 75k files, the timings went from hg perfstatus ! wall 3.156000 comb 3.156250 user 1.625000 sys 1.531250 (best of 3) to hg perfstatus ! wall 2.390000 comb 2.390625 user 1.078125 sys 1.312500 (best of 5) This is a 24% decrease. For comparison, Mercurial 2.0 gives: hg perfstatus ! wall 2.172000 comb 2.171875 user 0.984375 sys 1.187500 (best of 5) so we're only 10% slower than before we added the extra case-folding logic. The same decrease is seen when executing 'hg status' as normal, where we go from: hg status --time time: real 4.322 secs (user 2.219+0.000 sys 2.094+0.000) to hg status --time time: real 3.307 secs (user 1.750+0.000 sys 1.547+0.000)
Mon, 23 Jul 2012 15:55:22 -0600 encoding: use s.decode to trigger UnicodeDecodeError stable
Martin Geisler <mg@aragost.com> [Mon, 23 Jul 2012 15:55:22 -0600] rev 17235
encoding: use s.decode to trigger UnicodeDecodeError When calling encode on a str, the string is first decoded using the default encoding and then encoded. So s.encode('ascii') == s.decode().encode('ascii') We don't care about the encode step here -- we're just after the UnicodeDecodeError raised by decode if it finds a non-ASCII character. This way is also marginally faster since it saves the construction of the extra str object.
Sun, 22 Jul 2012 13:16:45 +0200 test-largefiles: fix test failing on vfat file systems stable
Adrian Buehlmann <adrian@cadifra.com> [Sun, 22 Jul 2012 13:16:45 +0200] rev 17234
test-largefiles: fix test failing on vfat file systems The usercache hardlinks files for filesystems that support hardlinks. So when this test is run on a filesystem that supports hardlinking, we have a link in r7 and in the usercache, pointing to the same file contents (4cdac4d8...). vfat does not support hardlinks, the file in the cache and in the store of r7 are thus independent. For the test to pass on vfat, we need to corrupt *both* the largefile in the usercache and in the store of r7. Corrupting only one of them is not sufficient. Fixes: --- /home/buildslave/mercurial/vfat_hg_tests__stable_/build/tests/test-largefiles.t +++ /home/buildslave/mercurial/vfat_hg_tests__stable_/build/tests/test-largefiles.t.err @@ -997,9 +997,11 @@ $ hg push -R r7 http://localhost:$HGPORT1 pushing to http://localhost:$HGPORT1/ searching for changes - remote: largefiles: failed to put 4cdac4d8b084d0b599525cf732437fb337d422a8 into store: largefile contents do not match hash - abort: remotestore: could not put $TESTTMP/r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 to remote store http://localhost:$HGPORT1/ (glob) - [255] + searching for changes + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 2 changesets with 2 changes to 2 files $ rm -rf empty Push a largefiles repository to a served empty repository
Fri, 20 Jul 2012 22:10:52 -0400 largefiles: mark as a first party extension stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Jul 2012 22:10:52 -0400] rev 17233
largefiles: mark as a first party extension
Thu, 19 Jul 2012 23:35:13 -0400 largefiles: ensure addlargefiles() doesn't add a standin as a largefile stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 23:35:13 -0400] rev 17232
largefiles: ensure addlargefiles() doesn't add a standin as a largefile An easy way to force this (and cause a traceback) prior to the fix for 3507 was $ touch large $ hg add --large large $ hg ci -m "add" $ hg remove large $ touch large $ hg addremove --config largefiles.patterns=**large This patch also detected (and corrected) a previous test where a standin got added as a largefile (without a traceback).
Thu, 19 Jul 2012 11:12:05 -0400 largefiles: fix a traceback when addremove follows a remove (issue3507) stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 11:12:05 -0400] rev 17231
largefiles: fix a traceback when addremove follows a remove (issue3507) The problem only occurred if a file was removed with 'hg rm' (as opposed to the OS utilities), and then addremove was run before a commit. Both normal and large files were affected. Ensuring that the file exists prior to an lstat() for size seems like the Right Thing. But oddly enough, the missing file that was causing lstat() to blow up was a standin when a largefile was removed, which seems fishy, because a standin should never be added as a largefile. I was then able to get a standin added as a largefile (whose name is 'large') with hg addremove --config largefiles.patterns=**large which also causes a backtrace. That will be fixed next.
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%.
Tue, 17 Jul 2012 00:55:22 +0200 obsolete: os.SEEK_END first appeared in Python 2.5
Adrian Buehlmann <adrian@cadifra.com> [Tue, 17 Jul 2012 00:55:22 +0200] rev 17200
obsolete: os.SEEK_END first appeared in Python 2.5 fixes 48c232873a54 failing for Python 2.4
Sun, 15 Jul 2012 12:43:10 -0400 tests: convert a push test to use revsets
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Jul 2012 12:43:10 -0400] rev 17199
tests: convert a push test to use revsets
Sun, 15 Jul 2012 12:43:10 -0400 outgoing: accept revset argument for --rev
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Jul 2012 12:43:10 -0400] rev 17198
outgoing: accept revset argument for --rev There may be a more generic way that would add revset support to more commands by adding revset support to addbranchrevs(), but given the proximity of the next code freeze, a minimal change seems like the better choice.
Mon, 16 Jul 2012 16:19:53 -0500 dirstate: drop assert
Matt Mackall <mpm@selenic.com> [Mon, 16 Jul 2012 16:19:53 -0500] rev 17197
dirstate: drop assert
Wed, 04 Jul 2012 01:31:37 +0200 dirstate: eliminate redundant check parameter on _addpath()
Adrian Buehlmann <adrian@cadifra.com> [Wed, 04 Jul 2012 01:31:37 +0200] rev 17196
dirstate: eliminate redundant check parameter on _addpath() state == 'a' implies check I fail to see what the point of this check parameter is. Near as I can see, the only _addpath call where it was set to True was in add(), but there, state is 'a'. This is a follow-up to c2016bae3b97.
Mon, 16 Jul 2012 22:37:44 +0200 obsolete: add seek to end of file before calling tell (issue3543)
Adrian Buehlmann <adrian@cadifra.com> [Mon, 16 Jul 2012 22:37:44 +0200] rev 17195
obsolete: add seek to end of file before calling tell (issue3543)
Fri, 13 Jul 2012 21:52:37 +0200 peer: remove cancopy from peer api; use directly on repo instead
Sune Foldager <cryo@cyanite.org> [Fri, 13 Jul 2012 21:52:37 +0200] rev 17194
peer: remove cancopy from peer api; use directly on repo instead
Fri, 13 Jul 2012 21:52:28 +0200 peer: introduce canpush and improve error message
Sune Foldager <cryo@cyanite.org> [Fri, 13 Jul 2012 21:52:28 +0200] rev 17193
peer: introduce canpush and improve error message
Fri, 13 Jul 2012 21:47:06 +0200 peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Fri, 13 Jul 2012 21:47:06 +0200] rev 17192
peer: introduce real peer classes This change separates peer implementations from the repository implementation. localpeer currently is a simple pass-through to localrepository, except for legacy calls, which have already been removed from localpeer. This ensures that the local client code only uses the most modern peer API when talking to local repos. Peers have a .local() method which returns either None or the underlying localrepository (or descendant thereof). Repos have a .peer() method to return a freshly constructed localpeer. The latter is used by hg.peer(), and also to allow folks to pass either a peer or a repo to some generic helper methods. We might want to get rid of .peer() eventually. The only user of locallegacypeer is debugdiscovery, which uses it to pose as a pre-setdiscovery client. But we decided to leave the old API defined in locallegacypeer for clarity and maybe for other uses in the future. It might be nice to actually define the peer API directly in peer.py as stub methods. One problem there is, however, that localpeer implements lock/addchangegroup, whereas the true remote peers implement unbundle. It might be desireable to get rid of this distinction eventually.
Fri, 13 Jul 2012 21:46:53 +0200 peer: introduce peer methods to prepare for peer classes
Sune Foldager <cryo@cyanite.org> [Fri, 13 Jul 2012 21:46:53 +0200] rev 17191
peer: introduce peer methods to prepare for peer classes This introduces a peer method into all repository classes, which currently simply returns self. It also changes hg.repository so it now raises an exception if the supplied paths does not resolve to a localrepo or descendant. Finally, all call sites are changed to use the peer and local methods as appropriate, where peer is used whenever the code is dealing with a remote repository (even if it's on local disk).
Fri, 06 Jul 2012 14:12:42 -0500 bookmarks: document behavior of -B/--bookmark in help
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 14:12:42 -0500] rev 17190
bookmarks: document behavior of -B/--bookmark in help
Fri, 06 Jul 2012 14:11:58 -0500 test-bookmarks-pushpull.t: verify correct push -B behavior
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 14:11:58 -0500] rev 17189
test-bookmarks-pushpull.t: verify correct push -B behavior I wasn't able to find a test that proved this behavior worked, so I felt obligated to write a quick test so it won't regress in the future.
Wed, 11 Jul 2012 11:52:42 +0200 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 11:52:42 +0200] rev 17188
debugrevlog: handle numrevs == numfull case (issue3537) Instead of tracing back with a ZeroDivisionError.
Tue, 10 Jul 2012 09:11:53 -0700 templatekw/help: document the {parents} keyword
epriestley <hg@yghe.net> [Tue, 10 Jul 2012 09:11:53 -0700] rev 17187
templatekw/help: document the {parents} keyword The {parents} keyword does not appear in the generated documentation for templates because it is added by `changeset_templater` (and this is because its behavior depends on `ui`, so it can't be defined as a normal template keyword; see comments in `changeset_templater._show()`). Add it to the documentation synthetically by creating a stub documentation function. Test plan: built the docs and examined the man page to verify that this keyword is now documented. I'm not sure how to test the i18n extraction part, but assume it will just work given that this patch doesn't do anything too crazy.
Sat, 07 Jul 2012 00:47:55 -0400 revset: add destination() predicate
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Jul 2012 00:47:55 -0400] rev 17186
revset: add destination() predicate This predicate is used to find csets that were created because of a graft, transplant or rebase --keep. An optional revset can be supplied, in which case the result will be limited to those copies which specified one of the revs as the source for the command. hg log -r destination() # csets copied from anywhere hg log -r destination(branch(default)) # all csets copied from default hg log -r origin(x) or destination(origin(x)) # all instances of x This predicate will follow a cset through different types of copies. Given a repo with a cset 'S' that is grafted to create G(S), which itself is transplanted to become T(G(S)): o-S / o-o-G(S) \ o-T(G(S)) hg log -r destination( S ) # { G(S), T(G(S)) } hg log -r destination( G(S) ) # { T(G(S)) } The implementation differences between the three different copy commands (see the origin() predicate) are not intentionally exposed, however if the transplant was a graft instead: hg log -r destination( G(S) ) # {} because the 'extra' field in G(G(S)) is S, not G(S). The implementation cannot correct this by following sources before G(S) and then select the csets that reference those sources because the cset provided to the predicate would also end up selected. If there were more than two copies, sources of the argument would also get selected. Note that the convert extension does not currently update the 'extra' map in its destination csets, and therefore copies made prior to the convert will be missing from the resulting set. Instead of the loop over 'subset', the following almost works, but does not select a transplant of a transplant. That is, 'destination(S)' will only select T(S). dests = set([r for r in subset if _getrevsource(repo, r) in args])
Sat, 07 Jul 2012 00:47:30 -0400 revset: add origin() predicate
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Jul 2012 00:47:30 -0400] rev 17185
revset: add origin() predicate This predicate is used to find the original source of csets created by a graft, transplant or rebase --keep. If a copied cset is itself copied, only the source of the original copy is selected. hg log -r origin() # all src csets, anywhere hg log -r origin(branch(default)) # all srcs of copies on default By following through different types of copy commands and only selecting the original cset, the implementation differences between the copy commands are hidden. (A graft of a graft preserves the original source in its 'extra' map, while transplant and rebase use the immediate source specified for the command). Given a repo with a cset S that is grafted to create G(S), which itself is grafted to become G(G(S)) o-S / o-o-G(S) \ o-G(G(S)) hg log -r origin( G(S) ) # { S } hg log -r origin( G(G(S)) ) # { S }, NOT { G(S) } Even if the last graft were a transplant hg log -r origin( T(G(S)) ) # { S } A rebase without --keep essentially strips the source, so providing the cset that results to this predicate will yield an empty set. Note that the convert extension does not currently update the 'extra' map in its destination csets, and therefore copies made prior to the convert will be unable to find their source.
Mon, 16 Jul 2012 15:50:19 +0200 convert: remove unused newnames variable in filemap
Patrick Mezard <patrick@mezard.eu> [Mon, 16 Jul 2012 15:50:19 +0200] rev 17184
convert: remove unused newnames variable in filemap
Thu, 12 Jul 2012 03:03:19 +0200 push: fix bug in detection of remote obsolete support
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 12 Jul 2012 03:03:19 +0200] rev 17183
push: fix bug in detection of remote obsolete support Current code check obsolete availability in local repo.
Wed, 11 Jul 2012 18:22:07 +0200 incoming/outgoing: handle --graph in core
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 18:22:07 +0200] rev 17182
incoming/outgoing: handle --graph in core
Sat, 14 Jul 2012 19:09:22 +0200 log: support --graph without graphlog extension
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Jul 2012 19:09:22 +0200] rev 17181
log: support --graph without graphlog extension The glog command is preserved in the extension for backward compatibility.
Sat, 14 Jul 2012 18:55:21 +0200 graphlog: extract revset/support functions into cmdutil
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Jul 2012 18:55:21 +0200] rev 17180
graphlog: extract revset/support functions into cmdutil
Wed, 11 Jul 2012 17:13:39 +0200 graphlog: extract ascii drawing code into graphmod
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 17:13:39 +0200] rev 17179
graphlog: extract ascii drawing code into graphmod
Sun, 24 Jun 2012 18:11:52 +0200 patchbomb: rewrite getoutgoing() with revsets
Patrick Mezard <patrick@mezard.eu> [Sun, 24 Jun 2012 18:11:52 +0200] rev 17178
patchbomb: rewrite getoutgoing() with revsets Another version could have returned a revset expression from getoutgoing(), but we do not know how many times it will be resolved, so better do it once explicitely.
Sun, 24 Jun 2012 17:39:27 +0200 patchbomb: support --outgoing and revsets
Patrick Mezard <patrick@mezard.eu> [Sun, 24 Jun 2012 17:39:27 +0200] rev 17177
patchbomb: support --outgoing and revsets With --outgoing, input revisions were passed to getoutgoing() before being resolved.
Sat, 14 Jul 2012 19:21:31 +0200 patchbomb: make --outgoing ignore secret changesets
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Jul 2012 19:21:31 +0200] rev 17176
patchbomb: make --outgoing ignore secret changesets getoutgoing() is just rewritten almost like revset.outgoing(), a follow-up will make it use revsets after the tests are adjusted.
Sun, 15 Jul 2012 14:48:50 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 15 Jul 2012 14:48:50 -0500] rev 17175
merge with stable
Fri, 06 Jul 2012 01:14:02 -0300 convert: make filemap renames consistently override revision renames stable
Wagner Bruna <wbruna@yahoo.com> [Fri, 06 Jul 2012 01:14:02 -0300] rev 17174
convert: make filemap renames consistently override revision renames When the source repository had a revision renaming "$new -> $old", but the filemap a "$old -> $new" rename, the converted revision could use either $new (deleting the file) or $old (keeping the file) when getting the file data, depending on the lexicographical order of those names. So the resulting revision would leave some files untouched (as expected), but delete others arbitrarely.
Fri, 06 Jul 2012 19:34:09 +0200 obsolete: compute extinct changesets
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 Jul 2012 19:34:09 +0200] rev 17173
obsolete: compute extinct changesets `extinct` changesets are obsolete changesets with obsolete descendants only. They are of no interest anymore and can be: - exclude from exchange - hidden to the user in most situation - safely garbage collected This changeset just allows mercurial to detect them. The implementation is a bit naive, as for unstable changesets. We better use a simple revset query and a cache, but simple version comes first.
Tue, 10 Jul 2012 01:39:03 +0200 push: refuse to push unstable changesets without force
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 10 Jul 2012 01:39:03 +0200] rev 17172
push: refuse to push unstable changesets without force User should resolve unstability locally before pushing the same way we encourage user to merge locally instead of pushing a new remote head. If we are to push obsolete changeset, at least one set of the pushed set will be either obsolete or unstable. The check is narrowed to only heads.
Fri, 06 Jul 2012 00:18:09 +0200 obsolete: compute unstable changeset
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 06 Jul 2012 00:18:09 +0200] rev 17171
obsolete: compute unstable changeset An unstable changeset is a changeset *not* obsolete but with some obsolete ancestors. The current logic to decide if a changeset is unstable is naive and very inefficient. A better solution is to compute the set of unstable changeset with a simple revset and to cache the result. But this require cache invalidation logic. Simpler version goes first.
Fri, 06 Jul 2012 19:29:10 +0200 revset: add an `obsolete` symbol
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 06 Jul 2012 19:29:10 +0200] rev 17170
revset: add an `obsolete` symbol This predicate matches obsolete changesets. This is a naive implementation to be improved later.
Tue, 10 Jul 2012 01:32:18 +0200 push: refuse to push obsolete changesets
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 10 Jul 2012 01:32:18 +0200] rev 17169
push: refuse to push obsolete changesets This is a first version. Simple but not very efficient. Note that this changeset introduce the "obsolete" word in the UI.
Thu, 05 Jul 2012 19:53:04 +0200 push: accept revset argument for --rev
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 05 Jul 2012 19:53:04 +0200] rev 17168
push: accept revset argument for --rev
Fri, 06 Jul 2012 19:48:19 +0200 check-code: recognise %= as an operator
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 06 Jul 2012 19:48:19 +0200] rev 17167
check-code: recognise %= as an operator
Wed, 04 Jul 2012 08:55:16 +0200 tests: do exclude what is expected
Simon Heimberg <simohe@besonet.ch> [Wed, 04 Jul 2012 08:55:16 +0200] rev 17166
tests: do exclude what is expected
Fri, 06 Jul 2012 00:48:45 +0200 parsers.c: remove warning: 'size' may be used uninitialized in this function
Mads Kiilerich <mads@kiilerich.com> [Fri, 06 Jul 2012 00:48:45 +0200] rev 17165
parsers.c: remove warning: 'size' may be used uninitialized in this function Some compilers / compiler options (such as gcc 4.7) would emit warnings: mercurial/parsers.c: In function 'pack_dirstate': mercurial/parsers.c:306:18: warning: 'size' may be used uninitialized in this function [-Wmaybe-uninitialized] mercurial/parsers.c:306:12: warning: 'mode' may be used uninitialized in this function [-Wmaybe-uninitialized] It is apparently not smart enough to figure out how the 'err' arithmetics makes sure that it can't happen. 'err' is now replaced with simple checks and goto. That might also help the optimizer when it is inlining getintat().
Wed, 11 Jul 2012 16:47:33 +0200 graphlog: remove unused ASCIIDATA constant
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 16:47:33 +0200] rev 17164
graphlog: remove unused ASCIIDATA constant It was introduced by d9acbe7b0049, returned by asciiformat() but never read anywhere. 20140c249e63 stopped using it completely, and the graphmod.CHANGESET type is passed through all functions.
Wed, 11 Jul 2012 17:10:21 +0200 graphlog: make functions private, fix names
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 17:10:21 +0200] rev 17163
graphlog: make functions private, fix names
Wed, 11 Jul 2012 17:05:20 +0200 graphlog: remove unused get_revs() function
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 17:05:20 +0200] rev 17162
graphlog: remove unused get_revs() function
Fri, 06 Jul 2012 18:45:27 +0900 localrepo: use file API via vfs while ensuring repository directory
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 06 Jul 2012 18:45:27 +0900] rev 17161
localrepo: use file API via vfs while ensuring repository directory As a part of migration to vfs, this patch invokes some file API indirectly via vfs, while ensuring repository directory in the constructor of "localrepository" class. New file API are added to "scmutil.abstractopener" class, because they are also used via other derived classes than "scmutil.opener". But "join()" is not yet defined other than "scmutil.opener" class, because it should not be used via other opener classes yet.
Fri, 06 Jul 2012 18:45:27 +0900 localrepo: use "vfs" intead of "opener" while ensuring repository directory
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 06 Jul 2012 18:45:27 +0900] rev 17160
localrepo: use "vfs" intead of "opener" while ensuring repository directory As a part of migration to vfs, this patch uses "self.vfs" instead of "self.opener", while ensuring repository directory in the constructor of "localrepository" class.
Fri, 06 Jul 2012 18:45:27 +0900 localrepo: use the path relative to "self.vfs" instead of "path" argument
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 06 Jul 2012 18:45:27 +0900] rev 17159
localrepo: use the path relative to "self.vfs" instead of "path" argument As a part of migration to vfs, this patch uses "self.root", which can be recognized as the path relative to "self.vfs", instead of "path" argument. This fix allows to make invocations of "util.makedirs()" and "os.path.exists()" while ensuring repository directory in "localrepository.__init__()" ones indirectly via vfs. But this fix also raises issue 2528: "hg clone" with empty destination. "path" argument is empty in many cases, so this issue can't be fixed in the view of "localrepository.__init__()". Before this patch, it is fixed by empty-ness check ("not name") of exception handler in "util.makedirs()". try: os.mkdir(name) except OSError, err: if err.errno == errno.EEXIST: return if err.errno != errno.ENOENT or not name: raise This requires "localrepository.__init__()" to invoke "util.makedirs()" with "path" instead of "self.root", because empty "path" is treated as "current directory" and "self.root" becomes valid path. But "hg clone" with empty destination can be detected also in "hg.clone()" before "localrepository.__init__()" invocation, so this patch re-fixes issue2528 by checking it in "hg.clone()".
Fri, 06 Jul 2012 18:45:27 +0900 localrepo: use "self.wvfs.join()" instead of "os.path.join()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 06 Jul 2012 18:45:27 +0900] rev 17158
localrepo: use "self.wvfs.join()" instead of "os.path.join()" As a part of migration to vfs, this patch uses "self.wvfs.join()" instead of "os.path.join()", while initialization of fields in the constructor of "localrepository" class.
Fri, 06 Jul 2012 18:45:27 +0900 localrepo: use path expansion API via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 06 Jul 2012 18:45:27 +0900] rev 17157
localrepo: use path expansion API via vfs As a part of migration to vfs, this patch moves path expansion API invocations in the constructor of "localrepository" to the constructor of "opener", because the root path to the repository is very important to handle paths using non-ASCII characters correctly. This patch also rearrange initialization order of "wvfs" field, because it is required to initialize "self.root".
Fri, 06 Jul 2012 18:45:26 +0900 localrepo: add "vfs" fields to "localrepository" for migration from "opener"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 06 Jul 2012 18:45:26 +0900] rev 17156
localrepo: add "vfs" fields to "localrepository" for migration from "opener" As a part of migration to vfs, this patch adds "vfs" fields to "localrepository" class. This allows new codes to access current "opener" objects related to repositories via "vfs" fields, so patches referring to "vfs" will replace referring to "opener" in time. This patch also adds initializations for "vfs" fields to "statichttprepository" class derived from it, because its constructor doesn't invoke the constructor of "localrepository", so "vfs" fields should be initialized explicitly as same as "opener" fields: it has no working directory, so "wvfs" field is not added.
Fri, 13 Jul 2012 14:49:16 +0200 largefiles: optimize status by synchronizing lfdirstate with the largefile on update
Na'Tosha Bard <natosha@unity3d.com> [Fri, 13 Jul 2012 14:49:16 +0200] rev 17155
largefiles: optimize status by synchronizing lfdirstate with the largefile on update This speeds up status on a largefiles repo by synchronizing the largefiles dirstate to the largefile's mtime upon update, preventing the files from coming back as "unsure" later, requiring a check of the SHA1 sum.
Mon, 25 Jun 2012 15:14:06 -0700 store: abstract out how we retrieve a file's size
Bryan O'Sullivan <bryano@fb.com> [Mon, 25 Jun 2012 15:14:06 -0700] rev 17154
store: abstract out how we retrieve a file's size
Wed, 27 Jun 2012 22:03:27 +0900 mq: check subrepo synchronizations against parent of workdir or other appropriate context
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 27 Jun 2012 22:03:27 +0900] rev 17153
mq: check subrepo synchronizations against parent of workdir or other appropriate context Before this patch, MQ checks each subrepo synchronizations against the working directory context, so ".hgsubstate" updating is not imported into MQ revision correctly in cases below: - qrefresh when current ".hgsubstate" is already synchronized with each subrepos: you can reproduce this easily by just twice or more qrefresh invocations - qnew just after rollback of commit which updates ".hgsubstate" This patch resolves this by checking subrepo states against: - the parent of "qtop" for qrefresh, or - the parent of working context otherwise
Wed, 27 Jun 2012 22:03:27 +0900 mq: create patch file after commit to import diff of ".hgsubstate" at qrefresh
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 27 Jun 2012 22:03:27 +0900] rev 17152
mq: create patch file after commit to import diff of ".hgsubstate" at qrefresh Even though the committed revision contains diff of ".hgsubstate", the patch file created by qrefresh doesn't contain it, because: - ".hgsubstate" is not listed up as one of target files of the patch for reasons below, so diff of ".hgsubstate" is not imported into patch file - status of ".hgsubstate" in working directory is usually "clean" - ".hgsubstate" is not specified explicitly by users - the patch file is created before commit processing which updates or creates ".hgsubstate" automatically, so there is no diff for it at that time This patch resolves this problem by: - putting ".hgsubstate" into target list of the patch, if needed: this allows "patch.diff()" to import diff of ".hgsubstate" into patch file. - creating the patch file after commit processing: this updates ".hgsubstate" before "patch.diff()" invocation. For the former fixing, this patch introduces "putsubstate2changes()" to share same implementation with qnew. This is invoked only once per qnew/qrefresh at most, so there is less performance impact. This patch also omits "match" argument for "patch.diff()" invocation, because "patch.diff()" ignores "match" if "changes" is specified.
Wed, 27 Jun 2012 22:03:22 +0900 mq: add ".hgsubstate" to patch target list only if it is not listed up yet
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 27 Jun 2012 22:03:22 +0900] rev 17151
mq: add ".hgsubstate" to patch target list only if it is not listed up yet If ".hgsubstate" is already listed up as one of commit targets, qnew put diff of ".hgsubstate" twice into the patch file stored under ".hg/patches". It causes rejections at applying such patches. Other than the case like in added test script, this can also occur when qnew is executed just after rolling back the committing updated ".hgsubstate". This patch checks whether ".hgsubstate" is already listed up as one of commit targets, and put it into the appropriate list only if it is not listed up yet.
Thu, 12 Jul 2012 14:20:34 -0500 backout e7167007c083
Matt Mackall <mpm@selenic.com> [Thu, 12 Jul 2012 14:20:34 -0500] rev 17150
backout e7167007c083 This may have allowed unbounded I/O sizes with the current chunk retrieval code.
Thu, 12 Jul 2012 13:33:53 +0200 merge with crew-stable
Martin Geisler <mg@aragost.com> [Thu, 12 Jul 2012 13:33:53 +0200] rev 17149
merge with crew-stable
Mon, 09 Jul 2012 17:51:46 +0200 revert: use term "uncommitted merge" in help text stable
Adrian Buehlmann <adrian@cadifra.com> [Mon, 09 Jul 2012 17:51:46 +0200] rev 17148
revert: use term "uncommitted merge" in help text to make sure users can't possibly be mislead to try this for canceling a *merge changeset*.
Fri, 06 Jul 2012 22:43:10 +0200 histedit: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 Jul 2012 22:43:10 +0200] rev 17147
histedit: use cmdutil.command decorator
Tue, 10 Jul 2012 17:52:43 +0200 hgweb: show help with verbose sections included
Adrian Buehlmann <adrian@cadifra.com> [Tue, 10 Jul 2012 17:52:43 +0200] rev 17146
hgweb: show help with verbose sections included This makes sure we see the same help info as with 'hg help <command> --verbose' on the command line, that is, with verbose sections included.
Thu, 12 Jul 2012 10:41:56 +0200 merge with crew-stable
Martin Geisler <mg@aragost.com> [Thu, 12 Jul 2012 10:41:56 +0200] rev 17145
merge with crew-stable
Tue, 10 Jul 2012 21:26:18 +0200 update: mention how update can be used to cancel an uncommitted merge stable
Adrian Buehlmann <adrian@cadifra.com> [Tue, 10 Jul 2012 21:26:18 +0200] rev 17144
update: mention how update can be used to cancel an uncommitted merge
Tue, 10 Jul 2012 11:15:22 +0200 update: move help text about parent revision higher up stable
Adrian Buehlmann <adrian@cadifra.com> [Tue, 10 Jul 2012 11:15:22 +0200] rev 17143
update: move help text about parent revision higher up emphasizing how important the parent revision is
Wed, 11 Jul 2012 09:12:31 +0200 rollback: move examples and --force note in help into verbose section stable
Adrian Buehlmann <adrian@cadifra.com> [Wed, 11 Jul 2012 09:12:31 +0200] rev 17142
rollback: move examples and --force note in help into verbose section Plain 'hg help rollback' now looks like this: $ hg help rollback hg rollback roll back the last transaction (dangerous) This command should be used with care. There is only one level of rollback, and there is no way to undo a rollback. It will also restore the dirstate at the time of the last transaction, losing any dirstate changes since that time. This command does not alter the working directory. Transactions are used to encapsulate the effects of all commands that create new changesets or propagate existing changesets into a repository. This command is not intended for use on public repositories. Once changes are visible for pull by other users, rolling a transaction back locally is ineffective (someone else may already have pulled the changes). Furthermore, a race is possible with readers of the repository; for example an in-progress pull from the repository may fail if a rollback is performed. Returns 0 on success, 1 if no rollback data is available. options: -n --dry-run do not perform actions, just print output -f --force ignore safety measures --mq operate on patch repository use "hg -v help rollback" to show more info
Wed, 11 Jul 2012 09:08:26 +0200 rollback: split off command example paragraph in help stable
Adrian Buehlmann <adrian@cadifra.com> [Wed, 11 Jul 2012 09:08:26 +0200] rev 17141
rollback: split off command example paragraph in help
Thu, 12 Jul 2012 09:58:40 +0200 subrepo: add missing newline in Git warning message stable
Martin Geisler <mg@aragost.com> [Thu, 12 Jul 2012 09:58:40 +0200] rev 17140
subrepo: add missing newline in Git warning message
Thu, 12 Jul 2012 10:03:50 +0200 merge with main
Martin Geisler <mg@aragost.com> [Thu, 12 Jul 2012 10:03:50 +0200] rev 17139
merge with main
Wed, 11 Jul 2012 15:39:00 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:39:00 -0700] rev 17138
Merge
Wed, 11 Jul 2012 15:36:00 -0700 localrepo: make requirements and openerreqs mutable by subclasses
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:36:00 -0700] rev 17137
localrepo: make requirements and openerreqs mutable by subclasses This is necessary for extensions that need to modify a repo's requirements.
Wed, 11 Jul 2012 15:34:01 -0700 test-clone: load extensions before doing anything
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:34:01 -0700] rev 17136
test-clone: load extensions before doing anything This makes it possible to run this test using "--extra-config-opt=extensions.myext=" and have the extension be loaded as intended.
Wed, 11 Jul 2012 15:34:32 -0700 test-clone: load extensions before doing anything
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:34:32 -0700] rev 17135
test-clone: load extensions before doing anything This makes it possible to run this test using "--extra-config-opt=extensions.myext=" and have the extension be loaded as intended.
Wed, 11 Jul 2012 12:38:42 +0200 revlog: fix for generaldelta distance calculation
Friedrich Kastner-Masilko <kastner_masilko@at.festo.com> [Wed, 11 Jul 2012 12:38:42 +0200] rev 17134
revlog: fix for generaldelta distance calculation The decision whether or not to store a full snapshot instead of a delta is done based on the distance value calculated in _addrevision.builddelta(rev). This calculation traditionally used the fact of deltas only using the previous revision as base. Generaldelta mechanism is changing this, yet the calculation still assumes that current-offset minus chainbase-offset equals chain-length. This appears to be wrong. This patch corrects the calculation by means of using the chainlength function if Generaldelta is used.
Wed, 11 Jul 2012 15:05:06 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:05:06 -0700] rev 17133
Merge
Wed, 11 Jul 2012 15:03:10 -0700 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:03:10 -0700] rev 17132
tests: reduce spurious failures when run with generaldelta Quite a few tests fail in noisy but meaningless ways when the test suite is run with generaldelta enabled: ./run-tests.py --extra-config-opt=format.generaldelta=1 This reduces the amount of noise introduced by the debugindex command, the main source of differences. In my environment, when testing with generaldelta enabled, this change reduces the number of completely failing tests from 21 to 8.
Fri, 06 Jul 2012 12:17:53 -0500 histedit: add extension docstring from external README
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 12:17:53 -0500] rev 17131
histedit: add extension docstring from external README Made a couple of tweaks to try and fit better with the hg docstring style and fix up some ReST errors in the README.
Fri, 06 Jul 2012 11:39:02 -0500 histedit: don't crash if the result of fixing up a fold is empty
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 11:39:02 -0500] rev 17130
histedit: don't crash if the result of fixing up a fold is empty
Fri, 06 Jul 2012 11:06:57 -0500 histedit: replace hexshort lambda with node.short
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 11:06:57 -0500] rev 17129
histedit: replace hexshort lambda with node.short
Mon, 25 Jun 2012 13:56:13 -0700 revlog: make compress a method
Bryan O'Sullivan <bryano@fb.com> [Mon, 25 Jun 2012 13:56:13 -0700] rev 17128
revlog: make compress a method This allows an extension to optionally use a new compression type based on the options applied by the repo to the revlog's opener. (decompress doesn't need the same treatment, as it can be replaced using extensions.wrapfunction, and can figure out which compression algorithm is in use based on the first byte of the compressed payload.)
Sun, 24 Jun 2012 20:36:22 +0200 largefiles: batch statlfile requests when pushing a largefiles repo (issue3386)
Na'Tosha Bard <natosha@unity3d.com> [Sun, 24 Jun 2012 20:36:22 +0200] rev 17127
largefiles: batch statlfile requests when pushing a largefiles repo (issue3386) This implements a part of issue 3386. It batches the request for the status of all largefiles in the revisions that are about to be pushed into a single request, instead of doing N separate requests. In a real world test case, this change was verified to save 1,116 round-trips to the server. It only requires a client-side change; it is backwards-compatible with an older version of the server.
Wed, 04 Jul 2012 02:21:04 +0200 obsolete: write obsolete marker inside a transaction
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 04 Jul 2012 02:21:04 +0200] rev 17126
obsolete: write obsolete marker inside a transaction Marker are now written as soon as possible but within a transaction. Using a transaction ensure a proper behavior on error and rollback compatibility. Flush logic are not necessary anymore and are dropped from lock release. With this changeset, the obsstore is open, written and closed for every single added marker. This is expected to be highly inefficient and batched write should be implemented "quickly". Another issue is that every flush of the file will invalidate the obsstore filecache and trigger a full re instantiation of the repo.obsstore attribute (including, reading and parsing entry). This is also expected to be highly inefficient and proper filecache operation should be implemented "quickly" too. A side benefit of the filecache issue is that repo.obsstore object is properly invalidated on transaction abortion.
Wed, 04 Jul 2012 02:02:48 +0200 obsolete: append new markers to obsstore file instead of rewriting everything
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 04 Jul 2012 02:02:48 +0200] rev 17125
obsolete: append new markers to obsstore file instead of rewriting everything This is the second step toward incremental writing of marker inside a transaction. The obsstore file is now handled append only. Header writing have been extracted from _writemarkers. Because the _writemarkers method have been dropped, the push code directly reuse the serialised content of local repo `listkeys`. This is not very pretty, but this part of the protocol still need major improvement anyway.
Wed, 04 Jul 2012 02:00:36 +0200 obsolete: move obsolete markers read/write logic to obsstore object
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 04 Jul 2012 02:00:36 +0200] rev 17124
obsolete: move obsolete markers read/write logic to obsstore object This is the first step toward incremental writing of obsolete marker within a transaction. For this purpose, obsstore is now given its repo sopener. This make it able to handles read and write to the obsstore file itself. Most IO logic is removed from localrepo and handled by obsstore object directly.
Wed, 11 Jul 2012 18:35:14 -0500 debugobsolete: remove spurious ctx from variable name
Matt Mackall <mpm@selenic.com> [Wed, 11 Jul 2012 18:35:14 -0500] rev 17123
debugobsolete: remove spurious ctx from variable name 'contexts' are objects like the ones described in context.py, not anything that describes a situation.
Fri, 06 Jul 2012 20:28:32 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Fri, 06 Jul 2012 20:28:32 -0700] rev 17122
Merge
Fri, 06 Jul 2012 20:19:55 -0700 setup: disable -mno-cygwin if building under mingw32
Bryan O'Sullivan <bryano@fb.com> [Fri, 06 Jul 2012 20:19:55 -0700] rev 17121
setup: disable -mno-cygwin if building under mingw32 This gcc option has been deprecated since at least 2009 (gcc 4.4), and it causes compilations to fail entirely with gcc 4.6.x. Upstream distutils bug: http://bugs.python.org/issue12641
Fri, 06 Jul 2012 00:30:18 +0200 graphlog: don't truncate template value at last \n
Mads Kiilerich <mads@kiilerich.com> [Fri, 06 Jul 2012 00:30:18 +0200] rev 17120
graphlog: don't truncate template value at last \n Most uses of templates requires a trailing newline to get vertical output. Graphlog with a template without trailing newline did however not just create horisontal output like other commands would but truncated the output at the last \n. Template values without any \n were ignored completely. Graphlog will now only eat one trailing newline before it lets the flow of the graph add the necessary vertical space.
Wed, 04 Jul 2012 17:29:49 +0200 graphlog: display obsolete changeset as "x"
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 04 Jul 2012 17:29:49 +0200] rev 17119
graphlog: display obsolete changeset as "x" Changeset detected as obsolete will be displayed as "x" instead of 'o': o new rewritten changeset | | x old obsolete changeset |/ | o base This will be useful even when some obsolete changeset will be "hidden" because not all obsolete changeset can be hidden. If an obsolete changeset have non-obsolete descendant we can't simply hide it. And having a clear visual hint that the changeset is obsolete is useful. The main reason to make this minor change right now is to: 1) introduce an officiel user of the `ctx.obsolete()` method that will detect breakage earlier than third party code (mutable, hgview) 2) Do not display any vocabulary related to obsolete. Such vocabulary will require discussion.
Wed, 04 Jul 2012 17:26:51 +0200 obsolete: fix context.obsolete() method
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 04 Jul 2012 17:26:51 +0200] rev 17118
obsolete: fix context.obsolete() method - obsstore attribut name changed. - public changeset can't be obsolete
Wed, 04 Jul 2012 16:37:00 +0200 obsolete: fix error message at marker creation
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 04 Jul 2012 16:37:00 +0200] rev 17117
obsolete: fix error message at marker creation precursors content where printed for invalid successor.
Mon, 02 Jul 2012 00:31:22 +0200 help: explain effect of .hgignore on tracked files
Adrian Buehlmann <adrian@cadifra.com> [Mon, 02 Jul 2012 00:31:22 +0200] rev 17116
help: explain effect of .hgignore on tracked files
Sun, 01 Jul 2012 10:06:16 +0200 hgignore: simply ignore all *.exe's everywhere
Adrian Buehlmann <adrian@cadifra.com> [Sun, 01 Jul 2012 10:06:16 +0200] rev 17115
hgignore: simply ignore all *.exe's everywhere it's not like we're going to add any exe anywhere ever
Thu, 05 Jul 2012 02:25:49 +0200 tests: ignore pax_global_header in test-subrepo-git.t
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 02:25:49 +0200] rev 17114
tests: ignore pax_global_header in test-subrepo-git.t Failure seen on hgbuildbot 2.4 and 2.5 after 1894dac619de. Hide '../archive_x/s/pax_global_header' with same strange trick as in 5dda6c708138.
Thu, 05 Jul 2012 01:47:17 +0200 tests: remove GNU quoting in test-subrepo-deep-nested-change.t
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 01:47:17 +0200] rev 17113
tests: remove GNU quoting in test-subrepo-deep-nested-change.t Test failure on non-GNU systems introduced in 1894dac619de.
Thu, 05 Jul 2012 00:51:05 +0200 tests: add '(glob)' for Windows paths in test-subrepo-deep-nested-change.t
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 00:51:05 +0200] rev 17112
tests: add '(glob)' for Windows paths in test-subrepo-deep-nested-change.t Test failure was introduced in 1894dac619de.
Thu, 05 Jul 2012 00:49:26 +0200 check-code: verify that 'saved backup bundle to ...' is '(glob)'ed
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 00:49:26 +0200] rev 17111
check-code: verify that 'saved backup bundle to ...' is '(glob)'ed This is the most frequent trivial reason tests fail on Windows.
Thu, 05 Jul 2012 00:35:42 +0200 tests: fix test markup in test-merge-types.t
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 00:35:42 +0200] rev 17110
tests: fix test markup in test-merge-types.t ca5cc2976574 introduced some tests that because of incorrect indentation wasn't run.
Wed, 04 Jul 2012 12:43:13 +0200 test-hgweb-diffs: partially adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Wed, 04 Jul 2012 12:43:13 +0200] rev 17109
test-hgweb-diffs: partially adapt for Windows Since chmod isn't supported on Windows (or vfat), I'm importing a here-doc instead (<<EOF ..). Option --bypass on import of the here-doc is required on Windows (or vfat) to bypass the working directory (see hg help import). Not using --bypass would lose the mode changing bits. I've had to insert a --bypass on the preexisting import call futher down in the test, because importing a patch with --exact and mode changes will fail on Windows (and vfat). As the point of this test is not to test commit, I'm using the import procedure for all platforms unconditionally, that is, I'm intentionally not keeping the original sequence of hg and chmod calls for platforms that support exec either, which saves us having to insert an #if exec ... #else ... #endif.
Sat, 16 Jun 2012 22:34:06 -0400 subrepo: propagate matcher to subrepos when archiving
Matt Harbison <matt_harbison@yahoo.com> [Sat, 16 Jun 2012 22:34:06 -0400] rev 17108
subrepo: propagate matcher to subrepos when archiving Add a match object to subrepo.archive(). This will allow the -X and -I options to be honored inside subrepos when archiving. They formerly only affect the top level repo.
Mon, 18 Jun 2012 22:45:21 -0400 largefiles: remove a standin check that could never be true
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jun 2012 22:45:21 -0400] rev 17107
largefiles: remove a standin check that could never be true
Mon, 18 Jun 2012 23:02:51 -0400 largefiles: fix the directory structure when archiving a subrepo in a subrepo
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jun 2012 23:02:51 -0400] rev 17106
largefiles: fix the directory structure when archiving a subrepo in a subrepo Previously, a repo consisting of main/sub/subsub archived sub and subsub as siblings under main.
Sun, 17 Jun 2012 21:57:48 -0400 largefiles: fix a traceback when archiving a subrepo in a subrepo
Matt Harbison <matt_harbison@yahoo.com> [Sun, 17 Jun 2012 21:57:48 -0400] rev 17105
largefiles: fix a traceback when archiving a subrepo in a subrepo This regression was introduced in 43fb170a23bd.
Thu, 21 Jun 2012 12:50:15 +0200 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com> [Thu, 21 Jun 2012 12:50:15 +0200] rev 17104
help: improve hgweb help The existing help only walked through an example. Now we first explain the basic rules and then show an example. The 'collections' example and description only cause confusion and is removed. Bikeshedded by Patrick Mezard <patrick@mezard.eu>
Mon, 18 Jun 2012 18:19:28 +0200 convert: keep branch switching merges with ancestors (issue3340)
Patrick Mezard <patrick@mezard.eu> [Mon, 18 Jun 2012 18:19:28 +0200] rev 17103
convert: keep branch switching merges with ancestors (issue3340) When running convert with a filemap, merge parents which are ancestors of other parents are ignored. This is hardly a problem when parents belong to the same branch, but the result could be confusing when named branches are involved. With: -o-a1-a2-a3... <- A \ \ b1-b2-b3...-m- <- B If all b* revisions are discarded, it is useful to preserve 'm' even if it is empty after filtering to record the branch switch. This patch makes filemap preserve "ancestor parents" if there is no "non-ancestor parent" on the same branch than the merge revision. Remarks: - I am not completely convinced by the reasons given above and those detailed by Matt in this thread: http://selenic.com/pipermail/mercurial-devel/2012-May/040627.html The properties we try to preserve are not clearly defined. That said, I know this patch already helped someone on IRC and the tests output look reasonable. - This is a new version of the original "convert: filemap must preserve fast-forward merges" patch. It has exactly the same output for 2 parents merges, the additional complexity is here to handle more than two parents.
Wed, 13 Jun 2012 23:32:58 +0200 revset: add "diff" field to "matching" keyword
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 13 Jun 2012 23:32:58 +0200] rev 17102
revset: add "diff" field to "matching" keyword The new "diff" field lets you use the matching revset keyword to find revisions that apply the same change as the selected revisions. The match must be exact (i.e. same additions, same deletions, same modified lines and same change context, same file renames and copies). Two revisions matching their diff must also match their files. Thus, to match the diff much faster we will always check that the 'files' match first, and only then check that the 'diff' matches as well.
Fri, 08 Jun 2012 23:27:59 -0400 mq: defer command wrapping to extsetup (API)
Matt Harbison <matt_harbison@yahoo.com> [Fri, 08 Jun 2012 23:27:59 -0400] rev 17101
mq: defer command wrapping to extsetup (API) mq wraps all commands that are not in commands.norepo, which is now performed in this second phase of the extensions setup process. This goes against the current best practices on the wiki [1] as far as where command wrapping is performed, but follows it regarding where global options are injected. mq needs to be the first layer called when command dispatching in order to consistently retarget to the patch repo, regardless of the load order of the extensions. This means being the last to wrap the command table. Previously, 'hg <extdiff> --mq' would diff the main repo unless mq was enabled after extdiff. [1] http://mercurial.selenic.com/wiki/WritingExtensions
Wed, 04 Jul 2012 09:38:07 -0700 revset: ensure we are reversing a list (issue3530)
Bryan O'Sullivan <bryano@fb.com> [Wed, 04 Jul 2012 09:38:07 -0700] rev 17100
revset: ensure we are reversing a list (issue3530)
Tue, 03 Jul 2012 18:02:07 +0200 test-keyword: adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Tue, 03 Jul 2012 18:02:07 +0200] rev 17099
test-keyword: adapt for Windows
Wed, 04 Jul 2012 02:04:58 +0200 tests: don't use dates before epoch in test-keyword.t
Mads Kiilerich <mads@kiilerich.com> [Wed, 04 Jul 2012 02:04:58 +0200] rev 17098
tests: don't use dates before epoch in test-keyword.t Timezone offsets of less than a minute is not shown but can cause displayed dates to be before epoch start - and dates before epoch start is not shown correctly on Windows (see also 4d5b12a5517b). These 'negative' dates could be considered undefined behaviour so we don't care and swap the tests values for timestamp and timezone.
Wed, 04 Jul 2012 01:45:28 +0200 tests: make test-convert-bzr.t more stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 04 Jul 2012 01:45:28 +0200] rev 17097
tests: make test-convert-bzr.t more stable The test would occasionally fail because datesort don't have sub-second granularity and thus can't sort commits made in the same second. The test is made more stable by adding 1 second of sleep to make sure the bzr commits are done with different timestamps.
Wed, 27 Jun 2012 12:37:01 -0700 casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com> [Wed, 27 Jun 2012 12:37:01 -0700] rev 17096
casecollision: add tests Add more tests to exercise the case collion detection code
Wed, 27 Jun 2012 12:28:26 -0700 dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com> [Wed, 27 Jun 2012 12:28:26 -0700] rev 17095
dirstate: add dir/file collision test Add a test exercising collisions in add between files and directories of the same name.
Mon, 18 Jun 2012 08:06:42 -0700 dirstate: factor common update code into _addpath
Joshua Redstone <joshua.redstone@fb.com> [Mon, 18 Jun 2012 08:06:42 -0700] rev 17094
dirstate: factor common update code into _addpath Factor update code common to all callers of _addpath into _addpath. By centralizing the update code here, it provides one place to put updates to new data structures - in a future patch. It also removes a few lines of duplicate code.
Mon, 02 Jul 2012 16:54:01 +0200 test-subrepo-relative-path: partially adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Mon, 02 Jul 2012 16:54:01 +0200] rev 17093
test-subrepo-relative-path: partially adapt for Windows
Tue, 03 Jul 2012 01:49:51 +0200 tests: make rm of usercache in test-largefiles.t more robust
Mads Kiilerich <mads@kiilerich.com> [Tue, 03 Jul 2012 01:49:51 +0200] rev 17092
tests: make rm of usercache in test-largefiles.t more robust Recursive removal of a different path could be fatal - better avoid recursive rm completely.
Sun, 01 Jul 2012 21:20:30 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Jul 2012 21:20:30 -0500] rev 17091
merge with stable
Sun, 01 Jul 2012 21:19:57 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Sun, 01 Jul 2012 21:19:57 -0500] rev 17090
merge with crew
Mon, 02 Jul 2012 01:48:12 +0200 tests: enable test-largefiles.t on Windows MSYS
Mads Kiilerich <mads@kiilerich.com> [Mon, 02 Jul 2012 01:48:12 +0200] rev 17089
tests: enable test-largefiles.t on Windows MSYS The 'serve' requirement is moved to the sections that really need it. $USERCACHE needs quoting.
Sat, 30 Jun 2012 19:31:03 +0200 test-largefiles: partially adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Sat, 30 Jun 2012 19:31:03 +0200] rev 17088
test-largefiles: partially adapt for Windows The adaption is partial, because "serve" is not yet officially supported in tests on Windows. The test passes on Windows with an experimental testbed that supports hg serve in tests on Windows - except for some USERCACHE issues. The added (glob)'s are needed because of backslash <-> shlash issues in paths.
Mon, 02 Jul 2012 01:47:59 +0200 tests: make histedit pass on Windows MSYS
Mads Kiilerich <mads@kiilerich.com> [Mon, 02 Jul 2012 01:47:59 +0200] rev 17087
tests: make histedit pass on Windows MSYS The command file will now be named with $TESTTMP (with '\') instead of `pwd` (with '/') to avoid wrong path conversions.
Sat, 30 Jun 2012 03:34:50 +0200 tests: make histedit tests more resilient to filesystem variation
Mads Kiilerich <mads@kiilerich.com> [Sat, 30 Jun 2012 03:34:50 +0200] rev 17086
tests: make histedit tests more resilient to filesystem variation Better quoting of odd filesystem paths and no dependency to execute bit.
Sat, 30 Jun 2012 03:34:44 +0200 tests: convert histedit tests to .t
Mads Kiilerich <mads@kiilerich.com> [Sat, 30 Jun 2012 03:34:44 +0200] rev 17085
tests: convert histedit tests to .t Mostly a trivial conversion.
Sat, 30 Jun 2012 03:34:41 +0200 histedit: use stable iteration order for processing bookmarks
Mads Kiilerich <mads@kiilerich.com> [Sat, 30 Jun 2012 03:34:41 +0200] rev 17084
histedit: use stable iteration order for processing bookmarks Random dict iteration order caused test failure in test-histedit-bookmark-motion.t.
Sun, 01 Jul 2012 21:12:36 -0500 Added signature for changeset b013baa3898e stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Jul 2012 21:12:36 -0500] rev 17083
Added signature for changeset b013baa3898e
Sun, 01 Jul 2012 21:12:31 -0500 Added tag 2.2.3 for changeset b013baa3898e stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Jul 2012 21:12:31 -0500] rev 17082
Added tag 2.2.3 for changeset b013baa3898e
Sun, 01 Jul 2012 13:10:54 -0500 record: fix display of non-ASCII names stable 2.2.3
Matt Mackall <mpm@selenic.com> [Sun, 01 Jul 2012 13:10:54 -0500] rev 17081
record: fix display of non-ASCII names spotted by Nikolaj Sjujskij
Sun, 01 Jul 2012 08:09:00 -0300 i18n-pt_BR: synchronized with d63fb1fce977 stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 Jul 2012 08:09:00 -0300] rev 17080
i18n-pt_BR: synchronized with d63fb1fce977
Sun, 01 Jul 2012 08:08:37 -0300 merge with i18n stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 Jul 2012 08:08:37 -0300] rev 17079
merge with i18n
Sun, 01 Jul 2012 00:04:46 +0900 i18n-ja: fix some rst syntax problems stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 01 Jul 2012 00:04:46 +0900] rev 17078
i18n-ja: fix some rst syntax problems
Sat, 30 Jun 2012 21:59:16 +0900 i18n-ja: synchronized with 86a3bb9c5f5c stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 30 Jun 2012 21:59:16 +0900] rev 17077
i18n-ja: synchronized with 86a3bb9c5f5c
Wed, 06 Jun 2012 01:56:58 +0200 obsolete: function and method to access some obsolete data
Pierre-Yves.David@ens-lyon.org [Wed, 06 Jun 2012 01:56:58 +0200] rev 17076
obsolete: function and method to access some obsolete data An `obsolete` boolean property is added to changeset context. Function to get obsolete marker object from a changeset context are added to the obsolete module.
Thu, 07 Jun 2012 19:21:59 +0200 obsolete: exchange obsolete marker over pushkey
Pierre-Yves.David@ens-lyon.org [Thu, 07 Jun 2012 19:21:59 +0200] rev 17075
obsolete: exchange obsolete marker over pushkey For a version of the exchange, all markers are exchange. This won't scale and we will need a better protocol later.
Thu, 07 Jun 2012 19:20:44 +0200 debugobsolete: list all obsolete marker if no argument are specified
Pierre-Yves.David@ens-lyon.org [Thu, 07 Jun 2012 19:20:44 +0200] rev 17074
debugobsolete: list all obsolete marker if no argument are specified
Mon, 04 Jun 2012 00:50:19 +0200 obsolete: add easy way to iterate over obsolete marker object
Pierre-Yves.David@ens-lyon.org [Mon, 04 Jun 2012 00:50:19 +0200] rev 17073
obsolete: add easy way to iterate over obsolete marker object
Thu, 07 Jun 2012 19:19:58 +0200 obsolete: helper class to access obsolete marker data
Pierre-Yves.David@ens-lyon.org [Thu, 07 Jun 2012 19:19:58 +0200] rev 17072
obsolete: helper class to access obsolete marker data
Thu, 07 Jun 2012 19:15:23 +0200 command: creation of obsolete marker
Pierre-Yves.David@ens-lyon.org [Thu, 07 Jun 2012 19:15:23 +0200] rev 17071
command: creation of obsolete marker * add metadata encoding/decoding ability * add a method to obsstore to help creating marker * add a debug command to create marker
Thu, 07 Jun 2012 19:07:39 +0200 obsolete: introduction of obsolete markers
Pierre-Yves.David@ens-lyon.org [Thu, 07 Jun 2012 19:07:39 +0200] rev 17070
obsolete: introduction of obsolete markers Markers are stored as binary records in a log structured file in .hg/store/obsstore.
Thu, 28 Jun 2012 08:45:38 -0500 histedit: mark as a first party extension
Augie Fackler <raf@durin42.com> [Thu, 28 Jun 2012 08:45:38 -0500] rev 17069
histedit: mark as a first party extension
Wed, 27 Jun 2012 18:42:48 -0500 histedit: remove use of reduce() builtin spotted by check-code
Augie Fackler <raf@durin42.com> [Wed, 27 Jun 2012 18:42:48 -0500] rev 17068
histedit: remove use of reduce() builtin spotted by check-code
Wed, 27 Jun 2012 18:41:14 -0500 test-histedit-edit: improve coverage of histedit code
Augie Fackler <raf@durin42.com> [Wed, 27 Jun 2012 18:41:14 -0500] rev 17067
test-histedit-edit: improve coverage of histedit code
Wed, 27 Jun 2012 18:35:33 -0500 histedit: fix most check-code violations
Augie Fackler <raf@durin42.com> [Wed, 27 Jun 2012 18:35:33 -0500] rev 17066
histedit: fix most check-code violations
Wed, 27 Jun 2012 18:34:31 -0500 histedit tests: fix check-code problems
Augie Fackler <raf@durin42.com> [Wed, 27 Jun 2012 18:34:31 -0500] rev 17065
histedit tests: fix check-code problems
Wed, 27 Jun 2012 17:52:54 -0500 histedit: new extension for interactive history editing
Augie Fackler <raf@durin42.com> [Wed, 27 Jun 2012 17:52:54 -0500] rev 17064
histedit: new extension for interactive history editing
Fri, 29 Jun 2012 08:10:43 +0200 exewrapper: use generic term script
Adrian Buehlmann <adrian@cadifra.com> [Fri, 29 Jun 2012 08:10:43 +0200] rev 17063
exewrapper: use generic term script The exewrapper doesn't know anything so far about what the script is or does.
Fri, 29 Jun 2012 13:12:35 +0200 Makefile: add build_hgexe -i for local
Adrian Buehlmann <adrian@cadifra.com> [Fri, 29 Jun 2012 13:12:35 +0200] rev 17062
Makefile: add build_hgexe -i for local
Fri, 29 Jun 2012 13:10:48 +0200 setup: compile hg.exe
Adrian Buehlmann <adrian@cadifra.com> [Fri, 29 Jun 2012 13:10:48 +0200] rev 17061
setup: compile hg.exe This implements a new command $ python setup.py build_hgexe -i which places the hg.exe in the root of the source tree.
Fri, 29 Jun 2012 15:21:35 +0200 test-commit-amend: adapt for Windows after fba17a64fa49
Adrian Buehlmann <adrian@cadifra.com> [Fri, 29 Jun 2012 15:21:35 +0200] rev 17060
test-commit-amend: adapt for Windows after fba17a64fa49
Fri, 29 Jun 2012 00:40:52 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 29 Jun 2012 00:40:52 -0500] rev 17059
merge with stable
Fri, 29 Jun 2012 00:01:19 +0200 exewrapper: adding new exewrapper.c
Adrian Buehlmann <adrian@cadifra.com> [Fri, 29 Jun 2012 00:01:19 +0200] rev 17058
exewrapper: adding new exewrapper.c
Thu, 28 Jun 2012 15:06:41 +0100 keyword: use ui.formatter for kwfiles output
Christian Ebert <blacktrash@gmx.net> [Thu, 28 Jun 2012 15:06:41 +0100] rev 17057
keyword: use ui.formatter for kwfiles output
Fri, 22 Jun 2012 12:17:49 +0200 discovery: simplify branchmap construction against legacy server
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 22 Jun 2012 12:17:49 +0200] rev 17056
discovery: simplify branchmap construction against legacy server All necessary data to fire a simple revset query are already known. No call to ancestors are needed. Such ancestors calculation was already done to compute outgoing.missing.
Wed, 27 Jun 2012 13:41:04 -0500 copies: re-include root directory in directory rename detection (issue3511)
Matt Mackall <mpm@selenic.com> [Wed, 27 Jun 2012 13:41:04 -0500] rev 17055
copies: re-include root directory in directory rename detection (issue3511)
Mon, 25 Jun 2012 15:14:05 -0700 store: sort filenames in place
Bryan O'Sullivan <bryano@fb.com> [Mon, 25 Jun 2012 15:14:05 -0700] rev 17054
store: sort filenames in place
Fri, 29 Jun 2012 01:51:48 +0200 convert: check for failed svn import in debugsvnlog and abort cleanly
Mads Kiilerich <mads@kiilerich.com> [Fri, 29 Jun 2012 01:51:48 +0200] rev 17053
convert: check for failed svn import in debugsvnlog and abort cleanly 'hg debugsvnlog' failed with a crash when using the uninitialized transport in get_log_child if the import of the svn libraries had failed. 'convert' should never get as far as launching 'hg debugsvnlog' if the svn libraries are missing, but by launching a subprocess there is risk that the environment is mangled so the second import fails. It is in principle also possible to launch the command manually.
Thu, 28 Jun 2012 03:41:37 +0200 convert: accept Subversion 'file:///c%3A/svnrepo' syntax on Windows
Mads Kiilerich <mads@kiilerich.com> [Thu, 28 Jun 2012 03:41:37 +0200] rev 17052
convert: accept Subversion 'file:///c%3A/svnrepo' syntax on Windows Subversion can handle ':' quoted as '%3A' but urllib.url2pathname can't and Mercurial thus rejected some valid subversions URLs. This particular case will now be handled by some preprocessing before handing it over to urllib.url2pathname. This is tested by 0413f68da85c when test-convert-svn-source.t and test-convert-svn-move.t can be run on Windows.
Mon, 25 Jun 2012 19:26:29 +0200 win32: remove uneeded usage of _STARTF_USESHOWWINDOW
Adrian Buehlmann <adrian@cadifra.com> [Mon, 25 Jun 2012 19:26:29 +0200] rev 17051
win32: remove uneeded usage of _STARTF_USESHOWWINDOW spawndetached() was the only user of _STARTF_USESHOWWINDOW and it creates the process with _CREATE_NO_WINDOW anyway. If the process has no window, then there is nothing to hide.
Mon, 25 Jun 2012 19:11:29 +0200 win32: specify _CREATE_NO_WINDOW on spawndetached()
Adrian Buehlmann <adrian@cadifra.com> [Mon, 25 Jun 2012 19:11:29 +0200] rev 17050
win32: specify _CREATE_NO_WINDOW on spawndetached() Before this change, a console window briefly popped up on "hg serve -d" and disappeared again, stealing the focus window (which was very annyoing when running tests). Specifying _CREATE_NO_WINDOW instead of _DETACHED_PROCESS fixes this (as tested on Windows 7 x64).
Sat, 23 Jun 2012 19:57:29 +0300 amend: disable hooks when creating intermediate commit (issue3501) stable
Idan Kamara <idankk86@gmail.com> [Sat, 23 Jun 2012 19:57:29 +0300] rev 17049
amend: disable hooks when creating intermediate commit (issue3501)
Sat, 23 Jun 2012 19:57:07 +0300 ui: add a variable to control whether hooks should be called stable
Idan Kamara <idankk86@gmail.com> [Sat, 23 Jun 2012 19:57:07 +0300] rev 17048
ui: add a variable to control whether hooks should be called So hooks can be temporarily disabled.
Thu, 28 Jun 2012 18:39:16 +0200 strip: update help to state than you can strip public changeset stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 28 Jun 2012 18:39:16 +0200] rev 17047
strip: update help to state than you can strip public changeset Multiple people have been confused by it.
Fri, 22 Jun 2012 11:40:31 -0700 bookmarks: correctly update current bookmarks on rebase (issue2277) stable
David Schleimer <dschleimer@fb.com> [Fri, 22 Jun 2012 11:40:31 -0700] rev 17046
bookmarks: correctly update current bookmarks on rebase (issue2277) When you rebased with a currently active bookmark, that bookmark would always point at the new tip, regardless of what revision it pointed at before the rebase. All bookmarks will now point at the equivalent post-rebase commit. However, the currently active bookmark will cease to be active unless it points at the new tip post-rebase. Rebase will always leave the new tip as the working copy parent, which is incompatible with having an active bookmark that points at some other revision. The common case should be that the active bookmark will point at the new tip post-rebase.
Sat, 16 Jun 2012 17:05:55 +0900 graft: don't drop the second parent on unsuccessful merge (issue3498) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2012 17:05:55 +0900] rev 17045
graft: don't drop the second parent on unsuccessful merge (issue3498) This replicates the strategy of rebase, which postpones setparents and duplicatecopies after checking the merge stats. Without the second parent, resolve cannot redo merge.
Wed, 27 Jun 2012 02:34:58 +0200 tests: add missing path globbing for Windows in svn tests
Mads Kiilerich <mads@kiilerich.com> [Wed, 27 Jun 2012 02:34:58 +0200] rev 17044
tests: add missing path globbing for Windows in svn tests
Tue, 26 Jun 2012 23:05:25 +0200 fix push of moved bookmark when creating new branch heads
Sune Foldager <cryo@cyanite.org> [Tue, 26 Jun 2012 23:05:25 +0200] rev 17043
fix push of moved bookmark when creating new branch heads The problem occured when pushing a changeset that at the same time creates a new named branch head and moves a bookmark. The code invoked methods that only exist on localrepo instances, so it failed for any other type of remote. The test suite only tested against local remotes.
Tue, 26 Jun 2012 15:08:10 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 26 Jun 2012 15:08:10 -0500] rev 17042
merge with stable
Tue, 26 Jun 2012 14:50:16 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Tue, 26 Jun 2012 14:50:16 -0500] rev 17041
merge with i18n
Fri, 22 Jun 2012 10:19:56 -0300 i18n-pt_BR: synchronized with f8af57c00a29 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 22 Jun 2012 10:19:56 -0300] rev 17040
i18n-pt_BR: synchronized with f8af57c00a29
Fri, 22 Jun 2012 10:14:21 -0300 merge with i18n stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 22 Jun 2012 10:14:21 -0300] rev 17039
merge with i18n
Thu, 21 Jun 2012 18:23:18 +0200 i18n-de: Move policies from header of de.po to http://mercurial.selenic.com/wiki/GermanTranslation stable
Martin Schröder <martinschroeder@vcp-sh.de> [Thu, 21 Jun 2012 18:23:18 +0200] rev 17038
i18n-de: Move policies from header of de.po to http://mercurial.selenic.com/wiki/GermanTranslation
Fri, 22 Jun 2012 12:00:41 -0700 scmutil: speed up new-style range extension
Bryan O'Sullivan <bryano@fb.com> [Fri, 22 Jun 2012 12:00:41 -0700] rev 17037
scmutil: speed up new-style range extension This improves perfrevset performance by 10% for 2222::33333 on a kernel repo.
Tue, 26 Jun 2012 14:32:20 +0200 merge with crew-stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 26 Jun 2012 14:32:20 +0200] rev 17036
merge with crew-stable
Tue, 26 Jun 2012 14:27:33 +0200 subrepo/svn: make rev number retrieval compatible with svn 1.5 (issue2968) stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 26 Jun 2012 14:27:33 +0200] rev 17035
subrepo/svn: make rev number retrieval compatible with svn 1.5 (issue2968) ae2664ee0223 introduced "svn info TARGET@REV" to determine if a certain path exists in the specified revision, but in svn 1.5 the error message "Not a valid URL" yields exit code 0 so the error is not caught. Use "svn list TARGET@REV" instead which works with svn 1.5 and is even faster in some situations.
Tue, 26 Jun 2012 12:17:40 +0200 convert/bzr: make tests work with bzr 2.0 again stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 26 Jun 2012 12:17:40 +0200] rev 17034
convert/bzr: make tests work with bzr 2.0 again bzr ci --commit-time was introduced in 2.1 bzr add without -q prints "adding" in 2.1, "added" in 2.0
Tue, 26 Jun 2012 03:35:22 +0200 tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com> [Tue, 26 Jun 2012 03:35:22 +0200] rev 17033
tests: cleanup of svn url handling The subversion tests used different tricks to create properly encoded URLs, partly due to partial support for different ways of running the tests on windows. Now we only need/support one way of running the tests on windows. Windows URLs should look like 'file:///c:/foo%20bar' and on Unix platforms like 'file:///tmp/baz'. 'pwd' in the test framework will on Windows emit paths like 'c:/foo bar'. Explicit handling of backslashes in paths is thus no longer needed and is removed. Paths on windows do however need an extra '/' compared to other platforms. This change makes test-subrepo-svn.t pass on windows with msys. Other tests might need more work.
Sat, 23 Jun 2012 19:54:08 +0300 test-subrepo-svn.t: partially adapt for Windows
Eduard-Cristian Stefan <alexandrul.ct@gmail.com> [Sat, 23 Jun 2012 19:54:08 +0300] rev 17032
test-subrepo-svn.t: partially adapt for Windows hg forget 'notafile*' is changed to use a name that is valid on Windows so we still get the same error ... but the error message is disabled because it varies with the Windows version.
Sun, 24 Jun 2012 17:06:47 +0200 convert: ignore svn:executable for subversion targets without exec bit support
Mads Kiilerich <mads@kiilerich.com> [Sun, 24 Jun 2012 17:06:47 +0200] rev 17031
convert: ignore svn:executable for subversion targets without exec bit support Calling propset/propdel with subversion 1.6 on FAT gave abort: svn exited with status 256 and made test-convert-hg-svn.t and test-convert-svn-sink.t fail. 1.7 worked. This is a rework of fdee5d614fcc but ignores the executable bit when it isn't supported instead of using an approximation.
Fri, 22 Jun 2012 02:39:52 +0200 tests: add missing 'backup bundle' path glob in test-rebase-collapse.t
Mads Kiilerich <mads@kiilerich.com> [Fri, 22 Jun 2012 02:39:52 +0200] rev 17030
tests: add missing 'backup bundle' path glob in test-rebase-collapse.t Introduced by c8eda7bbdcab.
Fri, 22 Jun 2012 00:52:14 +0200 tests: add missing 'backup bundle' path glob in test-rebase-scenario-global.t
Mads Kiilerich <mads@kiilerich.com> [Fri, 22 Jun 2012 00:52:14 +0200] rev 17029
tests: add missing 'backup bundle' path glob in test-rebase-scenario-global.t Introduced by 50f434510da6.
Thu, 21 Jun 2012 17:37:02 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Thu, 21 Jun 2012 17:37:02 -0500] rev 17028
merge with crew
Thu, 21 Jun 2012 15:10:01 +0200 merge with stable
Martin Geisler <mg@aragost.com> [Thu, 21 Jun 2012 15:10:01 +0200] rev 17027
merge with stable
Mon, 18 Jun 2012 11:16:24 +0200 rebase: improve error message on improper phases stable
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Mon, 18 Jun 2012 11:16:24 +0200] rev 17026
rebase: improve error message on improper phases The previous error message had two issues: The first issue was that it wasn't, in fact, an error but a warning, even though it described a fatal error condition preventing the successful completion of the command. The second was that it didn't mention the immutable changesets, leaving the user guessing at the true cause of the error. The main downside to this change is that we now get an 'abort: can't abort...' message which technically contradicts itself. In this case, I blame that on the two uses we have for the word; if it weren't for backwards compatibility, we could make util.Abort print out 'error: <whatever>'.
Tue, 12 Jun 2012 09:31:04 -0400 subrepo: support Git being named "git.cmd" on Windows (issue3173) stable
Benjamin Pollack <benjamin@bitquabit.com> [Tue, 12 Jun 2012 09:31:04 -0400] rev 17025
subrepo: support Git being named "git.cmd" on Windows (issue3173) Popen does not consider "foo.cmd" equivalent to "foo" on Windows. Unfortunately, the default MSYS Git installation installs only "git.cmd" into the path by default. This patch probes for both possible names on Windows.
Tue, 12 Jun 2012 09:28:55 -0400 subrepo: warn user if Git is not version 1.6.0 or higher stable
Benjamin Pollack <benjamin@bitquabit.com> [Tue, 12 Jun 2012 09:28:55 -0400] rev 17024
subrepo: warn user if Git is not version 1.6.0 or higher
Tue, 19 Jun 2012 19:45:00 +0200 test-http and test-https: partially adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Tue, 19 Jun 2012 19:45:00 +0200] rev 17023
test-http and test-https: partially adapt for Windows
Wed, 20 Jun 2012 02:09:49 +0300 test-subrepo-git.t: adapt for Windows
Eduard-Cristian Stefan <alexandrul.ct@gmail.com> [Wed, 20 Jun 2012 02:09:49 +0300] rev 17022
test-subrepo-git.t: adapt for Windows hg forget 'notafile*' is changed to use a name that is valid on Windows so we still get the same error ... but the error message is disabled because it varies with the Windows version.
Wed, 20 Jun 2012 18:02:01 +0200 test-bookmarks-pushpull: partially adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Wed, 20 Jun 2012 18:02:01 +0200] rev 17021
test-bookmarks-pushpull: partially adapt for Windows The kill call at the end is redundant, as we already have 199: $ hg serve -p $HGPORT -d --pid-file=../hg.pid -E errors.log 200: $ cat ../hg.pid >> $DAEMON_PIDS So there is nothing left that would not already be killed by the $DAEMON_PIDS mechanism.
Tue, 19 Jun 2012 19:28:55 +0200 test-static-http: partially adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Tue, 19 Jun 2012 19:28:55 +0200] rev 17020
test-static-http: partially adapt for Windows
Tue, 19 Jun 2012 17:05:04 +0200 test-bad-pull: partially adjust for Windows
Adrian Buehlmann <adrian@cadifra.com> [Tue, 19 Jun 2012 17:05:04 +0200] rev 17019
test-bad-pull: partially adjust for Windows On a English Windows 7, the testcase fails with $ hg clone http://localhost:$HGPORT/ copy abort: error: No connection could be made because the target machine actively refused it Since the error message on non-English Windows installs are most likely different, we have to glob the entire error message away for Windows.
Thu, 21 Jun 2012 03:05:02 +0200 tests: consistently use printenv.py the same MSYS/Windows-compatible way
Mads Kiilerich <mads@kiilerich.com> [Thu, 21 Jun 2012 03:05:02 +0200] rev 17018
tests: consistently use printenv.py the same MSYS/Windows-compatible way This will remove some reasons some tests are disabled on Windows.
Thu, 21 Jun 2012 03:05:02 +0200 tests: prepare get-with-headers.py for MSYS
Mads Kiilerich <mads@kiilerich.com> [Thu, 21 Jun 2012 03:05:02 +0200] rev 17017
tests: prepare get-with-headers.py for MSYS get-with-headers.py took the http GET parameter as a command line parameter that had to start with '/'. MSYS on windows will mangle such paths. Instead of applying a workaround everywhere (such as an extra '/') we let get-with-headers.py add the mandatory '/'. That is consistent with the url path handling in the Mercurial url class. A few tests sent 'GET ?cmd=...' which is invalid. They will now send 'GET /?cmd=...'. This will not enable any tests for being run on windows - only remove one reason they were disabled.
Wed, 20 Jun 2012 23:41:21 +0200 tests: hghave outer-repo should be true even if a bad repo is found
Mads Kiilerich <mads@kiilerich.com> [Wed, 20 Jun 2012 23:41:21 +0200] rev 17016
tests: hghave outer-repo should be true even if a bad repo is found Only the abort message 'no repository found' is a reliable indication that there is no outer repo.
Wed, 20 Jun 2012 23:41:21 +0200 tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com> [Wed, 20 Jun 2012 23:41:21 +0200] rev 17015
tests: add missing no-outer-repo requirements Outer repos (if any) will now never be touched by the tests. But it is better to run without any repos around the tmp directory.
Wed, 20 Jun 2012 23:41:21 +0200 tests: convert some 'hghave no-outer-repo' to #if
Mads Kiilerich <mads@kiilerich.com> [Wed, 20 Jun 2012 23:41:21 +0200] rev 17014
tests: convert some 'hghave no-outer-repo' to #if In some places we instead use 'hg init' to create a well-known outer repo without any special extensions or other config settings.
Fri, 18 May 2012 12:45:47 -0700 strip: incrementally update the branchheads cache after a strip
Joshua Redstone <joshua.redstone@fb.com> [Fri, 18 May 2012 12:45:47 -0700] rev 17013
strip: incrementally update the branchheads cache after a strip This function augments strip to incrementally update the branchheads cache rather than recompute it from scratch. This speeds up the performance of strip and rebase on repos with long history. The performance optimization only happens if the revisions stripped are all on the same branch and the parents of the stripped revisions are also on that same branch. This adds a few test cases, particularly one that reproduces the extra heads that mpm observed.
Fri, 01 Jun 2012 08:56:17 -0700 localrepo: convert _updatebranchcache from nodespace to revspace
Joshua Redstone <joshua.redstone@fb.com> [Fri, 01 Jun 2012 08:56:17 -0700] rev 17012
localrepo: convert _updatebranchcache from nodespace to revspace _updatebranchcache used to use revlog.reachable. After the switch to revlog.ancestors, we can now clean it up a bit and switch the algorithm from nodes to revs.
Fri, 08 Jun 2012 14:23:31 -0700 discovery: convert legacy part of checkheads to revs from nodes
Joshua Redstone <joshua.redstone@fb.com> [Fri, 08 Jun 2012 14:23:31 -0700] rev 17011
discovery: convert legacy part of checkheads to revs from nodes After a recent switch from revlog.reachable to revlog.ancestors, clean up this old call site, switching it from nodes to revs.
Fri, 08 Jun 2012 14:21:32 -0700 transplant: convert applied() algorithm from nodes to revs
Joshua Redstone <joshua.redstone@fb.com> [Fri, 08 Jun 2012 14:21:32 -0700] rev 17010
transplant: convert applied() algorithm from nodes to revs After a recent switch from revlog.reachable to revlog.ancestors, clean up the code a bit to use revs rather than nodes.
Fri, 08 Jun 2012 08:39:44 -0700 revlog: remove reachable and switch call sites to ancestors
Joshua Redstone <joshua.redstone@fb.com> [Fri, 08 Jun 2012 08:39:44 -0700] rev 17009
revlog: remove reachable and switch call sites to ancestors This change does a trivial conversion of callsites to ancestors. Followon diffs will switch the callsites over to revs.
Fri, 08 Jun 2012 07:59:37 -0700 revlog: add incancestors, a version of ancestors that includes revs listed
Joshua Redstone <joshua.redstone@fb.com> [Fri, 08 Jun 2012 07:59:37 -0700] rev 17008
revlog: add incancestors, a version of ancestors that includes revs listed ancestors() returns the ancestors of revs provided. This func is like that except it also includes the revs themselves in the total set of revs generated.
Thu, 14 Jun 2012 11:43:48 +0200 scmutil: change canonpath to use util.samefile (issue2167)
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 Jun 2012 11:43:48 +0200] rev 17007
scmutil: change canonpath to use util.samefile (issue2167) Fixes (on Windows in cmd.exe): $ hg -R v:\x\a status V:\x\a\bar abort: V:\x\a\bar not under root where v:\x\a is a valid repository with a checked-out file "bar" (Note the difference in casing: "v:\" versus "V:\")
Thu, 14 Jun 2012 11:03:20 +0200 win32.py: let samefile and samedevice work on directories too
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 Jun 2012 11:03:20 +0200] rev 17006
win32.py: let samefile and samedevice work on directories too
Wed, 20 Jun 2012 20:08:57 +0200 rebase: do not add second parent to rebased changeset (drop detach option) (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 20 Jun 2012 20:08:57 +0200] rev 17005
rebase: do not add second parent to rebased changeset (drop detach option) (BC) Rebase now behaves as if --detach was always passed. Non-merges are rebased as non-merges, regardless of their parent being an ancestor of the destination. Merges will usually be rebased as merges unless both of their parents are ancestors of the destination, or one of their parents is pruned when rebased. This only alters the behavior of rebase when using the --source/--rev options. --detach option is deprecated. All test changes were carefully validated.
Wed, 20 Jun 2012 17:40:19 +0400 zsh completion: catch up with 2.2 commands and options
Nikolaj Sjujskij <sterkrig@myopera.com> [Wed, 20 Jun 2012 17:40:19 +0400] rev 17004
zsh completion: catch up with 2.2 commands and options * add completion for phase and graft core commands * add completion for rebase extension * add new options for already defined commands: * commit --amend * import --bypass * manifest --all * merge --tool * revert -C (short for --no-backup) * qpush --exact [mq] * email --body [patchbomb]
Tue, 05 Jun 2012 20:35:34 -0400 revset: add a utility for obtaining the source of a given rev
Matt Harbison <matt_harbison@yahoo.com> [Tue, 05 Jun 2012 20:35:34 -0400] rev 17003
revset: add a utility for obtaining the source of a given rev graft, transplant and rebase all embed a different type of source marker in extra, and each with a different name. The current implementation of each is such that there will never be more than one of these markers on a node. Note that the rebase marker can only be resolved if the source is still present, which excludes the typical rebase usage (without --keep) from consideration (unless the resulting bundle in strip-backup is overlayed). There probably isn't any reason to use rebase --keep as a substitute for transplant or graft at this point, but maybe there was at one point and there are even a few rebases in the hg repo, so it may be of historical interest.
Sun, 13 May 2012 01:12:26 -0400 revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com> [Sun, 13 May 2012 01:12:26 -0400] rev 17002
revset: add a predicate for finding converted changesets This selects changesets added because of repo conversions. For example hg log -r "converted()" # all csets created by a convertion hg log -r "converted(rev)" # the cset converted from rev in the src repo The converted(rev) form is analogous to remote(id), where the remote repo is the source of the conversion. This can be useful for cross referencing an old repository into the current one. The source revision may be the short changeset hash or the full hash from the source repository. The local identifier isn't useful. An interesting ramification of this is if a short revision is specified, it may cause more than one changeset to be selected. (e.g. converted(6) matches changesets with a convert_revision field of 6e..e and 67..0) The convert.hg.saverev option must have been specified when converting the hg source repository for this to work. The other sources automatically embed the converted marker.
Wed, 20 Jun 2012 12:30:16 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 20 Jun 2012 12:30:16 -0500] rev 17001
merge with stable
Wed, 20 Jun 2012 12:29:08 -0500 merge with i18n
Matt Mackall <mpm@selenic.com> [Wed, 20 Jun 2012 12:29:08 -0500] rev 17000
merge with i18n
Mon, 18 Jun 2012 20:07:25 +0200 i18n-de: More corrections for translation of default, and other translations stable
Martin Schröder <martinschroeder@vcp-sh.de> [Mon, 18 Jun 2012 20:07:25 +0200] rev 16999
i18n-de: More corrections for translation of default, and other translations
Fri, 15 Jun 2012 22:07:07 +0200 i18n-de: translate default as Vorgabe stable
Martin Schröder <martinschroeder@vcp-sh.de> [Fri, 15 Jun 2012 22:07:07 +0200] rev 16998
i18n-de: translate default as Vorgabe
Fri, 15 Jun 2012 19:17:35 +0200 i18n-de: Update strings, translated many fuzzy strings stable
Martin Schröder <martinschroeder@vcp-sh.de> [Fri, 15 Jun 2012 19:17:35 +0200] rev 16997
i18n-de: Update strings, translated many fuzzy strings
Mon, 18 Jun 2012 16:42:52 -0300 i18n-pt_BR: synchronized with 0fdd8193c8b5 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 18 Jun 2012 16:42:52 -0300] rev 16996
i18n-pt_BR: synchronized with 0fdd8193c8b5
Mon, 18 Jun 2012 16:21:31 -0300 merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 18 Jun 2012 16:21:31 -0300] rev 16995
merge with i18n
Mon, 18 Jun 2012 20:07:25 +0200 i18n-de: More corrections for translation of default, and other translations
Martin Schröder <martinschroeder@vcp-sh.de> [Mon, 18 Jun 2012 20:07:25 +0200] rev 16994
i18n-de: More corrections for translation of default, and other translations
Wed, 20 Jun 2012 17:04:30 +0200 tests: remove execute permission from two unified test files
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 20 Jun 2012 17:04:30 +0200] rev 16993
tests: remove execute permission from two unified test files
Wed, 20 Jun 2012 17:02:43 +0200 graft: allow -r to specify revisions
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 20 Jun 2012 17:02:43 +0200] rev 16992
graft: allow -r to specify revisions
Wed, 20 Jun 2012 16:49:04 +0200 consistency: use REV instead of REVISION
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 20 Jun 2012 16:49:04 +0200] rev 16991
consistency: use REV instead of REVISION
Wed, 20 Jun 2012 16:46:10 +0200 export: add optional -r to synopsis
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 20 Jun 2012 16:46:10 +0200] rev 16990
export: add optional -r to synopsis It is not already covered by [OPTION]..., because in this case REV... would need to be marked optional.
Wed, 20 Jun 2012 16:44:21 +0200 strip: add optional -r to synopsis
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 20 Jun 2012 16:44:21 +0200] rev 16989
strip: add optional -r to synopsis
Wed, 20 Jun 2012 16:43:09 +0200 qimport: use [FILE]... because if -r is used no file is needed
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 20 Jun 2012 16:43:09 +0200] rev 16988
qimport: use [FILE]... because if -r is used no file is needed
Wed, 20 Jun 2012 16:22:58 +0200 mq: abort if no files or revisions are specified for qimport
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 20 Jun 2012 16:22:58 +0200] rev 16987
mq: abort if no files or revisions are specified for qimport
Tue, 19 Jun 2012 01:43:41 +0200 tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com> [Tue, 19 Jun 2012 01:43:41 +0200] rev 16986
tests: convert some hghave unix-permissions to #if
Tue, 19 Jun 2012 00:20:38 +0200 tests: run test-walk.t on windows
Mads Kiilerich <mads@kiilerich.com> [Tue, 19 Jun 2012 00:20:38 +0200] rev 16985
tests: run test-walk.t on windows A couple of detours and changed paths are used to work around msys path conversion.
Mon, 18 Jun 2012 23:44:11 +0200 tests: better testing of 'glob:glob' in test-walk.t
Mads Kiilerich <mads@kiilerich.com> [Mon, 18 Jun 2012 23:44:11 +0200] rev 16984
tests: better testing of 'glob:glob' in test-walk.t
Mon, 18 Jun 2012 23:44:11 +0200 tests: move tests in test-walk.t using ':' in filenames to conditional section
Mads Kiilerich <mads@kiilerich.com> [Mon, 18 Jun 2012 23:44:11 +0200] rev 16983
tests: move tests in test-walk.t using ':' in filenames to conditional section eol-in-paths will also protect against testing ':' in filenames on FAT.
Sun, 17 Jun 2012 00:27:31 +0200 tests/printenv.py: eliminate trailing spaces on output
Adrian Buehlmann <adrian@cadifra.com> [Sun, 17 Jun 2012 00:27:31 +0200] rev 16982
tests/printenv.py: eliminate trailing spaces on output
Mon, 18 Jun 2012 23:28:56 +0200 tests: fix test-i18n.t after translation update
Mads Kiilerich <mads@kiilerich.com> [Mon, 18 Jun 2012 23:28:56 +0200] rev 16981
tests: fix test-i18n.t after translation update
Mon, 18 Jun 2012 13:01:12 -0500 merge with i18n
Matt Mackall <mpm@selenic.com> [Mon, 18 Jun 2012 13:01:12 -0500] rev 16980
merge with i18n
Sun, 17 Jun 2012 15:57:35 +0200 Corrected hyphenation, translated subrepo help and other strings
Martin Schröder <martinschroeder@vcp-sh.de> [Sun, 17 Jun 2012 15:57:35 +0200] rev 16979
Corrected hyphenation, translated subrepo help and other strings
Fri, 15 Jun 2012 22:07:07 +0200 i18n-de: translate default as Vorgabe
Martin Schröder <martinschroeder@vcp-sh.de> [Fri, 15 Jun 2012 22:07:07 +0200] rev 16978
i18n-de: translate default as Vorgabe
Fri, 15 Jun 2012 19:17:35 +0200 i18n-de: Update strings, translated many fuzzy strings
Martin Schröder <martinschroeder@vcp-sh.de> [Fri, 15 Jun 2012 19:17:35 +0200] rev 16977
i18n-de: Update strings, translated many fuzzy strings
Fri, 15 Jun 2012 07:47:52 +0100 i18n-ru: synchronized with 2255950e1f76
Alexander Sauta <demosito@gmail.com> [Fri, 15 Jun 2012 07:47:52 +0100] rev 16976
i18n-ru: synchronized with 2255950e1f76
Mon, 18 Jun 2012 03:42:28 +0200 tests: remove hghave system-sh from test-pending.t
Mads Kiilerich <mads@kiilerich.com> [Mon, 18 Jun 2012 03:42:28 +0200] rev 16975
tests: remove hghave system-sh from test-pending.t The alternative would have been to add a unix-permissions requirement.
Fri, 15 Jun 2012 00:02:27 +0200 tests: use hghave eol-in-paths to test for support for ':' in filenames and " "
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 16974
tests: use hghave eol-in-paths to test for support for ':' in filenames and " " It is an approximation but seems to work ok ... and testing that 'foo:bar' creates a real file and not just a resource fork is not completely trivial.
Fri, 15 Jun 2012 00:02:27 +0200 tests: use a different evil name in test-hgweb-raw.t
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 16973
tests: use a different evil name in test-hgweb-raw.t The test used a filename with ':' which prevented the test from running on Windows and FAT. It now uses a filename with space and '%' and will thus still exercise proper url escaping.
Fri, 15 Jun 2012 00:02:27 +0200 tests: add some missing #if's / hghave requirements
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 16972
tests: add some missing #if's / hghave requirements Seen on Linux with FAT.
Fri, 15 Jun 2012 00:02:27 +0200 tests: introduce hghave hardlinks
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 16971
tests: introduce hghave hardlinks Some tests can't be run on FAT filesystems because it doesn't support hardlinks.
Fri, 15 Jun 2012 00:02:27 +0200 tests/hghave: test that the inotify unix socket actually can be created
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 16970
tests/hghave: test that the inotify unix socket actually can be created Inotify do not work on FAT filesystems.
Fri, 15 Jun 2012 00:02:27 +0200 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 16969
tests/hghave: test that a fifo actually can be created on the filesystem Some tests were failing on FAT filesystems.
Fri, 15 Jun 2012 00:02:27 +0200 tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 16968
tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles Some feature tests were done in the wrong directory and could thus give the wrong result.
Fri, 15 Jun 2012 17:32:33 +0200 test-merge-tools: adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Jun 2012 17:32:33 +0200] rev 16967
test-merge-tools: adapt for Windows
Thu, 14 Jun 2012 12:54:54 +0200 tests/hghave: extract hghave.py
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 Jun 2012 12:54:54 +0200] rev 16966
tests/hghave: extract hghave.py hghave is degraded to a bare script, moving the functions to hghave.py so they can be shared later on.
Sat, 16 Jun 2012 21:57:42 +0200 test-alias: adapt for Windows
Mads Kiilerich <mads@kiilerich.com> [Sat, 16 Jun 2012 21:57:42 +0200] rev 16965
test-alias: adapt for Windows The test used 'echo' to test '!' style aliases. On Windows 'echo' is handled by cmd and thus behaves very differently from the 'normal' echo command. The simple workaround used here for using the same alias on all platforms is to use 'printf' instead. Msys 'printf' will also handle sh quoting and escaping in cmd. Environment variable expansion with sh syntax is handled by launching sh.
Fri, 15 Jun 2012 21:42:47 +0200 test-hook: adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Jun 2012 21:42:47 +0200] rev 16964
test-hook: adapt for Windows
Fri, 15 Jun 2012 19:59:36 +0200 tests/printenv.py: replace \ with / in output
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Jun 2012 19:59:36 +0200] rev 16963
tests/printenv.py: replace \ with / in output saves us quite a bunch of (glob)'s
Fri, 15 Jun 2012 18:56:16 +0200 test-clone-pull-corruption: adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Jun 2012 18:56:16 +0200] rev 16962
test-clone-pull-corruption: adapt for Windows
Fri, 15 Jun 2012 15:10:19 +0200 test-merge-tools: inline pointless domerge function
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Jun 2012 15:10:19 +0200] rev 16961
test-merge-tools: inline pointless domerge function This also uncovers the exit codes of the 'hg merge' calls
Fri, 15 Jun 2012 01:02:44 +0200 test-bisect: adapt for Windows
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Jun 2012 01:02:44 +0200] rev 16960
test-bisect: adapt for Windows
Fri, 15 Jun 2012 00:39:21 +0200 test-journal-exists: use #if
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Jun 2012 00:39:21 +0200] rev 16959
test-journal-exists: use #if
Thu, 14 Jun 2012 15:13:16 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 14 Jun 2012 15:13:16 -0500] rev 16958
merge with stable
Wed, 30 May 2012 21:47:51 -0300 acl: user docs for the "!" prefix in user or group names
Elifarley Callado Coelho Cruz [Wed, 30 May 2012 21:47:51 -0300] rev 16957
acl: user docs for the "!" prefix in user or group names
Mon, 28 May 2012 19:45:15 -0300 acl: use of "!" prefix in user or group names
Elifarley Callado Coelho Cruz [Mon, 28 May 2012 19:45:15 -0300] rev 16956
acl: use of "!" prefix in user or group names The "!" prefix allows you to prevent anyone except a given user or group to push changesets in a given branch or path. This patch enables a use case suggested by a user (Julien Bonnet): There's a branch that only a given user (or group) should be able to push to, and you don't want to restrict access to any other branch that may be created. With the "!" prefix, you simply deny access to "!givenuser" (or "!@givengroup").
Wed, 30 May 2012 12:55:33 -0700 parsers: add a C function to pack the dirstate
Bryan O'Sullivan <bryano@fb.com> [Wed, 30 May 2012 12:55:33 -0700] rev 16955
parsers: add a C function to pack the dirstate This is about 9 times faster than the Python dirstate packing code. The relatively small speedup is due to the poor locality and memory access patterns caused by traversing dicts and other boxed Python values.
Fri, 08 Jun 2012 05:31:28 +0300 test-convert: disable autocrlf for git
Eduard-Cristian Stefan <alexandrul.ct@gmail.com> [Fri, 08 Jun 2012 05:31:28 +0300] rev 16954
test-convert: disable autocrlf for git
Mon, 11 Jun 2012 11:15:14 +0200 debugwalk: observe ui.slash config option
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Jun 2012 11:15:14 +0200] rev 16953
debugwalk: observe ui.slash config option
Sat, 09 Jun 2012 14:20:25 +0200 test-commit: remove extra cd .. stable
Adrian Buehlmann <adrian@cadifra.com> [Sat, 09 Jun 2012 14:20:25 +0200] rev 16952
test-commit: remove extra cd .. This specific cd .. leaves the base directory of the test ($TESTTMP). Removing it avoids that test artifacts (e.g. files) are created outside of the base directory.
Wed, 13 Jun 2012 20:14:28 +0200 merge with stable
Martin Geisler <martin@geisler.net> [Wed, 13 Jun 2012 20:14:28 +0200] rev 16951
merge with stable
Tue, 29 May 2012 07:07:10 -0500 notify: various fixes to docstring stable
David Champion <dgc@uchicago.edu> [Tue, 29 May 2012 07:07:10 -0500] rev 16950
notify: various fixes to docstring Typo corrections, grammar adjustments, clarity improvements.
Wed, 13 Jun 2012 02:44:46 +0200 help: sort results from keyword search
Mads Kiilerich <mads@kiilerich.com> [Wed, 13 Jun 2012 02:44:46 +0200] rev 16949
help: sort results from keyword search
Wed, 13 Jun 2012 02:29:47 +0200 tests: reintroduce globs in test-convert-authormap.t
Mads Kiilerich <mads@kiilerich.com> [Wed, 13 Jun 2012 02:29:47 +0200] rev 16948
tests: reintroduce globs in test-convert-authormap.t They are needed on windows and were accidentally removed in eaf6a6d7f015.
Tue, 12 Jun 2012 16:20:38 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 12 Jun 2012 16:20:38 -0500] rev 16947
merge with stable
Tue, 12 Jun 2012 16:20:20 -0500 merge with crew stable
Matt Mackall <mpm@selenic.com> [Tue, 12 Jun 2012 16:20:20 -0500] rev 16946
merge with crew
Fri, 01 Jun 2012 11:15:00 -0300 tests: removed unneeded section in acl configuration: 'extensions'
Elifarley Callado Coelho Cruz [Fri, 01 Jun 2012 11:15:00 -0300] rev 16945
tests: removed unneeded section in acl configuration: 'extensions' Declaring 'acl' in the [extensions] section doesn't change anything.
Fri, 01 Jun 2012 15:26:46 -0700 config: use util.compilere to compile regexps
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:26:46 -0700] rev 16944
config: use util.compilere to compile regexps
Fri, 01 Jun 2012 15:26:20 -0700 matcher: use re2 bindings if available
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:26:20 -0700] rev 16943
matcher: use re2 bindings if available There are two sets of Python re2 bindings available on the internet; this code works with both. Using re2 can greatly improve "hg status" performance when a .hgignore file becomes even modestly complex. Example: "hg status" on a clean tree with 134K files, where "hg debugignore" reports a regexp 4256 bytes in size. no .hgignore: 1.76 sec Python re: 2.79 re2: 1.82 The overhead of regexp matching drops from 1.03 seconds with stock re to 0.06 with re2. (For comparison, a git repo with the same contents and .gitignore file runs "git status -s" in 1.71 seconds, i.e. only slightly faster than hg with re2.)
Thu, 07 Jun 2012 01:42:50 +0200 help: fix extension commands help in keyword search
Olav Reinert <seroton10@gmail.com> [Thu, 07 Jun 2012 01:42:50 +0200] rev 16942
help: fix extension commands help in keyword search This patch fixes the synopsis shown for extension commands in keyword search results. A previous patch erroneously caused the extension synopsis to be shown instead. Test cases for keyword search are missing, so I added a one.
Tue, 12 Jun 2012 14:18:18 +0200 localrepo: lowercase "unexpected response" message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16941
localrepo: lowercase "unexpected response" message
Tue, 12 Jun 2012 14:18:18 +0200 ui: lowercase "no username" warning
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16940
ui: lowercase "no username" warning
Tue, 12 Jun 2012 14:18:18 +0200 ui: lowercase "not trusting file" warning message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16939
ui: lowercase "not trusting file" warning message
Tue, 12 Jun 2012 14:18:18 +0200 ui: lowercase ConfigError warning message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16938
ui: lowercase ConfigError warning message
Tue, 12 Jun 2012 14:18:18 +0200 cmdutil: lowercase finddate status message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16937
cmdutil: lowercase finddate status message This message is output by 'hg revert -d DATE' and 'hg update -d DATE'.
Tue, 12 Jun 2012 14:18:18 +0200 bisect: lowercase status message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16936
bisect: lowercase status message
Tue, 12 Jun 2012 14:18:18 +0200 serve: lowercase "no repo here" message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16935
serve: lowercase "no repo here" message
Tue, 12 Jun 2012 14:18:18 +0200 debuginstall: lowercase status messages
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16934
debuginstall: lowercase status messages
Tue, 12 Jun 2012 14:18:18 +0200 dispatch: lowercase --time message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16933
dispatch: lowercase --time message
Tue, 12 Jun 2012 14:18:18 +0200 win32text: lowercase warning message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16932
win32text: lowercase warning message
Tue, 12 Jun 2012 14:18:18 +0200 patchbomb: lowercase status messages
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16931
patchbomb: lowercase status messages
Tue, 12 Jun 2012 14:18:18 +0200 purge: lowercase messages
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16930
purge: lowercase messages
Tue, 12 Jun 2012 14:18:18 +0200 mq: lowercase warning messages
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16929
mq: lowercase warning messages
Tue, 12 Jun 2012 14:18:18 +0200 largefiles: lowercase messages
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16928
largefiles: lowercase messages
Tue, 12 Jun 2012 14:18:18 +0200 gpg: lowercase messages
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16927
gpg: lowercase messages
Tue, 12 Jun 2012 14:18:18 +0200 fetch: lowercase abort message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16926
fetch: lowercase abort message
Tue, 12 Jun 2012 14:18:18 +0200 convert: lowercase status and abort messages
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16925
convert: lowercase status and abort messages
Tue, 12 Jun 2012 14:18:18 +0200 churn: lowercase message
Martin Geisler <mg@aragost.com> [Tue, 12 Jun 2012 14:18:18 +0200] rev 16924
churn: lowercase message
Mon, 11 Jun 2012 17:45:36 +0200 test-parse-date: move remaining date parsing tests from test-log
Martin Geisler <mg@aragost.com> [Mon, 11 Jun 2012 17:45:36 +0200] rev 16923
test-parse-date: move remaining date parsing tests from test-log
Mon, 11 Jun 2012 17:41:55 +0200 test-log: removed tests already covered by test-parse-date
Martin Geisler <mg@aragost.com> [Mon, 11 Jun 2012 17:41:55 +0200] rev 16922
test-log: removed tests already covered by test-parse-date
Mon, 11 Jun 2012 17:40:18 +0200 test-parse-date: remove cruft from 8c6f823efcc9
Martin Geisler <mg@aragost.com> [Mon, 11 Jun 2012 17:40:18 +0200] rev 16921
test-parse-date: remove cruft from 8c6f823efcc9 The test contained what looks like a copy-paste mistake.
Tue, 12 Jun 2012 12:10:47 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 12 Jun 2012 12:10:47 +0200] rev 16920
merge with stable
Tue, 12 Jun 2012 12:05:52 +0200 archive: make progress only show files that are actually archived stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 12 Jun 2012 12:05:52 +0200] rev 16919
archive: make progress only show files that are actually archived Before this, files that are excluded (or not included) were shown when using progress bar or --debug. Reported by Andrew Shadura.
Mon, 11 Jun 2012 19:57:25 +0200 test-hardlinks: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Jun 2012 19:57:25 +0200] rev 16918
test-hardlinks: enable for Windows
Mon, 11 Jun 2012 19:18:36 +0200 test-command-template: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Jun 2012 19:18:36 +0200] rev 16917
test-command-template: enable for Windows
Mon, 11 Jun 2012 19:04:18 +0200 test-rollback: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Jun 2012 19:04:18 +0200] rev 16916
test-rollback: enable for Windows but without the part that needs serve
Mon, 11 Jun 2012 13:41:02 +0200 test-init: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Jun 2012 13:41:02 +0200] rev 16915
test-init: enable for Windows On Windows, we can't create a directory with the name " ", as that is not a valid name for a directory.
Mon, 11 Jun 2012 14:09:35 +0200 test-run-tests: add tests for "#if no-false" and no-true
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Jun 2012 14:09:35 +0200] rev 16914
test-run-tests: add tests for "#if no-false" and no-true
Mon, 11 Jun 2012 01:40:51 +0200 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Jun 2012 01:40:51 +0200] rev 16913
tests: add missing trailing 'cd ..' Many tests didn't change back from subdirectories at the end of the tests ... and they don't have to. The missing 'cd ..' could always be added when another test case is added to the test file. This change do that tests (99.5%) consistently end up in $TESTDIR where they started, thus making it simpler to extend them or move them around.
Mon, 11 Jun 2012 01:38:32 +0200 tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Jun 2012 01:38:32 +0200] rev 16912
tests: cleanup of tests that got lost in their own nested directories Some tests ended up in a directory several directories deeper than $TESTTMP, usually because some 'cd ..' had been forgotten between different test cases. Add 'cd ..' where they are missing so the tests get back where they started.
Mon, 11 Jun 2012 01:08:39 +0200 tests: cleanup of tests that ended up outside $TESTTMP
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Jun 2012 01:08:39 +0200] rev 16911
tests: cleanup of tests that ended up outside $TESTTMP No harm done, but it might confuse later on.
Sun, 10 Jun 2012 18:59:51 +0200 tests: remove 'hghave symlink' from test-import-git.t
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:59:51 +0200] rev 16910
tests: remove 'hghave symlink' from test-import-git.t The test had a long chain of commits depending on execbits in some of first commits. The hashes are checked throughout the file, so there was no elegant way to make it pass both with and without execbits. We now rollback the execbits-or-not commits and make a stable change instead. The hash chain is thus updated once but is now a bit more stable. The test coverage should be unaltered.
Sun, 10 Jun 2012 18:59:13 +0200 tests: remove 'hghave symlink' from test-convert-svn-sink.t
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:59:13 +0200] rev 16909
tests: remove 'hghave symlink' from test-convert-svn-sink.t The symlink was present all over the test and could not easily be guarded with #if. Symlink testing is now moved to a separate #if section. All the relevant test coverage should unaltered.
Sun, 10 Jun 2012 18:50:42 +0200 tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:50:42 +0200] rev 16908
tests: convert some 'hghave symlink' to #if This will enable some tests for windows.
Sun, 10 Jun 2012 18:50:42 +0200 tests: drop a couple of unnecessary 'hghave symlink'
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:50:42 +0200] rev 16907
tests: drop a couple of unnecessary 'hghave symlink'
Sun, 10 Jun 2012 18:50:42 +0200 tests: use the right directory for running hghave from run-tests.py
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:50:42 +0200] rev 16906
tests: use the right directory for running hghave from run-tests.py
Sun, 10 Jun 2012 18:50:42 +0200 tests: make .t tests stop immediately if a cd fails
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:50:42 +0200] rev 16905
tests: make .t tests stop immediately if a cd fails This prevents tests from escaping from TESTTMP as a consequence of a failing directory creation.
Sun, 10 Jun 2012 18:28:42 +0200 test-remove-new: integrate into test-remove.t
Adrian Buehlmann <adrian@cadifra.com> [Sun, 10 Jun 2012 18:28:42 +0200] rev 16904
test-remove-new: integrate into test-remove.t
Sun, 10 Jun 2012 17:35:09 +0200 test-bundle: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Sun, 10 Jun 2012 17:35:09 +0200] rev 16903
test-bundle: enable for Windows
Sun, 10 Jun 2012 17:10:53 +0200 test-rename.t: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Sun, 10 Jun 2012 17:10:53 +0200] rev 16902
test-rename.t: enable for Windows
Sun, 10 Jun 2012 14:41:14 +0200 tests: consistently use a HGEDITOR pattern that works with msys on windows
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 14:41:14 +0200] rev 16901
tests: consistently use a HGEDITOR pattern that works with msys on windows Removing the need for an executable sh script that can be run from a native windows application enables some tests for running on windows.
Sun, 10 Jun 2012 14:14:52 +0200 tests: glob the remaining 'saved backup bundle to' to prepare for windows
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 14:14:52 +0200] rev 16900
tests: glob the remaining 'saved backup bundle to' to prepare for windows
Sun, 10 Jun 2012 14:14:05 +0200 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 14:14:05 +0200] rev 16899
tests: convert some 'hghave execbit' to #if This enables some new tests for running on windows.
Sun, 10 Jun 2012 13:01:40 +0200 tests: change odd uses of 'if hghave' to #if
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 13:01:40 +0200] rev 16898
tests: change odd uses of 'if hghave' to #if
Sun, 10 Jun 2012 03:05:59 +0200 tests/run-tests: avoid C:/ in arguments
Adrian Buehlmann <adrian@cadifra.com> [Sun, 10 Jun 2012 03:05:59 +0200] rev 16897
tests/run-tests: avoid C:/ in arguments MSYS replaces C:/... in arguments with C;... as it interprets the C:/ as a colon separated POSIX path list. The colon is replaced with ; (path separator on Windows) according to http://www.mingw.org/wiki/Posix_path_conversion So we must not replace \ with / for neither $TESTTMP nor $TESTDIR, but we have to keep replacing \ with / for the Popen4 call of function hghave. If we don't do the latter, test-run-tests.t will fail with $ python run-tests.py --local test-run-tests.t --- C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t +++ C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t.err @@ -70,6 +70,7 @@ tested #else $ echo skipped + skipped #endif #if false An additional tweak in test-ssh.t is needed that globs away an encoded path, as it can't be translated back to $TESTTMP, because the backslashes in the output have been already encoded as %5C. This patch makes test-ssh.t pass in MSYS on Windows.
Sat, 09 Jun 2012 14:20:25 +0200 test-commit: remove extra cd ..
Adrian Buehlmann <adrian@cadifra.com> [Sat, 09 Jun 2012 14:20:25 +0200] rev 16896
test-commit: remove extra cd .. This specific cd .. leaves the base directory of the test ($TESTTMP). Removing it avoids that test artifacts (e.g. files) are created outside of the base directory.
Fri, 08 Jun 2012 23:37:11 +0200 help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com> [Fri, 08 Jun 2012 23:37:11 +0200] rev 16895
help: test keyword search in translated text. Tests that help keyword search is able to search the translated help text when using a non-English language.
Fri, 08 Jun 2012 05:49:50 +0300 test-mq-subrepo-svn: enable for Windows
Eduard-Cristian Stefan <alexandrul.ct@gmail.com> [Fri, 08 Jun 2012 05:49:50 +0300] rev 16894
test-mq-subrepo-svn: enable for Windows
Fri, 08 Jun 2012 05:37:06 +0300 test-convert-git: remove the read-only attribute of repository files
Eduard-Cristian Stefan <alexandrul.ct@gmail.com> [Fri, 08 Jun 2012 05:37:06 +0300] rev 16893
test-convert-git: remove the read-only attribute of repository files Git object files are stored read-only in the filesystem. Trying to remove a read-only file on windows will fail with access denied, so we have to make them writeable before they can be removed.
Fri, 08 Jun 2012 05:31:28 +0300 test-convert: disable autocrlf for git
Eduard-Cristian Stefan <alexandrul.ct@gmail.com> [Fri, 08 Jun 2012 05:31:28 +0300] rev 16892
test-convert: disable autocrlf for git Git might have autocrlf=true as a global or default setting, especially on windows. That is not expected in the tests and can cause + warning: LF will be replaced by CRLF in d/b. + The file will have its original line endings in your working directory. Explicitly setting it false will make the test pass in some setups - but still not out of the box.
Fri, 08 Jun 2012 15:11:05 +0200 tests/hghave: implement #if true / #if false
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 16891
tests/hghave: implement #if true / #if false For unconditionally testing / skipping a section. Useful for testing the test infrastructure in test-run-tests.t and for debugging/developing tests.
Fri, 08 Jun 2012 15:11:05 +0200 tests/run-tests: use $TMP on Windows (issue3490)
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 16890
tests/run-tests: use $TMP on Windows (issue3490) This is just a short-term workaround for that issue. More work needs to be done on scmutil.canonpath & friends. $TMP on Windows is specified to be defined, and it has correct casing, so we can use that as the default dir for tempfile.mkdtemp on Windows.
Fri, 08 Jun 2012 15:11:05 +0200 test-import: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 16889
test-import: enable for Windows
Fri, 08 Jun 2012 15:11:05 +0200 test-import: remove unneeded chmod call
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 16888
test-import: remove unneeded chmod call As pointed out by Mads, setting the x bit on dummypatch.py is unneeded, because it is called with 'python ../dummypatch.py'.
Fri, 08 Jun 2012 15:11:05 +0200 test-log: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 16887
test-log: enable for Windows
Fri, 08 Jun 2012 15:11:05 +0200 test-revert: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 16886
test-revert: enable for Windows
Thu, 07 Jun 2012 15:55:12 +0200 merge heads
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 07 Jun 2012 15:55:12 +0200] rev 16885
merge heads
Thu, 07 Jun 2012 15:54:40 +0200 help: fix 'hg help -k' matching an extension without docs
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 07 Jun 2012 15:54:40 +0200] rev 16884
help: fix 'hg help -k' matching an extension without docs getattr is not needed, __doc__ always exists and defaults to None
Mon, 04 Jun 2012 14:46:42 -0700 revlog: zlib.error sent to the user (issue3424)
Brad Hall <bhall@fb.com> [Mon, 04 Jun 2012 14:46:42 -0700] rev 16883
revlog: zlib.error sent to the user (issue3424) Give the user the zlib error message instead of a backtrace when decompression fails.
Sat, 09 Jun 2012 19:13:24 -0600 statichttprepo: don't send Range header when requesting entire file stable
Alexander Boyd <alex@opengroove.org> [Sat, 09 Jun 2012 19:13:24 -0600] rev 16882
statichttprepo: don't send Range header when requesting entire file When requesting files using statichttprepo.httprangereader, a request for the entire file is sent with a Range: bytes=0- header. This causes problems with web servers such as Cherokee that return an HTTP 416 when an empty file is requested in this way, which in turn cause some repository clone attempts to fail. This patch omits the Range header when the entire file is being requested, which fixes the problem.
Wed, 06 Jun 2012 21:17:33 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 06 Jun 2012 21:17:33 -0500] rev 16881
merge with stable
Wed, 06 Jun 2012 21:17:20 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Wed, 06 Jun 2012 21:17:20 -0500] rev 16880
merge with i18n
Tue, 05 Jun 2012 10:09:17 -0300 merge with i18n stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 05 Jun 2012 10:09:17 -0300] rev 16879
merge with i18n
Tue, 05 Jun 2012 07:57:04 +0100 i18n-ru: synchronized with 4cf41c333e74 stable
Alexander Sauta <demosito@gmail.com> [Tue, 05 Jun 2012 07:57:04 +0100] rev 16878
i18n-ru: synchronized with 4cf41c333e74
Tue, 05 Jun 2012 13:33:52 -0500 update: fix help regarding update to ancestor stable
Kevin Bullock <kbullock@ringworld.org> [Tue, 05 Jun 2012 13:33:52 -0500] rev 16877
update: fix help regarding update to ancestor As pointed out on the user mailing list, hg will update just as happily to an ancestor if there are uncommitted changes as to a descendant.
Wed, 06 Jun 2012 16:44:17 +0100 bugzilla: stop bugs always being marked as fixed in xmlrpc (issue3484) stable
Jim Hague <jim.hague@acm.org> [Wed, 06 Jun 2012 16:44:17 +0100] rev 16876
bugzilla: stop bugs always being marked as fixed in xmlrpc (issue3484) Bugs should only be marked fixed if the comment parser gives them the fixed state. xmlrpc+email got this right, xmlrpc screwed it up.
Tue, 05 Jun 2012 22:46:14 +0200 test-add: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Tue, 05 Jun 2012 22:46:14 +0200] rev 16875
test-add: enable for Windows
Tue, 05 Jun 2012 23:13:45 +0200 test-addremove: remove bits about con.xml
Adrian Buehlmann <adrian@cadifra.com> [Tue, 05 Jun 2012 23:13:45 +0200] rev 16874
test-addremove: remove bits about con.xml Windows reserved filename warnings are already enough tested in test-add.t. This enables the test for Windows.
Tue, 05 Jun 2012 16:52:20 -0700 util: simplify queue management in chunkbuffer
Bryan O'Sullivan <bryano@fb.com> [Tue, 05 Jun 2012 16:52:20 -0700] rev 16873
util: simplify queue management in chunkbuffer This also fixes a small wire protocol performance regression.
Sun, 27 May 2012 18:25:04 +0200 hghave: wrap command in 'sh -c "..."' for has_pyflakes()
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 May 2012 18:25:04 +0200] rev 16872
hghave: wrap command in 'sh -c "..."' for has_pyflakes() Without this, the has_pyflakes() check always fails in MSYS on Windows.
Mon, 04 Jun 2012 17:57:57 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 04 Jun 2012 17:57:57 -0500] rev 16871
merge with stable
Tue, 05 Jun 2012 00:32:18 +0200 help: fix keyword search result formatting
Olav Reinert <seroton10@gmail.com> [Tue, 05 Jun 2012 00:32:18 +0200] rev 16870
help: fix keyword search result formatting This patch fixes the broken formatting of keyword search results. Some blank lines were missing from the RST markup, which caused markup to be printed.
Mon, 04 Jun 2012 17:22:09 -0500 help: drop -a from heads syntax summary (issue3483) stable
Matt Mackall <mpm@selenic.com> [Mon, 04 Jun 2012 17:22:09 -0500] rev 16869
help: drop -a from heads syntax summary (issue3483)
Fri, 01 Jun 2012 15:44:13 -0700 revlog: add optional stoprev arg to revlog.ancestors()
Joshua Redstone <joshua.redstone@fb.com> [Fri, 01 Jun 2012 15:44:13 -0700] rev 16868
revlog: add optional stoprev arg to revlog.ancestors() This will be used as a step in removing reachable() in a future diff. Doing it now because bryano is in the process of rewriting ancestors in C. This depends on bryano's patch to replace *revs with revs in the declaration of revlog.ancestors.
Fri, 01 Jun 2012 12:45:16 -0700 revlog: descendants(*revs) becomes descendants(revs) (API)
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 12:45:16 -0700] rev 16867
revlog: descendants(*revs) becomes descendants(revs) (API) Once again making the API more rational, as with ancestors.
Fri, 01 Jun 2012 12:37:18 -0700 revlog: ancestors(*revs) becomes ancestors(revs) (API)
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 12:37:18 -0700] rev 16866
revlog: ancestors(*revs) becomes ancestors(revs) (API) Accepting a variable number of arguments as the old API did is deeply ugly, particularly as it means the API can't be extended with new arguments. Partly as a result, we have at least three different implementations of the same ancestors algorithm (!?). Most callers were forced to call ancestors(*somelist), adding to both inefficiency and ugliness.
Tue, 29 May 2012 23:26:55 +0200 config: make sortdict keys() and iterkeys() methods respect the item order
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 29 May 2012 23:26:55 +0200] rev 16865
config: make sortdict keys() and iterkeys() methods respect the item order The config.sortdict class is a simple "sorted dictionary" container class, based on python's regular dict container. The main difference compared to regular dicts is that sortdicts remember the order in which items have been added to it. Without this patch the items() method returns the sortdict elements in the right order. However, getting the list of keys by using the keys() or iterkeys() methods, and consequencly, looping through the container elements in a for loop does not respect that order. This patch fixes this problem.
Mon, 04 Jun 2012 16:59:57 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 04 Jun 2012 16:59:57 -0500] rev 16864
merge with stable
Fri, 01 Jun 2012 15:19:08 -0700 parsers: replace magic number 64 with symbolic constant
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:19:08 -0700] rev 16863
parsers: replace magic number 64 with symbolic constant
Fri, 01 Jun 2012 15:50:22 -0700 revset: introduce and use _revsbetween
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:50:22 -0700] rev 16862
revset: introduce and use _revsbetween This is similar in spirit to revlog.nodesbetween, but less ambitious, much simpler, and ~2x faster.
Fri, 01 Jun 2012 15:50:22 -0700 revset: implement dagrange directly
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:50:22 -0700] rev 16861
revset: implement dagrange directly This is much faster than the older implementation (~8x).
Fri, 01 Jun 2012 15:50:22 -0700 revset: turn dagrange into a function
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:50:22 -0700] rev 16860
revset: turn dagrange into a function
Fri, 01 Jun 2012 15:50:22 -0700 revset: drop unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:50:22 -0700] rev 16859
revset: drop unreachable code
Fri, 01 Jun 2012 15:50:22 -0700 perf: add a benchmark for revrange
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 15:50:22 -0700] rev 16858
perf: add a benchmark for revrange
Mon, 04 Jun 2012 21:40:38 +0200 test-tags: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Mon, 04 Jun 2012 21:40:38 +0200] rev 16857
test-tags: enable for Windows It turns out that MSYS does have a chmod.exe, but it has no effect. So, the inserted "#if unix-permissions" is somewhat redundant, as the test would pass without it as well: it would simply write the tag cache, despite what the comment says. But I'm actually in favor of inserting the #if, as it makes it clearer what's going on.
Mon, 04 Jun 2012 21:09:54 +0200 tests: roll test-copy2.t into test-copy.t
Adrian Buehlmann <adrian@cadifra.com> [Mon, 04 Jun 2012 21:09:54 +0200] rev 16856
tests: roll test-copy2.t into test-copy.t
Sun, 03 Jun 2012 17:49:04 +0200 help: fix keyword search output for extension commands
Olav Reinert <seroton10@gmail.com> [Sun, 03 Jun 2012 17:49:04 +0200] rev 16855
help: fix keyword search output for extension commands This patch fixes the help keyword search "hg help -k" to show correct results in the section listing extension commands.
Sat, 02 Jun 2012 11:28:43 +0200 help: format all output using RST
Olav Reinert <seroton10@gmail.com> [Sat, 02 Jun 2012 11:28:43 +0200] rev 16854
help: format all output using RST This change is the last patch needed to implement help text generation based only on formatting a single text object marked up with RST.
Sat, 02 Jun 2012 11:25:40 +0200 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com> [Sat, 02 Jun 2012 11:25:40 +0200] rev 16853
help: format command and option list help using RST This patch changes the function which generates help text about commands and options to use RST formatting. Tables describing options have been formatted using RST table markup for some time already, so their appearance does not change. Command lists, however, change appearance. To format non-verbose command lists, RST field list markup was chosen, because it resembles the old format: <http://docutils.sourceforge.net/docs/user/rst/quickref.html#field-lists> In the old (hand-coded) format of non-verbose command lists, the left column is 12 characters wide. Our minirst implementation formats field lists with a left column 14 characters wide, so this patch changes the appearance of help output correspondingly: <http://markmail.org/message/krl4cxopsnii7s6z?q=mercurial+reinert+from:%22Olav+Reinert%22&page=2> The minirst markup most closely resembling the old verbose command lists is definition lists. But using it would cause a blank line to be inserted between each command definition, making the output excessively long, and no more useful than before. To avoid this, I chose to use field lists also for verbose command help, resulting in output like this example: add add the specified files on the next commit annotate, blame show changeset information by line for each file clone make a copy of an existing repository commit, ci commit the specified files or all outstanding changes diff diff repository (or selected files) export dump the header and diffs for one or more changesets forget forget the specified files on the next commit init create a new repository in the given directory log, history show revision history of entire repository or files merge merge working directory with another revision phase set or show the current phase name pull pull changes from the specified source push push changes to the specified destination qdiff diff of the current patch and subsequent modifications qinit init a new queue repository (DEPRECATED) qnew create a new patch qpop pop the current patch off the stack qpush push the next patch onto the stack qrefresh update the current patch remove, rm remove the specified files on the next commit serve start stand-alone webserver status, st show changed files in the working directory summary, sum summarize working directory state update, up, checkout, co update working directory (or switch revisions) This change is a move towards generating all help text as a list of strings marked up with RST.
Sat, 02 Jun 2012 11:22:33 +0200 help: format extension lists using RST
Olav Reinert <seroton10@gmail.com> [Sat, 02 Jun 2012 11:22:33 +0200] rev 16852
help: format extension lists using RST This change is a move towards generating all help text as a list of strings marked up with RST.
Sun, 03 Jun 2012 09:06:15 +0200 test-revset: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Sun, 03 Jun 2012 09:06:15 +0200] rev 16851
test-revset: enable for Windows In MSYS, the test fails like this if the hghave exit at the beginning is removed: --- C:\Users\adi\hgrepos\hg-main\tests\test-revset.t +++ C:\Users\adi\hgrepos\hg-main\tests\test-revset.t.err @@ -58,7 +58,7 @@ $ hg co 3 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg branch /a/b/c/ - marked working directory as branch /a/b/c/ + marked working directory as branch a:/b/c/ (branches are permanent and global, did you want a bookmark?) $ hg ci -Aqm"5 bug" @@ -252,7 +252,7 @@ 2 a-b-c- 3 +a+b+c+ 4 -a-b-c- - 5 /a/b/c/ + 5 a:/b/c/ 6 _a_b_c_ 7 .a.b.c. $ log 'children(ancestor(4,5))' due to the posix path conversion done by MSYS globally, as explained here http://www.mingw.org/wiki/Posix_path_conversion The solution is a bit lame, but it is simple and works: don't use strings that look like '/a/b', in order not to trigger the path magic done by MSYS. So, if we can agree not to insist on testing branch names starting with '/', then this relatively simple patch makes the test pass both on Windows with MSYS and Linux.
Mon, 04 Jun 2012 15:43:16 +0300 graft: restore config option on correct ui stable
Idan Kamara <idankk86@gmail.com> [Mon, 04 Jun 2012 15:43:16 +0300] rev 16850
graft: restore config option on correct ui
Mon, 04 Jun 2012 18:40:31 +0200 tests: roll test-commit-copy.t into test-commit.t
Adrian Buehlmann <adrian@cadifra.com> [Mon, 04 Jun 2012 18:40:31 +0200] rev 16849
tests: roll test-commit-copy.t into test-commit.t
Mon, 04 Jun 2012 16:59:34 +0200 base85: cast Py_ssize_t values to int (issue3481)
Adrian Buehlmann <adrian@cadifra.com> [Mon, 04 Jun 2012 16:59:34 +0200] rev 16848
base85: cast Py_ssize_t values to int (issue3481) If it outputs a nonsense value, no harm done, it was nonsense to start with.
Mon, 04 Jun 2012 19:05:22 +0200 tests: roll test-clone-failure.t into test-clone.t
Adrian Buehlmann <adrian@cadifra.com> [Mon, 04 Jun 2012 19:05:22 +0200] rev 16847
tests: roll test-clone-failure.t into test-clone.t
Fri, 01 Jun 2012 13:38:18 +0200 test-clone-failure: enable for Windows using #if
Adrian Buehlmann <adrian@cadifra.com> [Fri, 01 Jun 2012 13:38:18 +0200] rev 16846
test-clone-failure: enable for Windows using #if
Mon, 04 Jun 2012 10:45:56 +0400 help: fix search with `-k` option in non-ASCII locales
Nikolaj Sjujskij <sterkrig@myopera.com> [Mon, 04 Jun 2012 10:45:56 +0400] rev 16845
help: fix search with `-k` option in non-ASCII locales Keyword search in help (introduced in 497deec204d1 and a17983680f12 by Augie Fackler) tries to translate already translated strings, which results in Unicode errors in gettext when non-ASCII locale is used. Also command descriptions should be translated before searching there (thanks to FUJIWARA Katsunori for pointing this out and actual fix), (issue3482).
Mon, 04 Jun 2012 18:03:23 +0200 hgweb: fixes linebreak location in gitweb filediff.tmpl view stable
wujek srujek <wujek.srujek@googlemail.com> [Mon, 04 Jun 2012 18:03:23 +0200] rev 16844
hgweb: fixes linebreak location in gitweb filediff.tmpl view It is consistent with other templates now and doesn't cause the help link to (incorrectly) appear on the next line.
Sun, 03 Jun 2012 19:35:45 +0200 test-paths.t: enable for Windows using #if
Adrian Buehlmann <adrian@cadifra.com> [Sun, 03 Jun 2012 19:35:45 +0200] rev 16843
test-paths.t: enable for Windows using #if If the no-msys exit at the beginning is removed, the test fails on Windows with MSYS with: --- C:\Users\adi\hgrepos\hg-main\tests\test-paths.t +++ C:\Users\adi\hgrepos\hg-main\tests\test-paths.t.err @@ -24,7 +24,7 @@ expand = $TESTTMP/a/foo/bar (glob) $ SOMETHING=/foo hg paths dupe = $TESTTMP/b (glob) - expand = /foo/bar + expand = c:/MinGW/msys/1.0/foo/bar $ hg paths -q dupe expand caused by http://www.mingw.org/wiki/Posix_path_conversion .
Fri, 01 Jun 2012 02:25:12 +0200 tests: introduce c-style conditional sections in .t tests
Mads Kiilerich <mads@kiilerich.com> [Fri, 01 Jun 2012 02:25:12 +0200] rev 16842
tests: introduce c-style conditional sections in .t tests This makes it possible to have conditional sections like: #if windows $ echo foo foo #else $ echo bar bar #endif The directives and skipped sections are treated like comments, so don't interleave them with commands and their output. The parameters to #if are evaluated while preparing the test by passing them over to hghave. Requirements can thus be negated with 'no-' prefix, and multiple requirements must all be true to return true.
Wed, 30 May 2012 14:28:57 +0200 run-tests: don't add python lines to expected dict
Adrian Buehlmann <adrian@cadifra.com> [Wed, 30 May 2012 14:28:57 +0200] rev 16841
run-tests: don't add python lines to expected dict For test input lines of *.t files starting with ' >>> ', the code block for ' >>> ' 609: if l.startswith(' >>> '): # python inlines 610: after.setdefault(pos, []).append(l) was (unsurprisingly) executed, but because there was an "if" instead of an "elif" on the condition "l.startswith(' ... ')", program execution proceeded to line 636 635: elif l.startswith(' '): # results 636: # queue up a list of expected results 637: expected.setdefault(pos, []).append(l[2:]) due to the fact that if l starts with ' >>> ' it also starts with ' '. The net effect was that python command lines in *.t files were (surprisingly) also added to the "expected" dict. This caused no externally observable bad behavior, as the "expected" dict was not consulted for these lines.
Sun, 03 Jun 2012 19:35:23 +0200 run-test: replace backslashes in TESTDIR
Adrian Buehlmann <adrian@cadifra.com> [Sun, 03 Jun 2012 19:35:23 +0200] rev 16840
run-test: replace backslashes in TESTDIR This may cause troubles in MSYS on Windows.
Fri, 25 May 2012 14:24:07 +0200 dispatch: tolerate non-standard version strings in tuplever() (issue3470)
Adrian Buehlmann <adrian@cadifra.com> [Fri, 25 May 2012 14:24:07 +0200] rev 16839
dispatch: tolerate non-standard version strings in tuplever() (issue3470) When developing, we may see non-standard version strings of the form 5d64306f39bb+20120525 which caused tuplever() to raise ValueError: invalid literal for int() with base 10: '5d64306f39bb' and shadowing the real traceback.
Thu, 24 May 2012 13:05:06 +0200 revset: cache alias expansions
Patrick Mezard <patrick@mezard.eu> [Thu, 24 May 2012 13:05:06 +0200] rev 16838
revset: cache alias expansions Caching has no performance effect on the revset aliases which triggered the recent recursive evaluation bug. I wrote it not to feel bad about expanding several times the same complicated expression.
Thu, 24 May 2012 01:30:12 +0200 base85: use Py_ssize_t for string lengths
Adrian Buehlmann <adrian@cadifra.com> [Thu, 24 May 2012 01:30:12 +0200] rev 16837
base85: use Py_ssize_t for string lengths
Tue, 22 May 2012 15:17:37 -0700 hg-ssh: read-only flag
David Schleimer <dschleimer@fb.com> [Tue, 22 May 2012 15:17:37 -0700] rev 16836
hg-ssh: read-only flag Allows you to restrict a ssh key to have read-only access to a set of repos by passing the --read-only flag to hg-ssh. This is useful in an environment where the number of unix users you can or are willing to create is limited. In such an environment, multiple users or applications will share a single unix account. Some of those applications will likely need read-only access to the repository. This change makes it possible to grant them such access without requiring that they use a separate unix account.
Sun, 13 May 2012 10:21:27 +0200 bookmarks: allow existing remote bookmarks to become heads when pushing
Levi Bard <levi@unity3d.com> [Sun, 13 May 2012 10:21:27 +0200] rev 16835
bookmarks: allow existing remote bookmarks to become heads when pushing
Fri, 01 Jun 2012 17:05:31 -0700 util: subclass deque for Python 2.4 backwards compatibility
Bryan O'Sullivan <bryano@fb.com> [Fri, 01 Jun 2012 17:05:31 -0700] rev 16834
util: subclass deque for Python 2.4 backwards compatibility It turns out that Python 2.4's deque type is lacking a remove method. We can't implement remove in terms of find, because it doesn't have find either.
Sat, 02 Jun 2012 15:35:53 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 02 Jun 2012 15:35:53 -0500] rev 16833
merge with stable
Fri, 01 Jun 2012 23:48:27 -0500 Added signature for changeset 85a358df5bbb stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Jun 2012 23:48:27 -0500] rev 16832
Added signature for changeset 85a358df5bbb
Fri, 01 Jun 2012 23:48:22 -0500 Added tag 2.2.2 for changeset 85a358df5bbb stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Jun 2012 23:48:22 -0500] rev 16831
Added tag 2.2.2 for changeset 85a358df5bbb
Fri, 01 Jun 2012 23:44:10 -0500 localrepo: move filecache clearing into invalidate
Matt Mackall <mpm@selenic.com> [Fri, 01 Jun 2012 23:44:10 -0500] rev 16830
localrepo: move filecache clearing into invalidate Moving from self.destroy to _rollback fixed rollback fixed rollback but broke mq. Move it lower rather than sideways.
Fri, 01 Jun 2012 23:42:27 -0500 strip: move bookmark deletion before strip to deal with filecache invalidation
Matt Mackall <mpm@selenic.com> [Fri, 01 Jun 2012 23:42:27 -0500] rev 16829
strip: move bookmark deletion before strip to deal with filecache invalidation
Fri, 01 Jun 2012 15:14:29 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Jun 2012 15:14:29 -0500] rev 16828
merge with stable
Fri, 01 Jun 2012 15:14:13 -0500 merge with i18n stable 2.2.2
Matt Mackall <mpm@selenic.com> [Fri, 01 Jun 2012 15:14:13 -0500] rev 16827
merge with i18n
Thu, 31 May 2012 21:47:40 -0300 i18n-pt_BR: synchronized with 2a0efa1112ac stable
Wagner Bruna <wbruna@yahoo.com> [Thu, 31 May 2012 21:47:40 -0300] rev 16826
i18n-pt_BR: synchronized with 2a0efa1112ac
Fri, 01 Jun 2012 15:13:05 -0500 revset: avoid validating all tag nodes for tag(x)
Matt Mackall <mpm@selenic.com> [Fri, 01 Jun 2012 15:13:05 -0500] rev 16825
revset: avoid validating all tag nodes for tag(x) This generally causes the entire node->rev table to get built when we're only interested in one node.
Wed, 30 May 2012 23:14:04 +0100 revset: add pattern matching to 'extra' revset expression
Simon King <simon@simonking.org.uk> [Wed, 30 May 2012 23:14:04 +0100] rev 16824
revset: add pattern matching to 'extra' revset expression
Wed, 30 May 2012 23:13:58 +0100 revset: add pattern matching to the 'user' revset expression
Simon King <simon@simonking.org.uk> [Wed, 30 May 2012 23:13:58 +0100] rev 16823
revset: add pattern matching to the 'user' revset expression
Wed, 30 May 2012 23:13:33 +0100 revset: add pattern matching to 'bookmarks' revset expression
Simon King <simon@simonking.org.uk> [Wed, 30 May 2012 23:13:33 +0100] rev 16822
revset: add pattern matching to 'bookmarks' revset expression
Wed, 30 May 2012 23:13:33 +0100 revset: add pattern matching to 'branch' revset expression
Simon King <simon@simonking.org.uk> [Wed, 30 May 2012 23:13:33 +0100] rev 16821
revset: add pattern matching to 'branch' revset expression
Wed, 30 May 2012 23:13:33 +0100 revset: add pattern matching to 'tag' revset expression
Simon King <simon@simonking.org.uk> [Wed, 30 May 2012 23:13:33 +0100] rev 16820
revset: add pattern matching to 'tag' revset expression If the string provided to the 'tag' predicate starts with 're:', the rest of the string will be treated as a regular expression and matched against all tags in the repository. There is a slight backwards-compatibility problem for people who actually have tags that start with 're:'. As a workaround, these tags can be matched using a 'literal:' prefix. If no tags match the pattern, an error is raised. This matches the behaviour of the previous exact-match code.
Wed, 30 May 2012 23:13:33 +0100 revset: add helper function for matching strings to patterns
Simon King <simon@simonking.org.uk> [Wed, 30 May 2012 23:13:33 +0100] rev 16819
revset: add helper function for matching strings to patterns
Fri, 01 Jun 2012 12:35:30 +0200 help: format command help using RST
Olav Reinert <seroton10@gmail.com> [Fri, 01 Jun 2012 12:35:30 +0200] rev 16818
help: format command help using RST
Fri, 01 Jun 2012 12:15:45 +0200 help: format topic help using RST
Olav Reinert <seroton10@gmail.com> [Fri, 01 Jun 2012 12:15:45 +0200] rev 16817
help: format topic help using RST
Fri, 01 Jun 2012 12:01:33 +0200 help: inline helper function used once only
Olav Reinert <seroton10@gmail.com> [Fri, 01 Jun 2012 12:01:33 +0200] rev 16816
help: inline helper function used once only
Fri, 01 Jun 2012 11:58:23 +0200 minirst: generate tables as a list of joined lines
Olav Reinert <seroton10@gmail.com> [Fri, 01 Jun 2012 11:58:23 +0200] rev 16815
minirst: generate tables as a list of joined lines
Thu, 31 May 2012 20:55:30 -0700 scmutil: seen.union should be seen.update (issue3476) stable
Bryan O'Sullivan <bryano@fb.com> [Thu, 31 May 2012 20:55:30 -0700] rev 16814
scmutil: seen.union should be seen.update (issue3476)
Fri, 01 Jun 2012 17:37:56 +0200 patch: keep patching after missing copy source (issue3480) stable
Patrick Mezard <patrick@mezard.eu> [Fri, 01 Jun 2012 17:37:56 +0200] rev 16813
patch: keep patching after missing copy source (issue3480) When applying a patch renaming/copying 'a' to 'b' on a revision where 'a' does not exist, the patching process would abort immediately, without processing the remaining hunks and without reporting it. This patch makes the patching no longer abort and possible hunks applied on the copied/renamed file be written in reject files.
Sat, 26 May 2012 20:49:51 +0200 keyword: update copyleft
Christian Ebert <blacktrash@gmx.net> [Sat, 26 May 2012 20:49:51 +0200] rev 16812
keyword: update copyleft
Sat, 26 May 2012 20:49:44 +0200 keyword: wlock cmdutil.copy wrapper
Christian Ebert <blacktrash@gmx.net> [Sat, 26 May 2012 20:49:44 +0200] rev 16811
keyword: wlock cmdutil.copy wrapper Expanding/shrinking happens outside the wrapped copy function; therefore write lock the repo.
Sat, 26 May 2012 20:46:12 +0200 keyword: support commit --amend (issue3471)
Christian Ebert <blacktrash@gmx.net> [Sat, 26 May 2012 20:46:12 +0200] rev 16810
keyword: support commit --amend (issue3471) Include a test as well.
Fri, 25 May 2012 19:32:29 +0200 keyword: rename kwt.record attribute to kwt.postcommit
Christian Ebert <blacktrash@gmx.net> [Fri, 25 May 2012 19:32:29 +0200] rev 16809
keyword: rename kwt.record attribute to kwt.postcommit A more general descriptive name, as the attribute will be used for commit --amend as well.
Sun, 27 May 2012 11:30:03 +0200 scmutil: use _winreg.HKEY_LOCAL_MACHINE
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 May 2012 11:30:03 +0200] rev 16808
scmutil: use _winreg.HKEY_LOCAL_MACHINE
Sun, 27 May 2012 11:29:52 +0200 win32: move lookupreg() to windows.py
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 May 2012 11:29:52 +0200] rev 16807
win32: move lookupreg() to windows.py lookupreg() doesn't use the win32 API directly any more, it uses the Python standard library module _winreg.
Sun, 27 May 2012 11:29:45 +0200 win32: use Python's _winreg again
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 May 2012 11:29:45 +0200] rev 16806
win32: use Python's _winreg again This is a partial backout of f1fa8f481c7c. f1fa8f481c7c switched win32.py to using ctypes with the intention to get rid of the dependency on the pywin32 package. But f1fa8f481c7c replaced the usage of the Python standard module _winreg in lookup_reg as well, which was uneeded (note that lookup_reg was later renamed into lookupreg). Basically, we're switching back to the previous _winreg-based implementation, which uses _winreg.QueryValueEx(). QueryValueEx returns a unicode code string. See also: issue3467
Tue, 29 May 2012 18:27:12 +0300 localrepo: clear _filecache earlier to really force reloading (issue3462) stable
Idan Kamara <idankk86@gmail.com> [Tue, 29 May 2012 18:27:12 +0300] rev 16805
localrepo: clear _filecache earlier to really force reloading (issue3462) ce0ad184f489 attempted to force the filecaches in localrepo to reload everything after a rollback. But simply clearing _filecache isn't enough, invalidate() needs to be called before/after. localrepo._rollback calls invalidate() already, so we clear the map right afterwards which ensures everything will be reread.
Wed, 30 May 2012 13:57:41 -0700 lsprof: report units correctly
Bryan O'Sullivan <bryano@fb.com> [Wed, 30 May 2012 13:57:41 -0700] rev 16804
lsprof: report units correctly
Tue, 15 May 2012 10:46:23 -0700 cleanup: use the deque type where appropriate
Bryan O'Sullivan <bryano@fb.com> [Tue, 15 May 2012 10:46:23 -0700] rev 16803
cleanup: use the deque type where appropriate There have been quite a few places where we pop elements off the front of a list. This can turn O(n) algorithms into something more like O(n**2). Python has provided a deque type that can do this efficiently since at least 2.4. As an example of the difference a deque can make, it improves perfancestors performance on a Linux repo from 0.50 seconds to 0.36.
Tue, 15 May 2012 10:44:17 -0700 perf: add a perfancestors benchmark
Bryan O'Sullivan <bryano@fb.com> [Tue, 15 May 2012 10:44:17 -0700] rev 16802
perf: add a perfancestors benchmark
Wed, 30 May 2012 14:31:51 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 30 May 2012 14:31:51 -0500] rev 16801
merge with stable
Wed, 30 May 2012 14:31:39 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Wed, 30 May 2012 14:31:39 -0500] rev 16800
merge with crew
Wed, 30 May 2012 14:31:29 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Wed, 30 May 2012 14:31:29 -0500] rev 16799
merge with i18n
Tue, 29 May 2012 21:32:50 +0900 i18n-ja: synchronized with 2478594b37c2 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 May 2012 21:32:50 +0900] rev 16798
i18n-ja: synchronized with 2478594b37c2
Sun, 27 May 2012 15:37:36 +0100 i1n-ru:synchronized with b748106fe616 stable
Alexander Sauta <demosito@gmail.com> [Sun, 27 May 2012 15:37:36 +0100] rev 16797
i1n-ru:synchronized with b748106fe616
Sun, 27 May 2012 09:52:25 -0300 i18n-pt_BR: synchronized with 0a730d3c5aae stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 27 May 2012 09:52:25 -0300] rev 16796
i18n-pt_BR: synchronized with 0a730d3c5aae
Wed, 23 May 2012 21:34:29 +0200 merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 23 May 2012 21:34:29 +0200] rev 16795
merge: show renamed on one and deleted on the other side in debug output
Wed, 23 May 2012 20:50:16 +0200 merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 23 May 2012 20:50:16 +0200] rev 16794
merge: warn about file deleted in one branch and renamed in other (issue3074) For divergent renames the following message is printed during merge: note: possible conflict - file was renamed multiple times to: newfile file2 When a file is renamed in one branch and deleted in the other, the file still exists after a merge. With this change a similar message is printed for mv+rm: note: possible conflict - file was deleted and renamed to: newfile
Wed, 23 May 2012 17:33:19 +0200 tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 23 May 2012 17:33:19 +0200] rev 16793
tests: do not create repos inside repos in test-rename-merge1.t This is no actual problem, but I when adding more tests to this file, the directory structure would become t/repo2089/repoXXXX/repoYYYY/...
Wed, 23 May 2012 17:25:48 +0200 merge: do not warn about copy and rename in the same transaction (issue2113)
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 23 May 2012 17:25:48 +0200] rev 16792
merge: do not warn about copy and rename in the same transaction (issue2113)
Wed, 30 May 2012 14:21:58 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 30 May 2012 14:21:58 -0500] rev 16791
merge with stable
Wed, 30 May 2012 14:13:57 -0500 revpair: handle odd ranges (issue3474) stable
Matt Mackall <mpm@selenic.com> [Wed, 30 May 2012 14:13:57 -0500] rev 16790
revpair: handle odd ranges (issue3474)
Wed, 23 May 2012 00:25:29 +0900 match: make 'match.files()' return list object always stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 23 May 2012 00:25:29 +0900] rev 16789
match: make 'match.files()' return list object always 'exact' match objects are sometimes created with a non-list 'pattern' argument: - using 'set' in queue.refresh():hgext/mq.py match = scmutil.matchfiles(repo, set(c[0] + c[1] + c[2] + inclsubs)) - using 'dict' in revert():mercurial/cmdutil.py (names = {}) m = scmutil.matchfiles(repo, names) 'exact' match objects return specified 'pattern' to callers of 'match.files()' as it is, so it is a non-list object. but almost all implementations expect 'match.files()' to return a list object, so this may causes problems: e.g. exception for "+" with another list object. this patch ensures that '_files' of 'exact' match objects is a list object. for non 'exact' match objects, parsing specified 'pattern' already ensures that it it a list one.
Wed, 16 May 2012 13:45:46 -0700 perf: add a perfdirstatewrite benchmark
Bryan O'Sullivan <bryano@fb.com> [Wed, 16 May 2012 13:45:46 -0700] rev 16788
perf: add a perfdirstatewrite benchmark
Sat, 19 May 2012 20:21:48 -0700 parsers: cache the result of index_headrevs
Bryan O'Sullivan <bryano@fb.com> [Sat, 19 May 2012 20:21:48 -0700] rev 16787
parsers: cache the result of index_headrevs Although index_headrevs is much faster than its Python counterpart, it's still somewhat expensive when history is large. Since headrevs is called several times when the tag cache is stale or missing (e.g. after a strip or rebase), there's a win to be gained from caching the result, which we do here.
Sat, 19 May 2012 19:44:58 -0700 revlog: switch to a C version of headrevs
Bryan O'Sullivan <bryano@fb.com> [Sat, 19 May 2012 19:44:58 -0700] rev 16786
revlog: switch to a C version of headrevs The C implementation is more than 100 times faster than the Python version (which is still available as a fallback). In a repo with 330,000 revs and a stale .hg/cache/tags file, this patch improves the performance of "hg tip" from 2.2 to 1.6 seconds.
Sat, 19 May 2012 19:44:23 -0700 perf: rework perfheads and perftags to clear caches
Bryan O'Sullivan <bryano@fb.com> [Sat, 19 May 2012 19:44:23 -0700] rev 16785
perf: rework perfheads and perftags to clear caches The cache clearing makes numbers more reproducible.
Sat, 19 May 2012 19:44:18 -0700 parsers: reduce raw_length when truncating
Bryan O'Sullivan <bryano@fb.com> [Sat, 19 May 2012 19:44:18 -0700] rev 16784
parsers: reduce raw_length when truncating When stripping revs, we now update raw_length to correctly reflect the new end of the index.
Tue, 22 May 2012 22:08:41 +0200 help: inline helper function used once only
Olav Reinert <seroton10@gmail.com> [Tue, 22 May 2012 22:08:41 +0200] rev 16783
help: inline helper function used once only
Tue, 22 May 2012 22:08:41 +0200 help: remove redundant parameter
Olav Reinert <seroton10@gmail.com> [Tue, 22 May 2012 22:08:41 +0200] rev 16782
help: remove redundant parameter
Tue, 22 May 2012 22:08:41 +0200 help: move some helper functions to help.py
Olav Reinert <seroton10@gmail.com> [Tue, 22 May 2012 22:08:41 +0200] rev 16781
help: move some helper functions to help.py
Tue, 22 May 2012 22:08:41 +0200 help: remove dependency on ui from some helper functions
Olav Reinert <seroton10@gmail.com> [Tue, 22 May 2012 22:08:41 +0200] rev 16780
help: remove dependency on ui from some helper functions
Mon, 21 May 2012 16:19:30 -0700 hg-ssh: refactor to have main() method
David Schleimer <dschleimer@fb.com> [Mon, 21 May 2012 16:19:30 -0700] rev 16779
hg-ssh: refactor to have main() method Refactor hg-ssh to have a main() function instead of a bunch of top-level statements.
(0) -10000 -3000 -1000 -480 +480 +1000 +3000 +10000 +30000 tip