- Nov 02, 2014
-
-
Matt Mackall authored
-
Matt Mackall authored
-
- Nov 01, 2014
-
-
Pierre-Yves David authored
Further digging on this issue show that the limit on the sample size used in discovery never works for heads. Here is a quote from the code itself: desiredlen = size - len(always) if desiredlen <= 0: # This could be bad if there are very many heads, all unknown to the # server. We're counting on long request support here. The long request support never landed and evolution make the "very many heads, all unknown to the server" case quite common. We implement a simple and stupid hard limit of sample size for all query. This should prevent HTTP 414 error with the current state of the code.
-
Pierre-Yves David authored
History rewriting commands like histedit tend to use temporary commits. They may schedule hook execution on these temporary commits for after the lock has been released. But temporary commits are likely to have been stripped before the lock is released (and the hook run). Hook executed for missing revisions leads to various crashes. We disable hooks execution for revision missing in the repo. This provides a dirty but simple fix to user issues.
-
Pierre-Yves David authored
The __getitem__ method have been removed. The "first" method is to be used instead. Test have been extended to test this code path.
-
Pierre-Yves David authored
The lazy sorting were not enforced on addset. This was made visible through MQ.
-
Matt Mackall authored
On streaming clone, we were priming the local branch cache with the remote branchmap, without checking which heads were closed. This fixes an issue introduced in: changeset: 17740:e6067bec18da user: Tomasz Kleczek <tomasz.kleczek@fb.com> date: Wed Oct 03 13:19:53 2012 -0700 summary: branchcache: fetch source branchcache during clone (issue3378) that was exposed in 2.9 by: changeset: 20192:38fad5e76ee8 user: Brodie Rao <brodie@sf.io> date: Mon Sep 16 01:08:29 2013 -0700 summary: branches: simplify with repo.branchmap().iterbranches()
-
Mads Kiilerich authored
Based on sed -n 's/^\([a-z0-9-]*\):\(\s.*\)\?$/\1/gp' Makefile | xargs echo add check, check-code, update-pot, some packaging targets
-
Mads Kiilerich authored
-
Matt Mackall authored
-
Mads Kiilerich authored
-
Mads Kiilerich authored
-
Katsunori FUJIWARA authored
-
Wagner Bruna authored
-
Wagner Bruna authored
-
- Oct 31, 2014
-
-
Katsunori FUJIWARA authored
-
Durham Goode authored
ef62c66bee1b broke bookmarks getting copied during uncompressed clones. Since most of the pull logic has been moved into exchange.py, lets just call exchange.pull to fix up the repo with the latest bits after the streaming clone has bootstrapped the repo. This keeps us from having to duplicate the bookmark logic.
-
Martin von Zweigbergk authored
The matcher variable 'm' in checkstatus() is reset to None on each call, so the caching of the matcher no longer happens as it was intended. This seems to be a regression in ed7b674824a3 (revset: added lazyset implementation to checkstatus, 2014-01-03). Fix by moving the cached matcher into the enclosing function so it's actually cached across calls. This speeds up hg log -r 'modifies(mercurial/context.py)' >/dev/null from 7.5s to 4s. Also see similar fix in f2aeff8a87b6 (revset: avoid recalculating filesets, 2014-10-22).
-
Katsunori FUJIWARA authored
-
Katsunori FUJIWARA authored
-
Katsunori FUJIWARA authored
-
Katsunori FUJIWARA authored
According to warning message (introduced by 38e0363dcbe0) in filemerge.py, the former should be used as official name.
-
Katsunori FUJIWARA authored
-
Katsunori FUJIWARA authored
The latter command is already deprecated.
-
Katsunori FUJIWARA authored
"specifying FILE patterns" should refer the former.
-
- Oct 30, 2014
-
-
Matt Mackall authored
-
Matt Mackall authored
-
- Oct 27, 2014
-
-
Wagner Bruna authored
-
- Oct 23, 2014
-
-
Wagner Bruna authored
-
- Oct 18, 2014
-
-
Pierre-Yves David authored
Before this change, the file were written for every call to `tr.close()` exposing data to reader far too early.
-
- Sep 29, 2014
-
-
Pierre-Yves David authored
We extract the code generating files into its own function. We are about to move this code around to fix a bug. We'll need it in a function soon to reuse it for "pending" logic. So we move the code into a function instead of moving it twice.
-
- Oct 29, 2014
-
-
Matt Harbison authored
Amend will reuse the original username if a new one is not provided with -U, but obsolete.createmarkers() only considers ui.username() for the obsolete marker's metadata. Allowing the metadata field to be spoofed seems to defeat the point of the field in the first place. This covers 'evolve amend' and 'ci --amend' with evolve enabled. Without this, the transaction aborts but the parent changeset is set to -1. The corresponding test will be added to evolve separately.
-
- Oct 28, 2014
-
-
Durham Goode authored
hg log -r 1 ... -r 100 was never returning due to a regression in the way addset computes __nonzero__. It used 'bool(self._r1 or self._r2)' which required executing self._r1.__nonzero__ twice (once for the or, once for the bool). hg log with a lot of -r's happens to build a one sided addset tree of N length, which ends up being 2^N performance. This patch fixes it by converting to bool before or'ing. This problem can be repro'd with something as simple as: hg log `for x in $(seq 1 50) ; do echo "-r $x "; done` Adding '1 + 2 + ... + 20' to the revsetbenchmark.txt didn't seem to repro the problem, so I wasn't able to add a revset benchmark for this issue.
-
Matt Mackall authored
-
- Oct 27, 2014
-
-
Matt Mackall authored
This was fixed earlier by moving all the symlink bits to a section to the end of the file, but then it was broken (by the same person) by adding more tests at the end.
-
- Oct 24, 2014
-
-
Siddharth Agarwal authored
Previously, we'd scan through the entire directory listing looking for a normalized match. This is O(N) in the number of files in the directory. If we decide to call util.fspath on each file in it, the overall complexity works out to O(N^2). This becomes a problem with directories a few thousand files or larger. Switch to using a dictionary instead. There is a slightly higher upfront cost to pay, but for cases like the above this is amortized O(1). Plus there is a lower constant factor because generator comprehensions are faster than for loops, so overall it works out to be a very small loss in performance for 1 file, and a huge gain when there's more. For a large repo with around 200k files in it on a case-insensitive file system, for a large directory with over 30,000 files in it, the following command was tested: ls | shuf -n $COUNT | xargs hg status This command leads to util.fspath being called on $COUNT files in the directory. COUNT before after 1 0.77s 0.78s 100 1.42s 0.80s 1000 6.3s 0.96s I also tested with COUNT=10000, but before took too long so I gave up.
-
- Oct 27, 2014
-
-
Matt Mackall authored
-
Matt Mackall authored
-
Katsunori FUJIWARA authored
Before this patch, "test-obsolete.t" fails on Windows environment, because strings corresponded to "tm_wday" (day of the week) field are incorrect. On POSIX environment, "gmtime()" returns correct "tm_wday" value even for negative "time_t" value. On the other hand, it returns incorrect one on Windows environment. At least, "gmtime()" of the Windows runtime library bundled with Python 2.7.3 does. According to 9a7d0f7e0561 introducing original timestamp value '56 120', it shouldn't cause negative "time_t" value. test-obsolete: remove subminute timezone in test Obsmarker format "1" does not supports sub minute timezone. So we change the test to something slightly more sensible. It replaced "-d '56 12'" by "-d '56 120'".
-
Katsunori FUJIWARA authored
Before this patch, a part of "test-alias.t" fails unexpectedly on Windows environment, because "cmd.exe" can't evaluate "$HG_ARGS" expression in shell alias correctly. This patch uses "%HG_ARGS%" in shell alias on Windows instead of "$HG_ARGS" to expand it correctly.
-