- Dec 14, 2015
- Dec 13, 2015
-
-
Gregory Szorc authored
The b() helper was needed because Python < 2.6 didn't support bytes literals (b''). Now that we don't support Python < 2.6, we no longer need this helper.
-
- Dec 15, 2015
-
-
Mathias De Maré authored
-
Augie Fackler authored
This opens the door to working slightly more closely with the manifest type and letting it optimize out some of the diff comparisons for us, and also makes life significantly easier for narrowhg.
-
Augie Fackler authored
Once we get a matcher down into manifestmerge, we can make narrowhg work more easily and potentially let manifest.match().diff() do less work in manifestmerge.
-
- Dec 14, 2015
-
-
Augie Fackler authored
This is relatively rarely used functionality, but migrating this to a matcher will make future work on narrow clones more feasible.
-
- Dec 12, 2015
-
-
Martin von Zweigbergk authored
Before 2773540c3650 (match: remove unnecessary optimization where visitdir() returns 'all', 2015-05-06), match.visitdir() used to return the special value 'all' to indicate that it was known that all subdirectories would also be included in the match. The purpose for that value was to avoid calling the matcher on all the paths. It turned out that calling the matcher was not a problem, so the special return value was removed and the code was simplified. However, if we use the same special value for not just avoiding calling the matcher on each file, but to avoid iterating over each file, it's a much bigger win. On commands like hg st --rev .^ --rev . dom/ we run the matcher (dom/) on the two manifests, then diff the narrowed manifest. If the size of the match is much larger than the size of the diff, this is wasteful. In the above case, we would end up iterating over the 15k-or-so files in dom/ for each of the manifests, only to later discover that they are mostly the same. This means that runningt the command above is usually slower than getting the status for the entire repo, because that code avoids calling treemanifest.match() and only calls treemanifest.diff(), which loads only what's needed for the diff. Let's fix this by reintroducing the 'all' value in match.visitdir() and making treemanifest.match() return a lazy copy of the manifest from dom/ and down (in the above case). This speeds up the above command on the Firefox repo from 0.357s to 0.137s (best of 5). The wider the match, the bigger the speedup.
-
- Dec 13, 2015
-
-
Bryan O'Sullivan authored
-
Bryan O'Sullivan authored
-
Bryan O'Sullivan authored
One poor unfortunate line was hanging way off the right hand side of the universe. Rescued it.
-
- Dec 12, 2015
-
-
Gregory Szorc authored
-
Gregory Szorc authored
-
Gregory Szorc authored
While I was here, I removed the try..except around importing cStringIO because cStringIO should always be importable on modern Python versions. We already do an unconditional import in other files.
-
Gregory Szorc authored
-
Gregory Szorc authored
-
Gregory Szorc authored
-
Gregory Szorc authored
-
Gregory Szorc authored
-
Gregory Szorc authored
-
Gregory Szorc authored
Without this, running gendoc.py during an install without C modules available (via `make local`) will result in an import failure because the default module load policy insists on C modules. We also remove the sys.path adjustment because it is no longer needed since our magic importer handles things.
-
- Dec 11, 2015
-
-
Matt Mackall authored
-
Pierre-Yves David authored
This introduces a test for the change introduced in 8f5735b4aca5.
-
Bryan O'Sullivan authored
This has a small, but measurable, effect on performance if a pattern file is very large. In an artificial test with 200,000 lines of pattern data, using re2 reduced read time by 200 milliseconds.
-
Bryan O'Sullivan authored
Although support for comments in hgignore files has existed for a while, it was previously untested.
-
- Dec 09, 2015
-
-
timeless authored
Before, hg help -c was the same as hg help, now it only shows commands. Before, hg help -e was the same as hg help, now it only shows extensions. Before, hg help -k crashed, now it shows all topics.
-
timeless authored
update test coverage to explicitly define when help -c should list debug/deprecated items.
-
timeless authored
-
- Nov 30, 2015
-
-
timeless authored
-
- Dec 10, 2015
-
-
Laurent Charignon authored
When committing interactively without changes, the user would get a ValueError exception. This patch adds a dictionary to the return value of filterpatch when there are no files to change.
-
- Dec 07, 2015
-
-
Yuya Nishihara authored
Since 5f2a4fc3c4fa, #fragment was missing in "hg paths" output because path.loc was changed to a parsed URL. "hg paths" should use path.rawloc to show complete URLs.
-
- Dec 03, 2015
-
-
Pierre-Yves David authored
The 'peer.known' call (handled at the repository level) was applying its own manual filtering (looking at phases) instead of relying on the repoview mechanism. This led to the discovery finding more "common" node that 'getbundle' was willing to recognised. From there, bad things happen, issue4982 is a symptom of it. While situations like described in issue4982 can still happen because of race conditions, fixing 'peer.known' is important for consistency in all cases. We update the code to use 'repoview' filtering. This lead to small changes in the tests for exchanging obsolescence marker because the discovery yields different results. The test affected in 'test-obsolete-changeset-exchange.t' is a test for issue4982 getting back to its expected state.
-
- Dec 09, 2015
-
-
Pierre-Yves David authored
A fix to issue4982 (not fixed in this patch) will reinforce the filtering during discovery. This will makes two of our test repositories appear unrelated (because all common content is properly hidden). To avoid this, we introduce an extra base changeset that will not get obsoleted. This affects various test output so we put this addition in its own changeset.
-
- Dec 08, 2015
-
-
timeless authored
-
Martin von Zweigbergk authored
We currently allow updating and merging (with --force) when there are unresolved merge conflicts, as long as there is only one parent of the working copy. Even worse, when updating to another revision (linearly), if one of the unresolved files (including any conflict markers in the working copy) can now be merged cleanly with the target revision, the file becomes marked as resolved. While we could potentially allow updates that affect only files that are not in the set of unresolved files, that's considerably more work, and we don't have a use case for it anyway. Instead, let's keep it simple and refuse any merge or update (without -C) when there are unresolved conflicts. Note that test-merge-local.t explicitly checks for conflict markers that get carried over on update. It's unclear if that was intentional or not, but it seems bad enough that we should forbid it. The simplest way of fixing the test case is to leave the conflict markers in place and just mark the files resolved, so let's just do that for now.
-
timeless authored
* skip presleep * use a stub mode which does not output and generally loops only once * only use one node for perfparents
-
timeless authored
-
timeless authored
-
timeless authored
-
timeless authored
p4...
-