Sat, 30 Apr 2016 11:51:45 -0700 builddeb: use codename in version stable
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 11:51:45 -0700] rev 29045
builddeb: use codename in version Apparently, this is needed to allow ppas to be built for multiple distros.
Sat, 30 Apr 2016 18:39:39 +0200 rebase: restrict rebase destination to the pulled set (issue5214) stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 30 Apr 2016 18:39:39 +0200] rev 29044
rebase: restrict rebase destination to the pulled set (issue5214) Before this patch, `hg pull --rebase` would be a strict sequence of `hg pull` followed by `hg rebase` if anything was pulled. Now that rebase pick his default destination the same way than merge, than `hg rebase` step would abort in the case the repo already had multiple anonymous heads (because of the ambiguity). (changed in fac3a24be50e) The intend of the user with `hg pull --rebase` is clearly to rebase on pulled content. This used to be (mostly) enforced by the former default destination for rebase, "tipmost changeset of the branch" as the tipmost would likely a changeset that just got pulled. But this intended was no longer enforced with the new defaul destination (unified with merge). This changeset makes use of the '_destspace' mechanism introduced in the previous changeset to enforce this. This partially fixes issue5214 as no change at all have been made to the new handling of the case with bookmark (unified with merge).
Sat, 30 Apr 2016 18:41:08 +0200 destutil: add the ability to specify a search space for rebase destination stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 30 Apr 2016 18:41:08 +0200] rev 29043
destutil: add the ability to specify a search space for rebase destination In the 'hg pull --rebase', we don't want to pick a rebase destination unrelated to the pull, we lay down basic infrastructure to allow such restriction on stable (before 3.8 release) in this case. See issue 5214 for details. Actual usage and test will be in the next patch.
Sat, 30 Apr 2016 09:26:47 -0700 sslutil: restore old behavior not requiring a hostname argument (issue5210) stable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Apr 2016 09:26:47 -0700] rev 29042
sslutil: restore old behavior not requiring a hostname argument (issue5210) This effectively backs out changeset 1fde84d42f9c. The http library behind ui.http2=true isn't specifying the hostname. It is the day before the expected 3.8 release and we don't want to ship a regression. I'll try to restore this requirement in the 3.9 release cycle as part of planned improvements to Mercurial's SSL/TLS interactions.
Thu, 28 Apr 2016 16:38:15 -0500 tests: test a variety of cache invariants stable
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 16:38:15 -0500] rev 29041
tests: test a variety of cache invariants We've historically had a problem maintaining the expected invariants on our caches, especially when introducing new caches. This tests documents the invariants and exercises them across most of our existing cache files.
Thu, 28 Apr 2016 16:26:18 -0500 repoview: ignore unwritable hidden cache stable
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 16:26:18 -0500] rev 29040
repoview: ignore unwritable hidden cache The atomictemp.close() file attempts to do a rename, which can fail. Moving the close inside the exception handler fixes it. This doesn't fit well with the with: pattern, as it's the finalizer that's failing.
Thu, 28 Apr 2016 15:40:43 -0500 tags: silence hgtagsfnodes reading failures stable
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 15:40:43 -0500] rev 29039
tags: silence hgtagsfnodes reading failures tryread() doesn't handle "is a directory" errors and presumably others. We might not want to globally swallow such tryread errors, so we replace with our own try/except handling. An upcoming test will use directories as a portable stand-in for various bizarre circumstances that cache read/write code should be robust to.
Thu, 28 Apr 2016 15:35:54 -0500 tags: silence cache parsing errors stable
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 15:35:54 -0500] rev 29038
tags: silence cache parsing errors Follow our standard STFU cache-handling pattern
Sun, 01 May 2016 00:12:56 -0300 i18n-pt_BR: synchronized with 18c1b107898e stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 May 2016 00:12:56 -0300] rev 29037
i18n-pt_BR: synchronized with 18c1b107898e
Wed, 27 Apr 2016 01:07:40 -0700 ubuntu-xenial-ppa: add makefile rule stable
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 01:07:40 -0700] rev 29036
ubuntu-xenial-ppa: add makefile rule
Wed, 27 Apr 2016 01:02:56 -0700 ubuntu-wily-ppa: add makefile rule stable
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 01:02:56 -0700] rev 29035
ubuntu-wily-ppa: add makefile rule
Wed, 27 Apr 2016 00:27:10 -0700 ubuntu-trusty-ppa: add makefile rule stable
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 00:27:10 -0700] rev 29034
ubuntu-trusty-ppa: add makefile rule
Wed, 27 Apr 2016 00:18:18 -0700 ubuntu-xenial: add makefile rule to build deb stable
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 00:18:18 -0700] rev 29033
ubuntu-xenial: add makefile rule to build deb
Wed, 27 Apr 2016 00:10:49 -0700 ubuntu-wily: add makefile rule to build deb stable
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 00:10:49 -0700] rev 29032
ubuntu-wily: add makefile rule to build deb
Tue, 26 Apr 2016 23:33:17 -0700 make: turn ubuntu docker into template stable
Sean Farley <sean@farley.io> [Tue, 26 Apr 2016 23:33:17 -0700] rev 29031
make: turn ubuntu docker into template This allows us to easily add more ubuntu docker targets (which following patches will do). Also, we no longer need the mkdir command.
Wed, 27 Apr 2016 14:02:18 -0700 revsets: add docs for '%' operator stable
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 14:02:18 -0700] rev 29030
revsets: add docs for '%' operator
Wed, 27 Apr 2016 19:24:31 -0700 graft: fix printing of --continue command stable
Adam Simpkins <simpkins@fb.com> [Wed, 27 Apr 2016 19:24:31 -0700] rev 29029
graft: fix printing of --continue command Properly shell quote arguments, to avoid printing commands that won't work when run literally. For example, a date string with timestamp needs to be quoted: --date '1456953053 28800'
Fri, 29 Apr 2016 14:14:00 -0500 hghave: remove unused check for bdist_mpkg stable
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 29 Apr 2016 14:14:00 -0500] rev 29028
hghave: remove unused check for bdist_mpkg
Wed, 27 Apr 2016 10:20:36 -0500 osx: create a modern package including manpages stable
Kevin Bullock <kbullock+mercurial@ringworld.org> [Wed, 27 Apr 2016 10:20:36 -0500] rev 29027
osx: create a modern package including manpages Instead of using bdist_mpkg, we use the modern Apple-provided tools to build an OS X Installer package directly. This has several advantages: * Avoids bdist_mpkg which seems to be barely maintained and is hard to use. * Creates a single unified .pkg instead of a .mpkg. * The package we produce is in the modern, single-file format instead of a directory bundle that we have to zip up for download. In addition, this way of building the package now correctly: * Installs the manpages, bringing the `make osx`-generated package in line with the official Mac packages we publish on the website. * Installs files with the correct permissions instead of encoding the UID of the user who happened to build the package. Thanks to Augie for updating the test expectations.
Wed, 27 Apr 2016 11:45:55 -0400 hghave: add check for OS X packaging tools stable
Augie Fackler <augie@google.com> [Wed, 27 Apr 2016 11:45:55 -0400] rev 29026
hghave: add check for OS X packaging tools
Mon, 18 Apr 2016 23:59:55 -0400 tests: add test for Mac OS X package construction stable
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:59:55 -0400] rev 29025
tests: add test for Mac OS X package construction
Mon, 18 Apr 2016 23:59:28 -0400 osx: add support for keeping mpkgs stable
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:59:28 -0400] rev 29024
osx: add support for keeping mpkgs This is a bit of a hack, but I don't really want to mount a dmg during a test, and I don't see an option with hdiutil to take a dmg and spit out a folder, so this is what we've got for now.
Mon, 18 Apr 2016 23:57:22 -0400 osx: add support for dumping built dmg into OUTPUTDIR stable
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:57:22 -0400] rev 29023
osx: add support for dumping built dmg into OUTPUTDIR
Mon, 18 Apr 2016 23:55:58 -0400 hghave: add check for bdist_mpkg stable
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:55:58 -0400] rev 29022
hghave: add check for bdist_mpkg
Wed, 27 Apr 2016 22:45:52 -0400 verify: don't init subrepo when missing one is referenced (issue5128) (API) stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 27 Apr 2016 22:45:52 -0400] rev 29021
verify: don't init subrepo when missing one is referenced (issue5128) (API) Initializing a subrepo when one doesn't exist is the right thing to do when the parent is being updated, but in few other cases. Unfortunately, there isn't enough context in the subrepo module to distinguish this case. This same issue can be caused with other subrepo aware commands, so there is a general issue here beyond the scope of this fix. A simpler attempt I tried was to add an '_updating' boolean to localrepo, and set/clear it around the call to mergemod.update() in hg.updaterepo(). That mostly worked, but doesn't handle the case where archive will clone the subrepo if it is missing. (I vaguely recall that there may be other commands that will clone if needed like this, but certainly not all do. It seems both handy, and a bit surprising for what should be a read only operation. It might be nice if all commands did this consistently, but we probably need Angel's subrepo caching first, to not make a mess of the working directory.) I originally handled 'Exception' in order to pick up the Aborts raised in subrepo.state(), but this turns out to be unnecessary because that is called once and cached by ctx.sub() when iterating the subrepos. It was suggested in the bug discussion to skip looking at the subrepo links unless -S is specified. I don't really like that idea because missing a subrepo or (less likely, but worse) a corrupt .hgsubstate is a problem of the parent repo when checking out a revision. The -S option seems like a better fit for functionality that would recurse into each subrepo and do a full verification. Ultimately, the default value for 'allowcreate' should probably be flipped, but since the default behavior was to allow creation, this is less risky for now.
Thu, 28 Apr 2016 08:52:13 -0700 setup: detect Python DLL filename from loaded DLL stable
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 28 Apr 2016 08:52:13 -0700] rev 29020
setup: detect Python DLL filename from loaded DLL Attempting to build Mercurial from source using MinGW from msys2 on Windows produces a hg.exe that attempts to load e.g. python27.dll. MinGW prefixes its library name with "lib" and adds a period between the major and minor versions. e.g. "libpython2.7.dll." Before this patch, hg.exe files in a MinGW environment would either fail to find a Python DLL or would attempt to load a non-MinGW DLL, which would summarily explode. Either way, hg.exe wouldn't work. This patch improves the code that determines the Python DLL filename to actually use the loaded Python DLL instead of inferring it. Basically we take the handle of the loaded DLL from sys.dllhandle and call a Windows API to try to resolve that handle to a filename.
Wed, 27 Apr 2016 09:23:39 -0700 exewrapper: add .dll to LoadLibrary() argument stable
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 27 Apr 2016 09:23:39 -0700] rev 29019
exewrapper: add .dll to LoadLibrary() argument LoadLibrary() changes behavior depending on whether the argument passed to it contains a period. From the MSDN docs: If no file name extension is specified in the lpFileName parameter, the default library extension .dll is appended. However, the file name string can include a trailing point character (.) to indicate that the module name has no extension. When no path is specified, the function searches for loaded modules whose base name matches the base name of the module to be loaded. If the name matches, the load succeeds. Otherwise, the function searches for the file. As the subsequent patch will show, some environments on Windows define their Python library as e.g. "libpython2.7.dll." The existing code would pass "libpython2.7" into LoadLibrary(). It would assume "7" was the file extension and look for a "libpython2.dll" to load. By passing ".dll" into LoadLibrary(), we force it to search for the exact basename we want, even if it contains a period.
Wed, 27 Apr 2016 14:02:54 -0700 update: correct description of --check option stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 27 Apr 2016 14:02:54 -0700] rev 29018
update: correct description of --check option The old "update across branches if no uncommitted changes" made it sound like updating across branches (with no uncommitted changes) was allowed only with this option, which was not true. Also, the option did not care whether it was linear or across branches. Instead, it checked that there were no uncommitted changes. Let's explain what it does instead of trying to suggest what happens without it.
Tue, 26 Apr 2016 15:32:59 -0700 util: fix race in makedirs() stable
Adam Simpkins <simpkins@fb.com> [Tue, 26 Apr 2016 15:32:59 -0700] rev 29017
util: fix race in makedirs() Update makedirs() to ignore EEXIST in case someone else has already created the directory in question. Previously the ensuredirs() function existed, and was nearly identical to makedirs() except that it fixed this race. Unfortunately ensuredirs() was only used in 3 places, and most code uses the racy makedirs() function. This fixes makedirs() to be non-racy, and replaces calls to ensuredirs() with makedirs(). In particular, mercurial.scmutil.origpath() used the racy makedirs() code, which could cause failures during "hg update" as it tried to create backup directories. This does slightly change the behavior of call sites using ensuredirs(): previously ensuredirs() would throw EEXIST if the path existed but was a regular file instead of a directory. It did this by explicitly checking os.path.isdir() after getting EEXIST. The makedirs() code did not do this and swallowed all EEXIST errors. I kept the makedirs() behavior, since it seemed preferable to avoid the extra stat call in the common case where this directory already exists. If the path does happen to be a file, the caller will almost certainly fail with an ENOTDIR error shortly afterwards anyway. I checked the 3 existing call sites of ensuredirs(), and this seems to be the case for them.
Sun, 24 Apr 2016 21:35:30 +0900 chg: initialize sockdirfd to -1 instead of AT_FDCWD stable
Yuya Nishihara <yuya@tcha.org> [Sun, 24 Apr 2016 21:35:30 +0900] rev 29016
chg: initialize sockdirfd to -1 instead of AT_FDCWD As we don't use sockdirfd yet, this is the simplest workaround to compile chg on old Unices where AT_FDCWD does not exist. Foozy pointed out Mac OS X 10.10 is required for AT_FDCWD as well as xxxat() functions.
Fri, 22 Apr 2016 13:38:02 -0500 bdiff: further restrain potential quadratic performance stable
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2016 13:38:02 -0500] rev 29015
bdiff: further restrain potential quadratic performance This causes the longest_match search to limit itself to a window of 30000 lines during search (roughly 1MB), thus avoiding a full O(N*M) search that might occur in repetitive structured inputs. For a particular class of many MB pathological test cases, this generated the following timings: size before after 10x 1.25s 1.24s 100x 57s 33s 1000x >8400s 400s The times on the right quickly become much faster and appear more linear. While windowing means deltas are no longer "optimal", the resulting deltas were within a couple percent of expected size. While we've yet to have a report of a file with the level of repetition necessary to hit this case, some JSON/XML database dump scenario is fairly likely to hit it. This may also slightly improve the average-case performance for deltas of large binaries.
Thu, 21 Apr 2016 22:04:11 -0500 bdiff: balance recursion to avoid quadratic behavior (issue4704) stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 22:04:11 -0500] rev 29014
bdiff: balance recursion to avoid quadratic behavior (issue4704) For highly structured files like JSON or XML dumps with large numbers of duplicate lines (eg braces) and isolated matching lines, bdiff could find large numbers of equally good spans. Because it prefers earlier matches, this would result in pathologically unbalance recursion that resulted in quadratic performance. This patch makes it prefer matches closer to the middle that tend to balance recursion. This change improves the speed of a pathological test case from 1100s to 9s. Included is a smaller test that has a roughly 50x safety margin on the performance it accepts. It's likely to fail on pure builds because difflib also has a recursion-balancing problem.
Thu, 21 Apr 2016 21:05:26 -0500 bdiff: deal better with duplicate lines stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:05:26 -0500] rev 29013
bdiff: deal better with duplicate lines The longest_match code compares all the possible positions in two files to find the best match. Given a pair of sequences, it effectively searches a grid like this: a b b b c . d e . f 0 1 2 3 4 5 6 7 8 9 a 1 - - - - - - - - - b - 2 1 1 - - - - - - b - 1 3 2 - - - - - - b - 1 2 4 - - - - - - . - - - - - 1 - - 1 - Here, the 4 in the middle says "the first four lines of the file match", which it can compute be comparing the fourth lines and then adding one to the result found when comparing the third lines in the entry to the upper left. We generally avoid the quadratic worst case by only looking at lines that match, which is precomputed. We also avoid quadratic storage by only keeping a single column vector and then keeping track of the best match. Unfortunately, this can get us into trouble with the sequences above. Because we want to reuse the '3' value when calculating the '4', we need to be careful not to overwrite it with the '2' we calculate immediately before. If we scan left to right, top to bottom, we're going to have a problem: we'll overwrite our 3 before we use it and calculate a suboptimal best match. To address this, we can either keep two column vectors and swap between them (which significantly complicates bookkeeping), or change our scanning order. If we instead scan from left to right, bottom to top, we'll avoid ever overwriting values we'll need in the future. This unfortunately needs several changes to be made simultaneously: - change the order we build the initial hash chains for the b sequence - change the sentinel values from INT_MAX to -1 - change the visit order in the longest_match inner loop - add a tie-breaker preference for earlier matches This last is needed because we previously had an implicit tie-breaker from our visitation order that our test suite relies on. Later matches can also trigger a bug in the normalization code in diff().
Thu, 21 Apr 2016 21:53:18 -0500 bdiff: fix latent normalization bug stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:53:18 -0500] rev 29012
bdiff: fix latent normalization bug This bug is hidden by the current bias towards matches at the beginning of the file. When this bias is tweaked later to address recursion balancing, the normalization code could cause the next block to shrink to a negative length, thus creating invalid delta chunks. We add checks here to disallow that. This bug requires test cases that are an awkwardly large size for the test suite, but is very rapidly picked up by the included torture tester.
Thu, 21 Apr 2016 21:46:31 -0500 bdiff: fold in shift calculation in normalize stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:46:31 -0500] rev 29011
bdiff: fold in shift calculation in normalize This just makes the code harder to read without any performance advantage. We're going to make the check here more complex, let's make it simpler first.
Thu, 21 Apr 2016 21:37:13 -0500 bdiff: unify duplicate normalize loops stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:37:13 -0500] rev 29010
bdiff: unify duplicate normalize loops We're about to make the while loop check more complicated, so let's simplify first.
Mon, 25 Apr 2016 16:34:02 -0700 make: backout changeset 51f5fae84e43 stable
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Apr 2016 16:34:02 -0700] rev 29009
make: backout changeset 51f5fae84e43 Support for '!=' was only added in GNU Make 4.0, and CentOS versions as new as CentOS 7 only carry 3.82. I will leave figuring out compatibility with BSD make as an exercise for interested folks.
Thu, 01 Jan 1970 00:00:00 +0000 tests: test-lock-badness.t message could come later stable
timeless <timeless@mozdev.org> [Thu, 01 Jan 1970 00:00:00 +0000] rev 29008
tests: test-lock-badness.t message could come later I got this on gcc112: @@ -58,8 +58,8 @@ $ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout & $ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" waiting for lock on working directory of b held by '*:*' (glob) - got lock after ? seconds (glob) $ wait + got lock after 1 seconds $ cat stdout adding b
Sat, 23 Apr 2016 12:47:57 -0700 dockerdeb: pass the rest of the args to the builder script stable
Sean Farley <sean@farley.io> [Sat, 23 Apr 2016 12:47:57 -0700] rev 29007
dockerdeb: pass the rest of the args to the builder script It seems this was the original intent of the script so this patch passes the remanining arguments to builddeb.
Sat, 23 Apr 2016 12:47:39 -0700 dockerdeb: fix incorrect number of shifts stable
Sean Farley <sean@farley.io> [Sat, 23 Apr 2016 12:47:39 -0700] rev 29006
dockerdeb: fix incorrect number of shifts From the comment, it appears that the original intent was to remove the first two arguments, so this patch does just that.
Thu, 21 Apr 2016 10:11:20 -0400 make: use shell-command assignment instead of $(eval ...) stable
Augie Fackler <augie@google.com> [Thu, 21 Apr 2016 10:11:20 -0400] rev 29005
make: use shell-command assignment instead of $(eval ...) This is portable between BSD and GNU make. As of this change, our Makefile appears to work in both BSD and GNU make, with the caveat that the test-% and testpy-% wildcard rules don't work on BSD make. That said, this still seems worthwhile because it lets the buildbots work more consistently across platforms.
Thu, 21 Apr 2016 10:10:48 -0400 make: do assignment and export in a single statement stable
Augie Fackler <augie@google.com> [Thu, 21 Apr 2016 10:10:48 -0400] rev 29004
make: do assignment and export in a single statement This is portable between GNU and BSD make, whereas doing the export on its own line confuses BSD make.
Thu, 21 Apr 2016 10:05:14 -0400 make: alter how we compute compiler flags for setup.py stable
Augie Fackler <augie@google.com> [Thu, 21 Apr 2016 10:05:14 -0400] rev 29003
make: alter how we compute compiler flags for setup.py This is portable between BSD and GNU make. I'm not thrilled with how it worked out, but it's portable and solves the problem.
Sat, 23 Apr 2016 16:11:05 +0900 revset: unindent "if True" block in sort() stable
Yuya Nishihara <yuya@tcha.org> [Sat, 23 Apr 2016 16:11:05 +0900] rev 29002
revset: unindent "if True" block in sort() It was there to make the previous patch readable.
Sat, 23 Apr 2016 16:09:30 +0900 revset: make sort() do dumb multi-pass sorting for multiple keys (issue5218) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 23 Apr 2016 16:09:30 +0900] rev 29001
revset: make sort() do dumb multi-pass sorting for multiple keys (issue5218) Our invert() function was too clever to not take length into account. I could fix the problem by appending '\xff' as a terminator (opposite to '\0'), but it turned out to be slower than simple multi-pass sorting. New implementation is pretty straightforward, which just calls sort() from the last key. We can do that since Python sort() is guaranteed to be stable. It doesn't sound nice to call sort() multiple times, but actually it is faster. That's probably because we have fewer Python codes in hot loop, and can avoid heavy string and list manipulation. revset #0: sort(0:10000, 'branch') 0) 0.412753 1) 0.393254 revset #1: sort(0:10000, '-branch') 0) 0.455377 1) 0.389191 85% revset #2: sort(0:10000, 'date') 0) 0.408082 1) 0.376332 92% revset #3: sort(0:10000, '-date') 0) 0.406910 1) 0.380498 93% revset #4: sort(0:10000, 'desc branch user date rev') 0) 0.542996 1) 0.486397 89% revset #5: sort(0:10000, '-desc -branch -user -date -rev') 0) 0.965032 1) 0.518426 53%
Thu, 24 Mar 2016 22:55:56 +0900 log: fix status template to list copy source per dest (issue5155) stable
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Mar 2016 22:55:56 +0900] rev 29000
log: fix status template to list copy source per dest (issue5155) Before, copied files were assumed as "A" (added) and listed followed by non-copy added files. This could double entries of a copy if it had "M" (modified) state. So, this patch makes the template check if a file is included in copies dict. This way, entries should never be doubled. The output of "log -Tstatus -C" does not always agree with "status -C --change" due to the bug of "status", which is documented in test-status.t. See also 2963d5c9d90b.
Wed, 20 Apr 2016 16:33:13 +0100 graphmod: disable graph styling when HGPLAIN is set (issue5212) stable
Martijn Pieters <mjpieters@fb.com> [Wed, 20 Apr 2016 16:33:13 +0100] rev 28999
graphmod: disable graph styling when HGPLAIN is set (issue5212) Produce stable output for tools to rely on by hardcoding all edge styles to "|". This ensures that any tool parsing the output of hg log -G still gets the same behaviour as pre-3.8 releases.
Wed, 20 Apr 2016 18:26:29 +0100 graphmod: fix seen state handling for > 2 parents (issue5174) stable
Martijn Pieters <mjpieters@fb.com> [Wed, 20 Apr 2016 18:26:29 +0100] rev 28998
graphmod: fix seen state handling for > 2 parents (issue5174) When there are more than 2 parents for a given node (in a sparse graph), extra dummy nodes are inserted to transition the lines more gradually. However, since the seen state was not updated when yielding the extra nodes, the wrong graph styles were being applied to the nodes.
Wed, 20 Apr 2016 21:33:02 +0000 httpclient: reverse accidental damage from 86db5cb55d46 stable
timeless <timeless@mozdev.org> [Wed, 20 Apr 2016 21:33:02 +0000] rev 28997
httpclient: reverse accidental damage from 86db5cb55d46
Thu, 21 Apr 2016 04:30:18 +0000 tests: tolerate http2 stable
timeless <timeless@mozdev.org> [Thu, 21 Apr 2016 04:30:18 +0000] rev 28996
tests: tolerate http2 You can run tests like this: run-tests.py -l --extra-config-opt ui.usehttp2=true And ideally, no tests should fail...
Sat, 16 Apr 2016 13:02:13 -0700 make: add rule for building an ubuntu ppa stable
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 13:02:13 -0700] rev 28995
make: add rule for building an ubuntu ppa
Sat, 16 Apr 2016 13:01:47 -0700 builddeb: add flag for a source-only deb stable
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 13:01:47 -0700] rev 28994
builddeb: add flag for a source-only deb This is required for building a ppa for ubuntu which following patches will use.
Sat, 16 Apr 2016 17:06:11 -0700 builddeb: create source archive for ubuntu stable
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 17:06:11 -0700] rev 28993
builddeb: create source archive for ubuntu
Fri, 15 Apr 2016 15:44:00 -0700 builddeb: ignore vcs and build results stable
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 15:44:00 -0700] rev 28992
builddeb: ignore vcs and build results This one is a no-brainer. Previously, if you tried to build a deb on ubuntu, it would try to diff files in the .hg store. These flags prevent that.
Fri, 15 Apr 2016 14:28:26 -0700 builddeb: copy over .gz and .dsc files stable
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:28:26 -0700] rev 28991
builddeb: copy over .gz and .dsc files We were forgetting to copy over the signature (if it exists) and the zipped diff, so let's do that.
Fri, 15 Apr 2016 14:27:42 -0700 builddeb: ignore errors about find not finding files stable
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:27:42 -0700] rev 28990
builddeb: ignore errors about find not finding files The debuild command may output less files than we explicitly list so let's not error out if none exist.
Sat, 16 Apr 2016 12:42:53 -0700 builddeb: use the os codename instead of 'unstable' stable
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 12:42:53 -0700] rev 28989
builddeb: use the os codename instead of 'unstable' This fixes a lintian error (and indeed, launchpad rejects it) by using the distribution's codename (e.g. xenial, trusty, etc).
Sat, 16 Apr 2016 12:33:21 -0700 builddeb: use sed -i stable
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 12:33:21 -0700] rev 28988
builddeb: use sed -i Notice that there is no space after '-i'. This makes it work on both GNU and BSD versions of sed.
Sun, 17 Apr 2016 10:36:40 -0700 dockerdeb: redirect 'cd' in export command to /dev/null stable
Sean Farley <sean@farley.io> [Sun, 17 Apr 2016 10:36:40 -0700] rev 28987
dockerdeb: redirect 'cd' in export command to /dev/null This had the unfortunate side effect of causing the environment to have a newline due to the fact that some 'cd' outputs the result of the directory change. So, let's just redirect the meaningless output.
Sat, 26 Mar 2016 18:50:56 +0900 help: avoid using "$n" parameter in revsetalias example stable
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 18:50:56 +0900] rev 28986
help: avoid using "$n" parameter in revsetalias example Because parsing "$n" requires a crafted tokenizer, it exists only for backward compatibility (as documented in revset._tokenizealias.) This patch updates the examples so that users are encouraged to use symbolic names instead of "$n"s. I'm going to implement alias expansion in templater, which won't support "$n" parameters to make my life easier. Templater is more complicated than revset because tokenizer and parser call each other.
Sun, 17 Apr 2016 10:39:17 -0700 debian: add missing netbase dependency stable
Sean Farley <sean@farley.io> [Sun, 17 Apr 2016 10:39:17 -0700] rev 28985
debian: add missing netbase dependency Apparently, some machines don't have this service (launchpad builders are one such example). This adds the correct dependency for test-serve.t.
Sat, 16 Apr 2016 14:24:25 -0700 debian: add missing zip/unzip dependencies stable
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 14:24:25 -0700] rev 28984
debian: add missing zip/unzip dependencies
Fri, 15 Apr 2016 13:53:23 -0700 debian: add missing python-docutils dependency stable
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 13:53:23 -0700] rev 28983
debian: add missing python-docutils dependency
Fri, 15 Apr 2016 13:46:16 -0700 debian: add missing python-all-dev dependency stable
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 13:46:16 -0700] rev 28982
debian: add missing python-all-dev dependency
Thu, 14 Apr 2016 15:15:49 +0000 patchbomb: use single quotes around command hint stable
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:15:49 +0000] rev 28981
patchbomb: use single quotes around command hint Windows command lines use double quotes to quote arguments with spaces. This change is in a series to unify around using single quotes around commands, and double quotes around interior arguments. This changeset is taken on stable for consistency with similar update done before the freeze. See 2e58dc022caa, ad2cd2ef25d9, fc1d75e7a98d and 9dcc9ed26d33.
Sun, 10 Apr 2016 01:28:52 +0100 chg: forward SIGWINCH to worker stable
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 01:28:52 +0100] rev 28980
chg: forward SIGWINCH to worker Before this patch, if the user uses chg and ncurses interface, resizing the terminal window will mess up its content. This patch fixes the issue by forwarding SIGWINCH to the worker process.
Sat, 16 Apr 2016 18:09:42 -0500 Added signature for changeset 740156eedf2c stable
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 18:09:42 -0500] rev 28979
Added signature for changeset 740156eedf2c
Sat, 16 Apr 2016 18:09:34 -0500 Added tag 3.8-rc for changeset 740156eedf2c stable
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 18:09:34 -0500] rev 28978
Added tag 3.8-rc for changeset 740156eedf2c
Sat, 16 Apr 2016 18:06:48 -0500 merge default into stable for 3.8 code freeze stable 3.8-rc
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 18:06:48 -0500] rev 28977
merge default into stable for 3.8 code freeze
Fri, 15 Apr 2016 13:10:34 -0700 make: remove packages directory in clean rule
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 13:10:34 -0700] rev 28976
make: remove packages directory in clean rule
Fri, 15 Apr 2016 11:51:57 -0700 make: add forgotten hgext3rd to clean rule
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 11:51:57 -0700] rev 28975
make: add forgotten hgext3rd to clean rule
Fri, 15 Apr 2016 11:51:41 -0700 make: add chg to clean rule
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 11:51:41 -0700] rev 28974
make: add chg to clean rule
Sat, 16 Apr 2016 11:17:06 -0700 test-docker-packaging: add new line to test output
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 11:17:06 -0700] rev 28973
test-docker-packaging: add new line to test output It seems we changed our build but didn't update the docker test.
Fri, 15 Apr 2016 14:47:32 -0700 tests: relax pattern matching for newer docker
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:47:32 -0700] rev 28972
tests: relax pattern matching for newer docker
Sun, 17 Apr 2016 02:29:33 +0530 py3: make factotum use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 02:29:33 +0530] rev 28971
py3: make factotum use absolute_import check-code complains for using urllib2 so that too was fixed.
Sun, 17 Apr 2016 02:15:05 +0530 py3: make extdiff use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 02:15:05 +0530] rev 28970
py3: make extdiff use absolute_import
Sun, 17 Apr 2016 02:10:55 +0530 py3: make eol use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 02:10:55 +0530] rev 28969
py3: make eol use absolute_import
Sun, 17 Apr 2016 00:53:56 +0530 py3: make color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:53:56 +0530] rev 28968
py3: make color use absolute_import
Sun, 17 Apr 2016 00:23:05 +0530 py3: make hgmanpage use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:23:05 +0530] rev 28967
py3: make hgmanpage use absolute_import
Sun, 17 Apr 2016 00:20:44 +0530 py3: make gendoc use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:20:44 +0530] rev 28966
py3: make gendoc use absolute_import Fixed direct imports even the tests were not complaining.
Sun, 17 Apr 2016 00:14:42 +0530 py3: make check-seclevel use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:14:42 +0530] rev 28965
py3: make check-seclevel use absolute_import Also fixed direct symbol imports even the tests were not complaining.
Thu, 14 Apr 2016 15:20:11 +0000 fetch: use single quotes around command hint
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:20:11 +0000] rev 28964
fetch: use single quotes around command hint Windows command lines use double quotes to quote arguments with spaces. This change is in a series to unify around using single quotes around commands, and double quotes around interior arguments.
Thu, 14 Apr 2016 15:19:57 +0000 graft: use single quotes around command hint
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:19:57 +0000] rev 28963
graft: use single quotes around command hint Windows command lines use double quotes to quote arguments with spaces. This change is in a series to unify around using single quotes around commands, and double quotes around interior arguments.
Thu, 14 Apr 2016 15:18:59 +0000 config: use single quotes around command hint
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:18:59 +0000] rev 28962
config: use single quotes around command hint Windows command lines use double quotes to quote arguments with spaces. This change is in a series to unify around using single quotes around commands, and double quotes around interior arguments.
Thu, 14 Apr 2016 15:17:15 +0000 debugcreatestreamclonebundle: use single quotes around command hint
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:17:15 +0000] rev 28961
debugcreatestreamclonebundle: use single quotes around command hint Windows command lines use double quotes to quote arguments with spaces. This change is in a series to unify around using single quotes around commands, and double quotes around interior arguments.
Sat, 16 Apr 2016 09:02:37 -0700 transaction: clear callback instances after usage
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 16 Apr 2016 09:02:37 -0700] rev 28960
transaction: clear callback instances after usage Prevents double usage and helps reduce reference cycles, which were observed to occur in `hg convert` and other scenarios where there are multiple transactions per process.
Sat, 16 Apr 2016 09:00:15 -0700 lock: clear postrelease hooks list after usage
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 16 Apr 2016 09:00:15 -0700] rev 28959
lock: clear postrelease hooks list after usage Post release hooks should only be called once. Setting the list to None after usage will prevent accidental usage after they are used. In addition, it is easy for reference cycles to sneak into hook functions. Clearing the hooks after usage helps prevent these cycles.
Sun, 27 Mar 2016 21:05:55 +0900 ui: drop template aliases by HGPLAIN
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 21:05:55 +0900] rev 28958
ui: drop template aliases by HGPLAIN Otherwise, scripting output could be suffered from user aliases.
Sun, 27 Mar 2016 20:59:36 +0900 templater: load and expand aliases by template engine (API) (issue4842)
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 20:59:36 +0900] rev 28957
templater: load and expand aliases by template engine (API) (issue4842) Now template aliases are fully supported in log and formatter templates. As I said before, aliases are not expanded in map files. This avoids possible corruption of our stock styles and web templates. This behavior is undocumented since no map file nor [templates] section are documented at all. Later on, we might want to add [aliases] section to map files if it appears to be useful.
Sun, 03 Apr 2016 13:23:40 +0900 templater: inline compiletemplate() function into engine
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 13:23:40 +0900] rev 28956
templater: inline compiletemplate() function into engine This allows the template engine to modify parsed tree.
Sun, 10 Apr 2016 17:23:09 +0900 templater: factor out function that creates templater from string template
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Apr 2016 17:23:09 +0900] rev 28955
templater: factor out function that creates templater from string template This function will host loading of template aliases. It is not defined at templater, but at formatter, since formatter is the module handling ui stuff in front of templater.
Sun, 03 Apr 2016 23:26:48 +0900 templater: separate function to create templater from map file (API)
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 23:26:48 +0900] rev 28954
templater: separate function to create templater from map file (API) New frommapfile() function will make it clear when template aliases will be loaded. They should be applied to command arguments and templates in hgrc, but not to map files. Otherwise, our stock styles and web templates (i.e map-file templates) could be modified unintentionally. Future patches will add "aliases" argument to __init__(), but not to frommapfile().
Sun, 03 Apr 2016 23:18:30 +0900 templater: extract function that loads template map file
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 23:18:30 +0900] rev 28953
templater: extract function that loads template map file Prepares for API change. See the next patch for details. 'map' variable is renamed to avoid shadowing map() function.
Sun, 03 Apr 2016 23:22:43 +0900 templater: demote "base" directory of map file to local variable
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 23:22:43 +0900] rev 28952
templater: demote "base" directory of map file to local variable It isn't referenced from other places.
Mon, 04 Apr 2016 22:50:50 +0900 notify: do not load style file if template is specified (BC)
Yuya Nishihara <yuya@tcha.org> [Mon, 04 Apr 2016 22:50:50 +0900] rev 28951
notify: do not load style file if template is specified (BC) This patch makes sure that either "tmpl" or "mapfile" is exclusively set, which is the same behavior as common log-like templates and formatter outputs. See the previous patch for why.
Mon, 04 Apr 2016 22:48:34 +0900 bugzilla: do not load style file if template is specified (BC)
Yuya Nishihara <yuya@tcha.org> [Mon, 04 Apr 2016 22:48:34 +0900] rev 28950
bugzilla: do not load style file if template is specified (BC) This prepares for the API change to support template aliases. I'm going to extract a factory function of templater that reads a map file: # original templater(mapfile, ..., cache, ...) # new templater.frommapfile(mapfile, ...) # read mapfile to build cache/map templater(..., cache, ...) # use specified cache (= map elements) This will make it clear to isolate stock styles (i.e. map files) from user aliases. Template aliases should be applied to command arguments and templates in hgrc, but not to map files. Otherwise, our stock styles and web templates could be modified unintentionally. This patch makes sure that either "tmpl" or "mapfile" is exclusively set. It's theoretically a behavior change, since you could put new keywords in template by defining them in a map file before: # mapfile foo = "{rev}" # hgrc [bugzilla] style = mapfile template = {foo} But the old behavior would be a bug because bugzilla.template is documented as "overrides style if specified". Also, common log-like templates and formatter doesn't allow using mapfile-keywords in a separate template. So I decided to make a BC. Since there was no test for the bugzilla extension, this adds new test that covers style/template output.
Sat, 16 Apr 2016 15:14:25 -0500 subrepo: disable localizations when calling Git (issue5176)
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 15:14:25 -0500] rev 28949
subrepo: disable localizations when calling Git (issue5176) Spotted by Aidar Sayfullin.
Sat, 16 Apr 2016 12:41:58 +0530 py3: make test-demandimport use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 12:41:58 +0530] rev 28948
py3: make test-demandimport use print_function Replacing print statements with print function.
Sat, 16 Apr 2016 06:03:11 +0300 py3: use absolute_import in svnxml.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 06:03:11 +0300] rev 28947
py3: use absolute_import in svnxml.py
Sat, 16 Apr 2016 05:34:21 +0300 py3: use absolute_import in sitecustomize.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:34:21 +0300] rev 28946
py3: use absolute_import in sitecustomize.py
Sat, 16 Apr 2016 05:33:23 +0300 py3: use absolute_import in revlog-formatv0.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:33:23 +0300] rev 28945
py3: use absolute_import in revlog-formatv0.py
Sat, 16 Apr 2016 05:32:10 +0300 py3: use absolute_import in printenv.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:32:10 +0300] rev 28944
py3: use absolute_import in printenv.py
Sat, 16 Apr 2016 05:30:32 +0300 py3: use absolute_import in mockblackbox.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:30:32 +0300] rev 28943
py3: use absolute_import in mockblackbox.py
Sat, 16 Apr 2016 05:29:29 +0300 py3: use absolute_import in killdaemons.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:29:29 +0300] rev 28942
py3: use absolute_import in killdaemons.py
Fri, 15 Apr 2016 22:53:53 -0400 test-shelve: shorten a long path so it works on Windows
Matt Harbison <matt_harbison@yahoo.com> [Fri, 15 Apr 2016 22:53:53 -0400] rev 28941
test-shelve: shorten a long path so it works on Windows
Fri, 15 Apr 2016 22:37:52 -0400 test-convert-git: skip tests with invalid path characters on Windows
Matt Harbison <matt_harbison@yahoo.com> [Fri, 15 Apr 2016 22:37:52 -0400] rev 28940
test-convert-git: skip tests with invalid path characters on Windows
Fri, 15 Apr 2016 22:23:34 -0400 test-subrepo-git: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Fri, 15 Apr 2016 22:23:34 -0400] rev 28939
test-subrepo-git: add globs for Windows
Thu, 14 Apr 2016 02:41:15 -0700 hook: report untrusted hooks as failure (issue5110) (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 02:41:15 -0700] rev 28938
hook: report untrusted hooks as failure (issue5110) (BC) Before this patch, there was no way for a repository owner to ensure that validation hooks would be run by people with write access. If someone had write access but did not trust the user owning the repository, the config and its hook would simply be ignored. After this patch, hooks from untrusted configs are taken into account but never actually run. Instead they are reported as failures right away. This will ensure validation performed by a hook is not ignored. As a side effect writer can be forced to trust a repository hgrc by adding a 'pretxnopen.trust=true' hook to the file. This was discussed during the 3.8 sprint with Matt Mackall, Augie Fackler and Kevin Bullock.
Thu, 14 Apr 2016 17:03:49 -0700 hook: split config reading further
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 17:03:49 -0700] rev 28937
hook: split config reading further We want an easy way to fetch the hook config with and without honoring "trusted" so that we can compare the values. So we extract the part retrieving raw hook data from the config to be able to call it twice in the next patch.
Thu, 14 Apr 2016 02:28:46 -0700 hook: small refactor to store hooks as dict instead of list
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 02:28:46 -0700] rev 28936
hook: small refactor to store hooks as dict instead of list We are about to take untrusted hooks into account (to report them as failures) so we need to rearrange the code a bit to allow config overwriting each other in a later patch.
Fri, 15 Apr 2016 17:43:47 +0000 mail: retain hostname for sslutil.wrapsocket (issue5203)
timeless <timeless@mozdev.org> [Fri, 15 Apr 2016 17:43:47 +0000] rev 28935
mail: retain hostname for sslutil.wrapsocket (issue5203) SMTPS + STARTTLS need to provide serverhostname, and we can't store it in sslkwargs because that breaks something involving the https protocol.
Sat, 16 Apr 2016 04:06:24 +0530 tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 04:06:24 +0530] rev 28934
tests: make test-trusted use print_function There was some confusing output format at some places in test-trusted.py.out, the new print function ends with a newline by default whereas the old print statement uses a space generally. So the output in test-trusted.py.out is changed because of some confusing output format which was produced by print statement
Sat, 16 Apr 2016 03:38:23 +0530 tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:38:23 +0530] rev 28933
tests: make test-doctest use absolute_import
Sat, 16 Apr 2016 03:35:27 +0530 tests: make test-hgwebdir-paths use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:35:27 +0530] rev 28932
tests: make test-hgwebdir-paths use absolute_import
Sat, 16 Apr 2016 03:22:45 +0530 tests: make test-lrucachedict use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:22:45 +0530] rev 28931
tests: make test-lrucachedict use print_function
Sat, 16 Apr 2016 03:10:41 +0530 tests: make test-lrucachedict use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:10:41 +0530] rev 28930
tests: make test-lrucachedict use absolute_import
Sat, 16 Apr 2016 03:08:16 +0530 tests: make test-manifest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:08:16 +0530] rev 28929
tests: make test-manifest use absolute_import
Sat, 16 Apr 2016 03:04:23 +0530 tests: make test-pathencode use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:04:23 +0530] rev 28928
tests: make test-pathencode use absolute_import
Sat, 16 Apr 2016 02:59:36 +0530 tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 02:59:36 +0530] rev 28927
tests: make test-simplemerge use absolute_import
Thu, 14 Apr 2016 01:37:29 -0700 crecord: cleanup the remains of commit confirmation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 01:37:29 -0700] rev 28926
crecord: cleanup the remains of commit confirmation The confirmation screen is now only used for the 'review' option we simplify the code and rename the function.
Thu, 14 Apr 2016 01:27:18 -0700 crecord: drop the extra confirmation screen
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 01:27:18 -0700] rev 28925
crecord: drop the extra confirmation screen The commit confirmation is not very useful -- it gives no way to view what you have selected, so you're blindly choosing whether to proceed or not, and it adds a lot of unnecessary friction to committing. In addition, we now have a working 'review' choice for those who really want to review the final change. Ryan McElroy initially submitted a config option to make this optional, but we never saw a V2. However as the freeze is near and curses have never been officially out of the door, I think it is worth skipping the config and trying getting it right for this release.
Fri, 15 Apr 2016 20:37:11 +0900 update: resurrect bare update from null parent to tip-most branch head
Yuya Nishihara <yuya@tcha.org> [Fri, 15 Apr 2016 20:37:11 +0900] rev 28924
update: resurrect bare update from null parent to tip-most branch head The situation is tricky if repository has no "default" branch, because "null" revision belongs to non-existent "default" branch. Before e1dd0de26557, bare update from null would bring us to the tip-most non-closed branch head. e1dd0de26557 removed the special handling of missing "default" branch since we wanted to stick to the uncommitted branch in that case. But, if the parent is "null" revision, and if the missing branch is "default", it shouldn't be an uncommitted branch. In this case, bare update should bring us to the tip-most head as before. This should fix the test breakage introduced by e1dd0de26557.
Tue, 12 Apr 2016 14:43:36 +0000 tests: run import-checker with tests .t files
timeless <timeless@mozdev.org> [Tue, 12 Apr 2016 14:43:36 +0000] rev 28923
tests: run import-checker with tests .t files
Tue, 12 Apr 2016 21:43:56 +0000 import-checker: parse python code from .t files
timeless <timeless@mozdev.org> [Tue, 12 Apr 2016 21:43:56 +0000] rev 28922
import-checker: parse python code from .t files
Wed, 13 Apr 2016 16:34:59 +0000 import-checker: track filenames for SyntaxErrors
timeless <timeless@mozdev.org> [Wed, 13 Apr 2016 16:34:59 +0000] rev 28921
import-checker: track filenames for SyntaxErrors
Wed, 13 Apr 2016 16:36:19 +0000 import-checker: track SyntaxErrors
timeless <timeless@mozdev.org> [Wed, 13 Apr 2016 16:36:19 +0000] rev 28920
import-checker: track SyntaxErrors We don't really need to report SyntaxErrors, since in theory docchecker or a test will catch them, but they happen, and we can't just have the code crash, so for now, we're reporting them.
Mon, 11 Apr 2016 22:34:04 +0000 import-checker: refactor source reading
timeless <timeless@mozdev.org> [Mon, 11 Apr 2016 22:34:04 +0000] rev 28919
import-checker: refactor source reading This will allow .t files to generate multiple sources. It will also allow .py doctests to generate additional sources.
Thu, 14 Apr 2016 01:06:45 +0530 tests: make test-pathencode use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 01:06:45 +0530] rev 28918
tests: make test-pathencode use print_function
Thu, 14 Apr 2016 01:03:24 +0530 tests: make test-run-tests use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 01:03:24 +0530] rev 28917
tests: make test-run-tests use absolute_import
Thu, 14 Apr 2016 00:58:31 +0530 tests: make test-symlink-os-yes-fs-no use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:58:31 +0530] rev 28916
tests: make test-symlink-os-yes-fs-no use absolute_import
Thu, 14 Apr 2016 00:56:08 +0530 tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:56:08 +0530] rev 28915
tests: make test-ui-color use absolute_import
Thu, 14 Apr 2016 00:53:35 +0530 tests: make test-url use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:53:35 +0530] rev 28914
tests: make test-url use absolute_import
Thu, 14 Apr 2016 00:49:58 +0530 tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:49:58 +0530] rev 28913
tests: make test-trusted use absolute_import
Sun, 27 Mar 2016 20:31:56 +0900 templater: add parsing and expansion rules to process "templatealias" section
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 20:31:56 +0900] rev 28912
templater: add parsing and expansion rules to process "templatealias" section The debugtemplate command is updated to show expanded tree, but still the template engine doesn't support alias expansion. That's why the test says "parse error" for now.
Sun, 27 Mar 2016 20:29:03 +0900 templater: add function to parse whole string as template expression
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 20:29:03 +0900] rev 28911
templater: add function to parse whole string as template expression This will be a parser of template aliases, and it can also be used for processing quoted string templates in map files. That's why this function isn't defined in the upcoming _aliasrules class.
Tue, 29 Mar 2016 17:27:34 +0900 parser: factor out _trygetfunc() that extracts function name and arguments
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 17:27:34 +0900] rev 28910
parser: factor out _trygetfunc() that extracts function name and arguments This provides a customization point for templater. In templater, there are two ways to call a unary function: func(x) and x|func. They are processed differently in templater due to historical reasons, but they should be handled in the same way while expanding aliases. In short, x|func should be processed as syntactic sugar for func(x). _funcnode and _getlist() are replaced by _trygetfunc().
Tue, 29 Mar 2016 17:21:11 +0900 parser: make _getalias() return (alias, pattern-args) pair
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 17:21:11 +0900] rev 28909
parser: make _getalias() return (alias, pattern-args) pair This allows us to factor out a function that extracts a function (name, args) pair. See the next patch for why.
Tue, 29 Mar 2016 16:50:16 +0900 parser: drop redundant comparison between alias declaration tree and pattern
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 16:50:16 +0900] rev 28908
parser: drop redundant comparison between alias declaration tree and pattern Since _getalias() explicitly tests the type and name of the pattern tree, we don't need to compare "a.tree == tree" for 'symbol', and "a.tree == tree[:2]" for 'func', where tree is either ('symbol', name) or ('func', ('symbol', name)). This change helps implementing better handling of template aliases. See the subsequent patches for details. The alias.tree field is removed as it is no longer used.
Thu, 14 Apr 2016 14:26:37 +0000 patchbomb: fix public-is-missing hint
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 14:26:37 +0000] rev 28907
patchbomb: fix public-is-missing hint Without this, there is no space between a hash and the -r preceding the next line in the use hg push hint
Thu, 14 Apr 2016 14:36:52 +0000 tests: clarify patchbomb repo is public not remote
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 14:36:52 +0000] rev 28906
tests: clarify patchbomb repo is public not remote
Wed, 13 Apr 2016 13:51:39 +0000 run-tests: set HGMODULEPOLICY for --pure
timeless <timeless@mozdev.org> [Wed, 13 Apr 2016 13:51:39 +0000] rev 28905
run-tests: set HGMODULEPOLICY for --pure Without this, my python 2.6 virtualenv test run with --pure and --local fails with: + ImportError: Python minor version mismatch: The Mercurial extension modules were compiled with Python 2.7.8, but Mercurial is currently using Python with sys.hexversion=33950192: Python 2.6.9 (unknown, Apr 13 2016, 12:40:12) + [GCC 4.9.2 20141101 (Red Hat 4.9.2-1)] + at: ~/hg/py26/bin/python
Thu, 14 Apr 2016 15:26:18 -0400 cmdutil: avoid recycling variable name "name" in namespaces code
Nathaniel Manista <nathaniel@google.com> [Thu, 14 Apr 2016 15:26:18 -0400] rev 28904
cmdutil: avoid recycling variable name "name" in namespaces code This just feels like asking for future trouble and confusion.
Tue, 05 Apr 2016 06:53:33 +0200 update: fix bare update to work on new branch
liscju <piotr.listkiewicz@gmail.com> [Tue, 05 Apr 2016 06:53:33 +0200] rev 28903
update: fix bare update to work on new branch So far bare update on new branch results in 'abort: branch new-branch not found'. This commit fixes this by updating to the parent of wctx. The effect of updating to the parent of wctx is to move to the paren't branch - this means that it is no longer necessary to prevent you from updating if you would lose your newly created branch.
Wed, 13 Apr 2016 09:56:51 +0200 remove: fix --force option help description (issue5177)
liscju <piotr.listkiewicz@gmail.com> [Wed, 13 Apr 2016 09:56:51 +0200] rev 28902
remove: fix --force option help description (issue5177) Before this commit --force option help description stated that file was removed and deleted even if file was added or modified which is not true. Force option removes added file only from dirstate, it doesn't delete it from the filesystem.
Tue, 05 Apr 2016 17:39:59 +0100 logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com> [Tue, 05 Apr 2016 17:39:59 +0100] rev 28901
logtoprocess: new experimental extension This extension lets you direct specific ui.log() information to shell commands, spawned in the background. This can be used to, say, capture timings, commandfailure tracebacks, etc., making the output available to other command-line tools.
Wed, 13 Apr 2016 00:16:21 +0200 convert: keep converted hg parents that are outside convert.hg.revs (BC)
Mads Kiilerich <madski@unity3d.com> [Wed, 13 Apr 2016 00:16:21 +0200] rev 28900
convert: keep converted hg parents that are outside convert.hg.revs (BC) Before, when converting revisions without also including their already converted parents in convert.hg.revs, the parents would no longer be parents. That seems unfortunate and we dare to assume that nobody ever wants that. Instead, preserve parents that are outside the current convert range but already have been converted. The parents returned in getcommit() are unconditionally converted, so we introduce a separate optparents with optional parents.
Thu, 24 Mar 2016 16:01:07 -0700 tests: coverage of ancestry with convert in multiple non-overlapping steps
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Mar 2016 16:01:07 -0700] rev 28899
tests: coverage of ancestry with convert in multiple non-overlapping steps This exposes that parent information is lost in cases where it is possible to preserve it - and where it thus would make sense if that was what happened.
Mon, 29 Feb 2016 22:58:15 +0900 revset: rename findaliases() to expandaliases()
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 22:58:15 +0900] rev 28898
revset: rename findaliases() to expandaliases() This function returns a full tree of alias expansion applied, which sounds different from what "findaliases" would do.
Tue, 29 Mar 2016 16:30:59 +0900 parser: add short comment how aliases are expanded in phases
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 16:30:59 +0900] rev 28897
parser: add short comment how aliases are expanded in phases
Tue, 29 Mar 2016 16:19:31 +0900 parser: reorder alias expansion routine to return early
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 16:19:31 +0900] rev 28896
parser: reorder alias expansion routine to return early I think it improves readability to move trivial cases first, and unindent blocks.
Mon, 29 Feb 2016 22:15:44 +0900 parser: move functions that process alias expansion to rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 22:15:44 +0900] rev 28895
parser: move functions that process alias expansion to rule-set class They will be commonly used by revset and templater. It isn't easy to understand how _expand() works, so I'll add comments by a follow-up patch. The local variable 'alias' is renamed to 'a' to avoid shadowing the global 'alias' class.
Mon, 29 Feb 2016 22:10:48 +0900 revset: unindent codes in _getalias() function
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 22:10:48 +0900] rev 28894
revset: unindent codes in _getalias() function We generally do return early if tree isn't a tuple.
Mon, 29 Feb 2016 19:24:15 +0900 parser: extract helper that creates a dict of aliases
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 19:24:15 +0900] rev 28893
parser: extract helper that creates a dict of aliases This will be common between revset and templater. The local variable 'alias' is renamed to 'a' to avoid shadowing the global 'alias' class.
Mon, 29 Feb 2016 18:33:30 +0900 parser: construct alias object by rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 18:33:30 +0900] rev 28892
parser: construct alias object by rule-set class It was odd that the revsetalias did the whole parsing stuff in __init__(). Instead, this patch adds a factory function to the aliasrules class, and makes the alias (= revsetalias) class a plain-old value object.
Fri, 08 Apr 2016 16:42:43 +0200 graphmod: shorten graph
santiagopim <santiagopim@gmail.com> [Fri, 08 Apr 2016 16:42:43 +0200] rev 28891
graphmod: shorten graph Shorten the graph, cutting the all vertical (not oblique) edges rows. Activate with 'graphshorten = true' in [experimental] section. Example graph with deactivated option: $ hg log --graph --template '{rev} {desc|firstline}' --rev 1035:1015 o 1035 Merge with BOS |\ | o 1034 Fix help output, and a few broken tests. | | | o 1033 Merge with MPM. | |\ | | o 1032 Get patchbomb working with tip again. | | | | | o 1031 Rewrite log command. New version is faster and more featureful. | | | | | o 1030 Merge with MPM. | | |\ | | | o 1029 Emacs: implement hg-incoming, hg-outgoing and hg-push. | | | | | | | o 1028 Add commands.debugconfig. | | | | | | | o 1027 Emacs: fix up hg-log and hg-diff to operate more uniformly. | | | | | | | o 1026 Merge with MPM. | | | |\ | | | | o 1025 Merge with MPM. | | | | | | | | | ~ | | | o 1024 Sync buffers prior to doing a diff. | | | | | | | ~ o | | 1023 Minor tweak to the revgen algorithm |/ / o | 1022 Minor hgwebdir tweaks | | o | 1021 Add Makefile to the manifest | | o | 1020 Add default make rule | | o | 1019 Create helper functions for I/O to files in the working directory | | o | 1018 Add some aliases | | o | 1017 Fix up help for binary options |/ o 1016 Teach annotate about binary files | o 1015 Add automatic binary file detection to diff and export | ~ Example graph with activated option: $ hg log --graph --template '{rev} {desc|firstline}' --rev 1035:1015 o 1035 Merge with BOS |\ | o 1034 Fix help output, and a few broken tests. | o 1033 Merge with MPM. | |\ | | o 1032 Get patchbomb working with tip again. | | o 1031 Rewrite log command. New version is faster and more featureful. | | o 1030 Merge with MPM. | | |\ | | | o 1029 Emacs: implement hg-incoming, hg-outgoing and hg-push. | | | o 1028 Add commands.debugconfig. | | | o 1027 Emacs: fix up hg-log and hg-diff to operate more uniformly. | | | o 1026 Merge with MPM. | | | |\ | | | | o 1025 Merge with MPM. | | | | | | | | | ~ | | | o 1024 Sync buffers prior to doing a diff. | | | | | | | ~ o | | 1023 Minor tweak to the revgen algorithm |/ / o | 1022 Minor hgwebdir tweaks o | 1021 Add Makefile to the manifest o | 1020 Add default make rule o | 1019 Create helper functions for I/O to files in the working directory o | 1018 Add some aliases o | 1017 Fix up help for binary options |/ o 1016 Teach annotate about binary files o 1015 Add automatic binary file detection to diff and export | ~
Mon, 11 Apr 2016 12:06:18 -0700 tests: ensure that 'hg update' is disabled during histedit (issue3655)
Jason Gauci <jjg@fb.com> [Mon, 11 Apr 2016 12:06:18 -0700] rev 28890
tests: ensure that 'hg update' is disabled during histedit (issue3655)
Tue, 12 Apr 2016 00:34:02 -0400 test-remove: drop a useless Windows specific conditional
Matt Harbison <matt_harbison@yahoo.com> [Tue, 12 Apr 2016 00:34:02 -0400] rev 28889
test-remove: drop a useless Windows specific conditional The Windows branch didn't pick up the 'deleting' progress bar addition from 62e73d42bd14. But since the Windows branch already globbed the error message, let's just drop the other branch.
Tue, 15 Mar 2016 23:04:35 -0400 test-blackbox: add missing glob for Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 15 Mar 2016 23:04:35 -0400] rev 28888
test-blackbox: add missing glob for Windows The test warns instead of completes without this.
Tue, 15 Mar 2016 21:56:01 -0400 test-largefiles: stabilize output for Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 15 Mar 2016 21:56:01 -0400] rev 28887
test-largefiles: stabilize output for Windows Systems with unix-permissions have a test above this that adds an additional head.
Tue, 15 Mar 2016 21:47:43 -0400 test-import: fix output on Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 15 Mar 2016 21:47:43 -0400] rev 28886
test-import: fix output on Windows There's a symlink conditionalized test above this that causes the rev to be 1. It isn't important to this test, so ignore it.
Tue, 15 Mar 2016 21:45:32 -0400 test-install: fix output on Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 15 Mar 2016 21:45:32 -0400] rev 28885
test-install: fix output on Windows See 1ff28873830e.
Thu, 07 Apr 2016 00:34:07 +0000 check-code: reject import urllib
timeless <timeless@mozdev.org> [Thu, 07 Apr 2016 00:34:07 +0000] rev 28884
check-code: reject import urllib
Wed, 06 Apr 2016 23:22:12 +0000 pycompat: switch to util.urlreq/util.urlerr for py3 compat
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 23:22:12 +0000] rev 28883
pycompat: switch to util.urlreq/util.urlerr for py3 compat
Thu, 07 Apr 2016 00:05:48 +0000 pycompat: add util.urlerr util.urlreq classes for py3 compat
timeless <timeless@mozdev.org> [Thu, 07 Apr 2016 00:05:48 +0000] rev 28882
pycompat: add util.urlerr util.urlreq classes for py3 compat python3 url.request and url.error are mapped as util.urlreq/util.urlerr python2 equivalents from urllib/urllib2 are mapped according to the py3 hierarchy
Sun, 20 Mar 2016 16:49:56 -0700 test-progress: disable mocking-time tests on chg
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Mar 2016 16:49:56 -0700] rev 28881
test-progress: disable mocking-time tests on chg It's hard to make these tests compatible with chg because a mocked time.time() is recorded and accessed by progbar at random timing. I don't think it's worth fixing this test as it is considered a unit test of time estimates, so just ignores on chg.
Sun, 20 Mar 2016 14:55:56 -0700 hghave: add "chg" flag to skip tests that can't be compatible with chg
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Mar 2016 14:55:56 -0700] rev 28880
hghave: add "chg" flag to skip tests that can't be compatible with chg Several tests fail with chg for several reasons such as loaded chgserver extension, running uisetup() per server instead of per runcommand, etc. Since these tests can't/shouldn't be changed to be chg friendly, we need a flag to skip them. This patch explicitly drops CHGHG environment if chg isn't involved. This way, hghave can just check if CHGHG exists.
Wed, 06 Apr 2016 19:09:12 +0000 tests: add new test for #! shebang lines
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 19:09:12 +0000] rev 28879
tests: add new test for #! shebang lines * use #!/bin/sh not e.g. #!/usr/bin/sh * use #!/usr/bin/env python not e.g. #!/usr/bin/python
Sun, 27 Mar 2016 13:00:28 -0700 largefiles: introduce push --lfrev to control which revisions are pushed
Mads Kiilerich <madski@unity3d.com> [Sun, 27 Mar 2016 13:00:28 -0700] rev 28878
largefiles: introduce push --lfrev to control which revisions are pushed The default of pushing all largefiles referenced in outgoing revisions is safe, but also expensive and sometimes not what is needed. We thus introduce a --lfrev option, similar to what pull already has. By specifying an empty set of revisions (or null), it is possible to get lazy (and insecure!) pushes of revisions without referenced largefiles, similar to how pull works.
Wed, 13 Apr 2016 01:45:45 +0200 largefiles: don't access repo.changelog directly in getlfilestoupload
Mads Kiilerich <madski@unity3d.com> [Wed, 13 Apr 2016 01:45:45 +0200] rev 28877
largefiles: don't access repo.changelog directly in getlfilestoupload Make it possible to pass both nodes and revisions to getlfilestoupload.
Wed, 13 Apr 2016 01:09:11 +0200 localrepo: refactor prepushoutgoinghook to take a pushop
Mads Kiilerich <madski@unity3d.com> [Wed, 13 Apr 2016 01:09:11 +0200] rev 28876
localrepo: refactor prepushoutgoinghook to take a pushop prepushoutgoinghook was introduced in 6c383c871fdb and largefiles is the only in-tree use of it. Refactor it to be more useful for other use cases in largefiles.
Tue, 29 Mar 2016 00:08:25 +0900 parser: unify parser function of alias declaration and definition
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 00:08:25 +0900] rev 28875
parser: unify parser function of alias declaration and definition We no longer have to keep them separately.
Tue, 29 Mar 2016 00:05:14 +0900 revset: unify function that parses alias declaration and definition
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 00:05:14 +0900] rev 28874
revset: unify function that parses alias declaration and definition We no longer need separate parsers. Only difference between _parsealiasdecl() and _parsealiasdefn() is whether or not to flatten 'or' tree. Since alias declaration should have no 'or' operator, there was no practical difference.
Mon, 29 Feb 2016 18:10:07 +0900 parser: move alias definition parser to common rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 18:10:07 +0900] rev 28873
parser: move alias definition parser to common rule-set class The original _parsealiasdefn() function is split into common _builddefn() and revset-specific _parsealiasdefn(). revset._relabelaliasargs() is removed as it is no longer used. The doctests are ported by using the dummy parse().
Mon, 29 Feb 2016 18:00:51 +0900 parser: move _relabelaliasargs() to common rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 18:00:51 +0900] rev 28872
parser: move _relabelaliasargs() to common rule-set class This has no doctest because it will be covered by _builddefn() introduced by the next patch. revset._relabelaliasargs() will be removed soon.
Mon, 29 Feb 2016 17:54:03 +0900 parser: move alias declaration parser to common rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 17:54:03 +0900] rev 28871
parser: move alias declaration parser to common rule-set class The original _parsealiasdecl() function is split into common _builddecl() and revset-specific _parsealiasdecl(). And the original _parsealiasdecl() call is temporarily replaced by rules._builddecl(), which should be eliminated later. The doctests are mostly ported by using the dummy parse(), but the test for 'foo bar' is kept in _parsealiasdecl() as it checks if "pos != len(decl)" is working. Also, 'foo($1)' test is added to make sure the alias tokenizer can handle '$1' symbol, which is the only reason why we need _parsealiasdecl().
Sun, 03 Apr 2016 16:55:23 +0900 parser: add stub class that will host alias parsing and expansion
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 16:55:23 +0900] rev 28870
parser: add stub class that will host alias parsing and expansion This class will keep syntax rules that are necessary to parse and expand aliases. The implementations will be extracted from the revset module. In order to make the porting easier, this class keeps parsedecl and parsedefn separately, which will be unified later. Also, getlist and funcnode will be refactored by future patches for better handling of the template aliases. The following public functions will be added: aliasrules.build(decl, defn) -> aliasobj parse decl and defn into an object that keeps alias name, arguments and replacement tree. aliasrules.buildmap(aliasitems) -> aliasdict helper to build() a dict of alias objects from a list of (decl, defn) aliasrules.expand(aliasdict, tree) -> tree expand aliases in tree recursively Because these functions aren't introduced by this series, there would remain a few wrapper functions in the revset module. These ugly wrappers should be eliminated by the next series. This class is considered an inheritable namespace, which will host only class/static methods. That's because it won't have no object-scope variables. I'm not a big fan of using class as a syntax sugar, but I admit it can improve code readability at some level. So let's give it a try.
Mon, 29 Feb 2016 17:43:39 +0900 revset: narrow scope of "except ParseError" block in _parsealiasdecl()
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 17:43:39 +0900] rev 28869
revset: narrow scope of "except ParseError" block in _parsealiasdecl() This helps to factor out a common function. "if True" will be removed soon.
Tue, 12 Apr 2016 04:06:50 -0700 obsstore: move delete function from obsstore class to repair module
Kostia Balytskyi <ikostia@fb.com> [Tue, 12 Apr 2016 04:06:50 -0700] rev 28868
obsstore: move delete function from obsstore class to repair module Since one of the original patches was accepted already and people on the mailing list still have suggestions as to how this should be improved, I'm implementing those suggestions in the following patches (this and the ones that might follow).
Tue, 12 Apr 2016 03:40:53 -0700 debugobsolete: style fixes to debugobsolete that slipped from original commit
Kostia Balytskyi <ikostia@fb.com> [Tue, 12 Apr 2016 03:40:53 -0700] rev 28867
debugobsolete: style fixes to debugobsolete that slipped from original commit
Wed, 09 Mar 2016 10:47:33 -0500 import: document --exact behavior in more detail
Matt Mackall <mpm@selenic.com> [Wed, 09 Mar 2016 10:47:33 -0500] rev 28866
import: document --exact behavior in more detail
Mon, 11 Apr 2016 19:46:50 +0200 util: add doctest to datestr()
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Apr 2016 19:46:50 +0200] rev 28865
util: add doctest to datestr()
Tue, 12 Apr 2016 00:30:28 +0200 date: fix boundary check of negative integer
Florent Gallaire <fgallaire@gmail.com> [Tue, 12 Apr 2016 00:30:28 +0200] rev 28864
date: fix boundary check of negative integer
Sun, 10 Apr 2016 22:00:34 +0100 chg: server exited with code 0 without being connectable is an error
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 22:00:34 +0100] rev 28863
chg: server exited with code 0 without being connectable is an error Before this patch, if the server started by chg has exited with code 0 without creating a connectable unix domain socket at the specified address, chg will exit with code 0, which is not the correct behavior. It can happen, for example, CHGHG is set to /bin/true. This patch addresses the issue by checking the exit code of the server and printing a new error message if the server exited normally but cannot be reached.
Fri, 08 Apr 2016 23:33:28 -0700 shelve: refactor directory name into constant
Oleg Afanasyev <olegaf@fb.com> [Fri, 08 Apr 2016 23:33:28 -0700] rev 28862
shelve: refactor directory name into constant Shelve directory name extracted into constant to avoid typos/duplication.
Sun, 10 Apr 2016 20:55:37 +0000 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 20:55:37 +0000] rev 28861
pycompat: switch to util.stringio for py3 compat
Sun, 10 Apr 2016 21:32:08 +0000 py3: use multi-line import in test-wireproto.py
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:32:08 +0000] rev 28860
py3: use multi-line import in test-wireproto.py The reason I did it is that I had a later commit that was adding to the list.
Sun, 10 Apr 2016 21:32:05 +0000 py3: use absolute_import in test-hgweb-non-interactive.t
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:32:05 +0000] rev 28859
py3: use absolute_import in test-hgweb-non-interactive.t
Sun, 10 Apr 2016 21:32:01 +0000 py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:32:01 +0000] rev 28858
py3: use absolute_import in test-hgweb-no-request-uri.t
Sun, 10 Apr 2016 21:31:58 +0000 py3: use absolute_import in test-hgweb-no-path-info.t
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:31:58 +0000] rev 28857
py3: use absolute_import in test-hgweb-no-path-info.t
Mon, 11 Apr 2016 00:18:27 +0100 chg: use fsetcloexec instead of closing lockfd manually
Jun Wu <quark@fb.com> [Mon, 11 Apr 2016 00:18:27 +0100] rev 28856
chg: use fsetcloexec instead of closing lockfd manually Since we have the fsetcloexec utility function, use it instead of closing lockfd manually.
Mon, 11 Apr 2016 00:17:17 +0100 chg: extract the logic of setting FD_CLOEXEC to a utility function
Jun Wu <quark@fb.com> [Mon, 11 Apr 2016 00:17:17 +0100] rev 28855
chg: extract the logic of setting FD_CLOEXEC to a utility function Setting FD_CLOEXEC is useful for other fds such like lockfd and sockdirfd, move the logic from hgc_open to util.
Sun, 10 Apr 2016 03:14:32 +0100 chg: add fchdirx as a utility function
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 03:14:32 +0100] rev 28854
chg: add fchdirx as a utility function As part of the series to support long socket paths, we need to use fchdir and check its result in several places. Make it a utility function.
Sun, 10 Apr 2016 22:58:11 +0100 chg: check lockfd at freecmdserveropts
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 22:58:11 +0100] rev 28853
chg: check lockfd at freecmdserveropts We check for sockdirfd at freecmdserveropts but not lockfd, which is a bit strange to people new to the code. Add a comment and an assert to make it clear that lockfd should be closed earlier.
Sun, 10 Apr 2016 23:56:00 +0100 chg: add sockdirfd to cmdserveropts
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 23:56:00 +0100] rev 28852
chg: add sockdirfd to cmdserveropts As part of the series to support long socket paths, we need to add the fd of the directory to the cmdserveropts structure so we can use basenames instead of full paths for sockname, redirectsockname, and lockfile.
Sun, 10 Apr 2016 21:56:05 +0100 chg: fix spelling in the error message about error waiting for cmdserver
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 21:56:05 +0100] rev 28851
chg: fix spelling in the error message about error waiting for cmdserver This is a trivial spelling and grammar fix.
Sun, 10 Apr 2016 11:02:58 -0700 sslutil: document and slightly refactor validation logic
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 11:02:58 -0700] rev 28850
sslutil: document and slightly refactor validation logic This main purpose of this patch is to make it clearer that fingerprint pinning takes precedence over CA verification. This will make subsequent refactoring to the validation code easier to read.
Sun, 10 Apr 2016 11:00:41 -0700 sslutil: require a server hostname when wrapping sockets (API)
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 11:00:41 -0700] rev 28849
sslutil: require a server hostname when wrapping sockets (API) All callers appear to be passing the hostname. So this shouldn't break anything. By specifying the hostname, more validation options from the ssl module are available to us. Although this patch stops short of using them.
Sun, 10 Apr 2016 10:59:45 -0700 sslutil: move and document verify_mode assignment
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 10:59:45 -0700] rev 28848
sslutil: move and document verify_mode assignment Consolidating all the SSLContext options setting makes the code a bit easier to read.
Sun, 10 Apr 2016 10:54:53 -0700 tests: use --insecure instead of web.cacerts=!
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 10:54:53 -0700] rev 28847
tests: use --insecure instead of web.cacerts=! --insecure is the proper and documented way to do this. The end result is the same: dispatch will set web.cacerts to ! when --insecure is passed. This patch is necessary to refactor handling of web.cacerts in upcoming patches.
Sun, 10 Apr 2016 10:58:47 -0700 help: remove references to "Python 2.6 or later"
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 10:58:47 -0700] rev 28846
help: remove references to "Python 2.6 or later" We require Python 2.6. So there is no value to these docs.
Mon, 04 Apr 2016 02:05:10 -0700 commands: make --rev and --index compatible in debugobsolete
Kostia Balytskyi <ikostia@fb.com> [Mon, 04 Apr 2016 02:05:10 -0700] rev 28845
commands: make --rev and --index compatible in debugobsolete
Sun, 03 Apr 2016 19:38:57 +0900 tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:38:57 +0900] rev 28844
tests: enable import checker for tests/**.py files Several known-bad files are excluded as they couldn't be trivially fixed. In principle, we should fix them first, however, it would have more risk to keep Py3k porting going without the test coverage. Still contrib/**.py aren't covered, which needs another round.
Tue, 05 Apr 2016 23:38:00 +0900 tests: stop direct symbol import of mercurial modules in test-status-inprocess
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:38:00 +0900] rev 28843
tests: stop direct symbol import of mercurial modules in test-status-inprocess
Tue, 05 Apr 2016 23:35:45 +0900 tests: alias ui as uimod in test-revlog-ancestry/test-ui-verbosity
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:35:45 +0900] rev 28842
tests: alias ui as uimod in test-revlog-ancestry/test-ui-verbosity
Tue, 05 Apr 2016 23:23:43 +0900 tests: move stdlib imports before mercurial modules in test-parseindex2
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:23:43 +0900] rev 28841
tests: move stdlib imports before mercurial modules in test-parseindex2
Tue, 05 Apr 2016 23:22:38 +0900 tests: stop direct symbol import of pprint.pprint in tests-minirst
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:22:38 +0900] rev 28840
tests: stop direct symbol import of pprint.pprint in tests-minirst
Tue, 05 Apr 2016 23:30:18 +0900 tests: import mercurial modules by name in test-propertycache
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:30:18 +0900] rev 28839
tests: import mercurial modules by name in test-propertycache This is our convention, and silences import-checker.py that would say imports weren't lexically sorted.
Tue, 05 Apr 2016 23:33:55 +0900 tests: remove unused import of mercurial.repoview from test-propertycache
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:33:55 +0900] rev 28838
tests: remove unused import of mercurial.repoview from test-propertycache I don't see any reason to import it, but if there is a reason, please disregard this and the next patch.
Sun, 03 Apr 2016 11:23:31 +0900 templater: drop deprecated handling of KeyError from changeset_templater
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 11:23:31 +0900] rev 28837
templater: drop deprecated handling of KeyError from changeset_templater It's been superseded by 09cde75e0613 and the previous patch. templater.mapfile is no longer used and removed.
Wed, 06 Apr 2016 20:34:34 +0000 test-commandserver: handle cStringIO.StringIO/io.StringIO divergence
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:34:34 +0000] rev 28836
test-commandserver: handle cStringIO.StringIO/io.StringIO divergence
Wed, 06 Apr 2016 20:31:31 +0000 pycompat: add util.stringio to handle py3 divergence
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:31:31 +0000] rev 28835
pycompat: add util.stringio to handle py3 divergence util.stringio = cStringIO.StringIO / io.StringIO
Wed, 06 Apr 2016 22:35:52 +0000 pycompat: alias xrange to range in py3
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 22:35:52 +0000] rev 28834
pycompat: alias xrange to range in py3
Fri, 08 Apr 2016 14:03:05 +0000 pycompat: fix demand import handling of Queue
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 14:03:05 +0000] rev 28833
pycompat: fix demand import handling of Queue When demandimport is enabled, simply importing a non existent module does not trigger ImportError, a property access is necessary.
Tue, 29 Mar 2016 17:43:23 +0000 util: use __code__ (available since py2.6)
timeless <timeless@mozdev.org> [Tue, 29 Mar 2016 17:43:23 +0000] rev 28832
util: use __code__ (available since py2.6)
Sun, 03 Apr 2016 11:20:50 +0900 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 11:20:50 +0900] rev 28831
templater: give better error message for invalid engine type Before, KeyError was caught at changeset_templater._show(), which said "no key named '%s'" as it was intended to catch the KeyError of unknown map key. Instead, we should catch KeyError explicitly for better error indication. For those who don't know what the template engine is (read "everyone"), it is hidden extension feature that allows switching template syntax in map file. See d8c5a7f25a40 for details.
Thu, 07 Apr 2016 14:10:49 -0700 transaction: allow running file generators after finalizers
Durham Goode <durham@fb.com> [Thu, 07 Apr 2016 14:10:49 -0700] rev 28830
transaction: allow running file generators after finalizers Previously, transaction.close would run the file generators before running the finalizers (see the list below for what is in each). Since file generators contain the bookmarks and the dirstate, this meant we made the dirstate and bookmarks visible to external readers before we actually wrote the commits into the changelog, which could result in missing bookmarks and missing working copy parents (especially on servers with high commit throughput, since pulls might fail to see certain bookmarks in this situation). By moving the changelog writing to be before the bookmark/dirstate writing, we ensure the commits are present before they are referenced. This implementation allows certain file generators to be after the finalizers. We didn't want to move all of the generators, since it's important that things like phases actually run before the finalizers (otherwise you could expose commits as public when they really shouldn't be). For reference, file generators currently consist of: bookmarks, dirstate, and phases. Finalizers currently consist of: changelog, revbranchcache, and fncache.
Thu, 07 Apr 2016 11:11:55 +0000 run-tests: move install.err into test area
timeless <timeless@mozdev.org> [Thu, 07 Apr 2016 11:11:55 +0000] rev 28829
run-tests: move install.err into test area Without this, sometimes installerrs generated errors about no such file. It also did not work well when you had multiple tests runners running around. It also did not make sense to pollute the repository test directory with the log file.
Fri, 08 Apr 2016 18:35:49 +0000 help: report source of aliases
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 18:35:49 +0000] rev 28828
help: report source of aliases
Fri, 08 Apr 2016 16:05:52 +0000 compact: add color labels to -Tcompact
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 16:05:52 +0000] rev 28827
compact: add color labels to -Tcompact
Fri, 08 Apr 2016 22:15:06 +0200 util: fix doc for datestr()
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Apr 2016 22:15:06 +0200] rev 28826
util: fix doc for datestr() timezone parameter was removed with c3182eeb70ea
Fri, 08 Apr 2016 14:11:03 +0200 date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513)
Florent Gallaire <fgallaire@gmail.com> [Fri, 08 Apr 2016 14:11:03 +0200] rev 28825
date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513) DVCS are very useful to store various texts (as legislation) written before Unix epoch. Fri, 13 Dec 1901 is a nice gain over Thu, 01 Jan 1970. Revert dd24f3e7ca9e and e1002cf9fe54, fix c208dcd0f709. Add tests.
Wed, 06 Apr 2016 19:08:04 +0000 tests: use /usr/bin/env python for test-status-inprocess.py
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 19:08:04 +0000] rev 28824
tests: use /usr/bin/env python for test-status-inprocess.py everyone else uses it, and the next commit will add a rule for it
Wed, 06 Apr 2016 22:26:47 -0400 run-tests: fix broken regular expression
Augie Fackler <augie@google.com> [Wed, 06 Apr 2016 22:26:47 -0400] rev 28823
run-tests: fix broken regular expression The regular expression in use passed tests because the test repo only has single-digit changesets present. When I tried to use this for real today, it broke, because the regular expression would only match a single digit. https://xkcd.com/1171/, or something like that.
Tue, 05 Apr 2016 12:19:45 -0700 test: don't rely on __del__ in test-devel-warnings.t
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 05 Apr 2016 12:19:45 -0700] rev 28822
test: don't rely on __del__ in test-devel-warnings.t Whatever the future of __del__ in Mercurial is, that devel-warning test is not about testing the automatic transaction rollback and we should explicitly call release. This change make this tests pass with pypy, as pypy try less hard to call __del__ at program exit.
Tue, 05 Apr 2016 20:01:23 +0100 dispatch: split out warning message generation to separate function
Martijn Pieters <mjpieters@fb.com> [Tue, 05 Apr 2016 20:01:23 +0100] rev 28821
dispatch: split out warning message generation to separate function Allow for patching warning message generation, or for patching out the ui.log / ui.warn behaviour (but still generate the warning message).
Wed, 06 Apr 2016 20:08:18 +0000 check-code: reject import Queue, suggest util.queue class for py3 compat
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:08:18 +0000] rev 28820
check-code: reject import Queue, suggest util.queue class for py3 compat
Wed, 06 Apr 2016 20:07:51 +0000 scmutil: use util.queue/util.empty for py3 compat
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:07:51 +0000] rev 28819
scmutil: use util.queue/util.empty for py3 compat
Wed, 06 Apr 2016 20:00:49 +0000 pycompat: add empty and queue to handle py3 divergence
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:00:49 +0000] rev 28818
pycompat: add empty and queue to handle py3 divergence While the pycompat module will actually handle divergence, please access these properties from the util module: util.queue = Queue.Queue / queue.Queue util.empty = Queue.Empty / queue.Empty
Mon, 04 Apr 2016 15:39:13 +0200 convert: kill dead code
Julien Cristau <julien.cristau@logilab.fr> [Mon, 04 Apr 2016 15:39:13 +0200] rev 28817
convert: kill dead code gitread is unused with the new commandline-based code.
Mon, 04 Apr 2016 15:38:48 +0200 convert: don't ignore errors from git diff-tree
Julien Cristau <julien.cristau@logilab.fr> [Mon, 04 Apr 2016 15:38:48 +0200] rev 28816
convert: don't ignore errors from git diff-tree
Wed, 06 Apr 2016 18:19:36 +0000 crecord: check for untracked arguments
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 18:19:36 +0000] rev 28815
crecord: check for untracked arguments hg commit tracked untracked -- fails complaining about untracked prior to this commit, hg commit -i tracked untracked -- did not fail This is corrected by calling the refactored localrepo.checkcommitpatterns
Wed, 06 Apr 2016 18:08:38 +0000 localrepo: drop force check from checkcommitpatterns
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 18:08:38 +0000] rev 28814
localrepo: drop force check from checkcommitpatterns It was retained to make the code movement clearer
Wed, 06 Apr 2016 17:52:17 +0000 localrepo: refactor commit argument check as checkcommitpatterns
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 17:52:17 +0000] rev 28813
localrepo: refactor commit argument check as checkcommitpatterns
Tue, 05 Apr 2016 04:26:20 +0000 run-tests: handle empty tests
timeless <timeless@mozdev.org> [Tue, 05 Apr 2016 04:26:20 +0000] rev 28812
run-tests: handle empty tests
Tue, 12 Jan 2016 09:30:57 +0000 docchecker: try to reject single quotes
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 09:30:57 +0000] rev 28811
docchecker: try to reject single quotes
Thu, 03 Mar 2016 03:32:44 +0000 docchecker: report context line at most once
timeless <timeless@mozdev.org> [Thu, 03 Mar 2016 03:32:44 +0000] rev 28810
docchecker: report context line at most once
Wed, 06 Jan 2016 20:45:50 +0000 tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 20:45:50 +0000] rev 28809
tests: splitting test-gendoc.t into per file tests Localizers can now run test-gendoc-$LOCALE.t instead of test-gendoc.t. After this change, test-gendoc.t only checks whether there is *some* localization for the expected set of languages and no others. Whenever a locale i18n/$LOCALE.po is added, someone needs to add test-gendoc-$LOCALE.t
Tue, 05 Apr 2016 23:21:17 +0900 test-hgweb-auth: stop direct symbol import of mercurial.error.Abort
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:21:17 +0900] rev 28808
test-hgweb-auth: stop direct symbol import of mercurial.error.Abort
Tue, 05 Apr 2016 23:20:04 +0900 test-hgweb-auth: alias ui as uimod
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:20:04 +0900] rev 28807
test-hgweb-auth: alias ui as uimod
Tue, 05 Apr 2016 23:18:52 +0900 test-hg-parseurl: stop direct symbol import of mercurial.hg.parseurl
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:18:52 +0900] rev 28806
test-hg-parseurl: stop direct symbol import of mercurial.hg.parseurl
(0) -10000 -3000 -1000 -240 +240 +1000 +3000 +10000 tip