- May 20, 2017
-
-
Pierre-Yves David authored
It seems better to introduce the experiment behind a flag for now as there are multiple concerns around the feature: * Storing operation increase the size of obsolescence markers significantly (+10-20%). * It performs poorly when exchanging markers (cannot combine command names, command name might be unknown remotely, etc)
-
Gregory Szorc authored
These are the obvious ones. There is tons of code in this file implementing features from unittest that weren't present in Python 2.6. But that's for other patches.
-
- May 18, 2017
-
-
Augie Fackler authored
-
Augie Fackler authored
-
Augie Fackler authored
-
Augie Fackler authored
-
Augie Fackler authored
-
Augie Fackler authored
-
Augie Fackler authored
-
- May 20, 2017
-
-
Kostia Balytskyi authored
Notepad++ has a different FIRSTLINE argument, so needs special handling.
-
Kostia Balytskyi authored
Using Start-Process -Wait makes it wait until the process finishes, which is necesssary for Windows GUI applications. My short testing also demonstrated that it does not hurt with command line vim.
-
- Jan 09, 2016
-
-
Yuya Nishihara authored
Since this is a fundamental API for extensions, we set 1-year period until actually removing it.
-
- May 13, 2017
-
-
Yuya Nishihara authored
Detect the problem earlier for better error indication. I'm tired of teaching users that the mq extension is not guilty but the third-party extension is. https://bitbucket.org/tortoisehg/thg/issues?q=%27norepo%27
-
- May 14, 2017
-
-
Yuya Nishihara authored
Test will be added by the next patch.
-
Yuya Nishihara authored
As the hint isn't shown by the default exception handler, we need to print it manually. I've copied the "** " style from _exceptionwarning().
-
- May 08, 2017
-
-
Yuya Nishihara authored
-
Yuya Nishihara authored
It overrides _funcregistrarbase._doregister() since the structure of the command table is quite different.
-
- Jan 09, 2016
-
-
Yuya Nishihara authored
cmdutil.command wasn't a member of the registrar framework only for a historical reason. Let's make that happen. This patch keeps cmdutil.command as an alias for extension compatibility.
-
- May 13, 2017
-
-
Yuya Nishihara authored
Otherwise some messages wouldn't be translated depending on when the util was loaded.
-
- May 18, 2017
-
-
Wez Furlong authored
The state-enter command may not have been successful; for example, the watchman client session may have timed out if the user was busy/idle for a long period during a merge conflict resolution earlier in processing a rebase for a stack of diffs. It's cleaner (from the perspective of the watchman logs) to avoid issuing the state-leave command in these cases. Test Plan: ran `hg rebase --tool :merge -r '(draft() & date(-14)) - master::' -d master` and didn't observe any errors in the watchman logs or in the output from `watchman -p -j <<<'["subscribe", "/data/users/wez/fbsource", "wez", {"expression": ["name", ".hg/updatestate"]}]'`
-
Wez Furlong authored
we see some weird things in the watchman logs where the mercurial process is seemingly confused about which hg.update state it is publishing through watchman. On closer examination, we're seeing conflicting pids for the clients involved and this implies a race. To resolve this, we extend the wlock around the state-enter/state-leave events that are emitted to watchman. Test Plan: Some manual testing: In one window, run this, and then checkout a different rev: ``` $ watchman -p -j <<<'["subscribe", "/data/users/wez/fbsource", "wez", {"expression": ["name", ".hg/updatestate"]}]' { "version": "4.9.0", "subscribe": "wez", "clock": "c:1495034090:814028:1:312576" } { "state-enter": "hg.update", "version": "4.9.0", "clock": "c:1495034090:814028:1:312596", "unilateral": true, "subscription": "wez", "metadata": { "status": "ok", "distance": 125, "rev": "a1275d79ffa6c58b53116c8ec401c275ca6c1e2a", "partial": false }, "root": "/data/users/wez/fbsource" } { "root": "/data/users/wez/fbsource", "metadata": { "status": "ok", "distance": 125, "rev": "a1275d79ffa6c58b53116c8ec401c275ca6c1e2a", "partial": false }, "subscription": "wez", "unilateral": true, "version": "4.9.0", "clock": "c:1495034090:814028:1:312627", "state-leave": "hg.update" } ``` Tailed the watchman log file and looked for invalid state assertion errors, then ran my `rebase-all` script to update/rebase all of my heads. Didn't trigger the error condition (but couldn't reliably trigger it previously anyway), and the output captured above shows that the states are being emitted correctly.
-
- May 19, 2017
-
-
Pierre-Yves David authored
That is a simple and important function so having it at the top next to the related constant seems better.
-
Pierre-Yves David authored
This will help extension to benefit from this new logic. As a side effect this clarify the 'transaction' method a little bit.
-
Pierre-Yves David authored
On repository with many many heads, this is called often enough to show an overhead to appears in some profile. So we skip the 'changectx' creation to test the node phases.
-
Pierre-Yves David authored
For some reason, this one test case did not made it with the others as they got upstreamed during the 4.2 cycle.
-
- May 18, 2017
-
-
Kostia Balytskyi authored
This just adds a translation of existing contrib/editmerge to powershell. It allows users on Windows to iteratively resolve conflicts in their editor of choice. # no-check-commit
-
- May 17, 2017
-
-
Kostia Balytskyi authored
When running tests on Windows (via msys), user sometimes does not want to run them against source hg, but against compiled hg.exe. For that purpose, --with-hg option can be used, but currently run-tests.py prints a warning if the value of this argument is not a file with basename 'hg'. This patch allows such file to be 'hg.exe'.
-
- May 09, 2017
-
-
Durham Goode authored
By recording what operation created the obsmarker, we can show very intuitive messages to the user in various UIs. For instance, log output could have messages like "Amended as XXX" to show why a commit is old and has an 'x' on it. @ ac28e3 durham / First commit | | o d4afe7 durham | | Second commit | | | x 8e9a5d (Amended as ac28e3) durham |/ First commit |
-
- May 18, 2017
-
-
Martin von Zweigbergk authored
It seems like the subdirmatcher should be checking if the matcher it's based on is matching prefixes. It was effectively doing that already because "prefix() == not always() and not anypats() and not isexact()", subdirmatcher was checking the first two parts of that condition and I don't think it will ever be given an "exact" matcher with it's directory name (because exact matchers are for matching files, not directories). Still, let's switch to using prefix() for clarity (and because I'm trying to remove code that reaches for matchers internals).
-
- May 12, 2017
-
-
Martin von Zweigbergk authored
Accessing only the public API wherever possible helps us refactor matchers later.
-
- May 18, 2017
-
-
Martin von Zweigbergk authored
Just override the function instead of replacing it on each instance.
-
Martin von Zweigbergk authored
The files in the set are not necesserily roots of anything. Making it a @propertycache will help towards extracting a base class for matchers.
-
Martin von Zweigbergk authored
It seems like fsmonitor/__init__.py was based on a pretty old version of dirstate.py. Let's copy over the changes from the following two commits: 55c449345b10 (match: add isexact() method to hide internals, 2014-10-29) 3c346969c321 (dirstate: avoid match.files() in walk(), 2015-05-19)
-
Andrew Zwicky authored
Lines that start in '--' or '++' were previously not counted as deletions or additions in diffstat, resulting in incorrect addition/deletion counts. The bug was present if the start of the line, combined with the diff character resulted in '---' or '+++'. diffstatdata will now track, for each file, if it has moved pas the header section by looking for a line beginning with '@@'. Once that has happened, lines beginning with '-' or '+' will be counted for deletions and additions. Once a line beginning with 'diff' is found, the process starts over.
-
- May 19, 2017
-
-
Pierre-Yves David authored
Same as for previous update, the longer port number can affect this ouput.
-
- May 18, 2017
-
-
Martin von Zweigbergk authored
config.items() was iterating over a copy of the data for the the specified section on Python 2 by using .items(). However, on Python 3, items() does not make a copy, so let's switch to explicitly making a copy to make it safe on both Python 2 and Python 3.
-
- May 19, 2017
-
-
Stanislau Hlebik authored
Copytracing may be disabled because it's too slow (see experimental.disablecopytrace config option). In that case user may get errors like 'local changed FILE which other deleted'. It would be nice to give user a hint to rerun command with `--config experimental.disablecopytrace=False`. To make it possible let's extract error message to variables so that extension may overwrite them.
-
- May 17, 2017
-
-
Jun Wu authored
Sometimes we want to run similar tests with slightly different configurations. Previously we duplicate the test files. This patch introduces special "#testcases" syntax that allows a single .t file to contain multiple test cases. Defined cases could be tested using "#if". For example, if a test should behave the same with or without an experimental flag, we can add the following to the .t header: #testcases default experimental-a #if experimental-a $ cat >> $HGRCPATH << EOF > [experimental] > feature=a > EOF #endif The "experimental-a" block won't be executed when running the "default" test case.
-
- May 18, 2017
-
-
Gregory Szorc authored
Feature flag constants don't need "NG" in the name because they will presumably apply to non-"NG" version revlogs. All feature flag constants should also share a similar naming convention to identify them as such. And, "RevlogNG" isn't a great internal name since it isn't obvious it maps to version 1 revlogs. Plus, "NG" (next generation) is only a good name as long as it is the latest version. Since we're talking about version 2, now is as good a time as any to move on from that naming.
-
Gregory Szorc authored
Putting multiple elements on the same line makes diffs harder to read. Switch to one line per element so future changes are easier on the eyes.
-