Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 17:31:53 +0100] rev 22131
test-revert: add methodical revert to "base" with explicit file path
We now also test reverting file to another revision's content. However
this differs from previously introduced test by using the explicit path
of each "case file" when calling revert. This should result in the
same result regarding file content and backup creation, but the output
of the `hg revert` call should differ.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 17:22:47 +0100] rev 22130
test-revert: add methodical revert with explicit file path
We now also test reverting file to the working directory parent
content. However this differs from the previously introduced test by using
the explicit path of each "case file" when calling revert. This should
result in the same result regarding file content and backup creation,
but the output of the `hg revert` call should differ.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 17:16:05 +0100] rev 22129
test-revert: add methodical revert to "base"
We now also test reverting s file to the content of another revision. This is
still done using the `--all` flag.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 17:03:55 +0100] rev 22128
test-revert: add methodical revert to parent for working directory
Now that we can automatically generate states, we need to actually run
revert on them and check the result. While running such tests we are
checking multiple elements. The output of the `hg revert` command, the
resulting content of file, and the creation of backup file.
The first practical test is using the simple case `hg revert --all`, reverting
all files to working directory parent content.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 17:24:18 +0100] rev 22127
test-revert: display the list of all generated cases
This will help to track all existing cases.
(still very simple now)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 27 Jun 2014 16:08:09 +0200] rev 22126
test-revert: also create a text version of the snapshot
The text version is just a list of existing files with their content. We use a
small custom script for that.
This is going to be very useful for comparing revert results with
revert target content.
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 12:53:23 -0500] rev 22125
hg-test-mode: make exit code highlight work again
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 16:37:06 +0100] rev 22124
test-revert: prepare methodical testing of revert cases
We introduce a script to generate revert cases and use it to prepare a test
repo. See the inline documentation for details.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 15:59:21 +0100] rev 22123
test-revert: drop useless comments
There are multiple comments explaining the expected output of commands. This is
an old relic of the pre-unified test era. We remove them for uselessness.
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 11:17:29 -0500] rev 22122
run-tests: don't double lines on build failure output
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 11:10:57 -0500] rev 22121
test-run-tests: filter pwd alias for Windows
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 11:02:30 -0500] rev 22120
run-tests: self-test on Windows needs binary streams
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 04:50:58 -0500] rev 22119
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 04:11:32 -0500] rev 22118
help: normalize helplist hints
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 04:00:42 -0500] rev 22117
help: fold repeatable option message into option table header
This will hopefully conserve some limited user attention.
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 03:53:33 -0500] rev 22116
help: roll option list header into option formatter
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 03:42:09 -0500] rev 22115
help: refactor helplist optlist mess
No output changes
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 03:25:51 -0500] rev 22114
help: normalize topic and extension verbose hints
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 03:18:50 -0500] rev 22113
help: normalize hint about enabling extensions
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 03:12:24 -0500] rev 22112
help: normalize extension shadow hint
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 03:09:26 -0500] rev 22111
help: improve command summary hint
This adds our normal hint parentheses, corrects the command syntax
(consider config), and corrects the fullness of help you'll get.
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 03:01:37 -0500] rev 22110
help: tweak --verbose command help hint
We used to have two slightly different message which people wouldn't read...
and then complain that they couldn't find the global options or examples.
So we unify them into one message that's upfront that STUFF IS
INTENTIONALLY HIDDEN and that looks more like our normal hint style.
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 00:42:05 -0500] rev 22109
hg-test-mode: don't highlight variables in output
This was disabling highlighting the rest of the line for $REASONS.
Instead, we only highlight when we think we're on a 'command' line.
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 00:40:24 -0500] rev 22108
test-run-tests: test --view
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 00:33:48 -0500] rev 22107
run-tests: don't show 'i' for tests that don't match a keyword
Matt Mackall <mpm@selenic.com> [Tue, 12 Aug 2014 02:40:42 -0500] rev 22106
repoview: filter tags to non-existent nodes from blockers (
issue4328)
Michael O'Connor <mkoconnor@gmail.com> [Mon, 11 Aug 2014 23:45:08 -0400] rev 22105
revset: bookmark revset interprets 'literal:' prefix correctly (
issue4329)
Matt Mackall <mpm@selenic.com> [Mon, 11 Aug 2014 17:45:50 -0500] rev 22104
run-tests: attempt to fix iolock handling
Ideally, when using -j and -i together, when a prompt comes up, we'd
like all other output to wait (but testing to continue!). This gets
other output to wait by adding back a bunch of the locking that
formerly existed. We switch to a recursive lock to deal with the
restructuring due to unittest compatibility.
Running tests continue to run, but now the scheduler doesn't schedule
any new tasks while waiting at a prompt because no task slots become
available due to result output happening in the thread and
blocking on the iolock.
Matt Mackall <mpm@selenic.com> [Mon, 11 Aug 2014 13:10:00 -0500] rev 22103
unbundle: fix pyflakes warning about wc
Matt Mackall <mpm@selenic.com> [Mon, 11 Aug 2014 11:24:05 -0500] rev 22102
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 02 Aug 2014 17:04:53 -0700] rev 22101
check-code: allow an escape pattern to be specified for testpattern
Before this patch it was impossible to introduce a #no-xxx comment to disable a
test pattern warning.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 02 Aug 2014 17:01:55 -0700] rev 22100
check-code: capture "wc" as a word
Otherwise entries such as "wcchange" give false negative
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 15:58:05 +0100] rev 22099
test-revert: improve comment
We highlight the behavior tested by each sections. (This is a gratuitous
improvement before significant upgrade of the test and massive refactoring of
the revert code)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 11 Aug 2014 22:29:43 +0900] rev 22098
largefiles: synchronize lfdirstate with dirstate after automated committing
Before this patch, after successful "hg rebase" of the revision
removing largefiles, "hg status" may still show ""R" for such
largefiles unexpectedly.
"lfilesrepo.commit" executes the special code path for automated
committing while rebase/transplant, and lfdirstate entries for removed
files aren't updated in this code path, even after successful
committing.
Then, "R" entries still existing in lfdirstate cause unexpected "hg
status" output.
This patch synchronizes lfdirstate with dirstate after automated
committing.
This patch passes False as "normallookup" to "synclfdirstate", because
modified files in "files()" of the recent (= just committed) context
should be "normal"-ed.
This is a temporary way to fix with less changes. For fundamental
resolution of this kind of problems in the future, lfdirstate should
be updated with dirstate simultaneously. Hooking "markcommitted" of
ctx in "localrepository.commitctx" may achieve this.
This problem occurs, only when (1) the parent of the working directory
is rebased and (2) it removes largefiles, because:
- if the parent of the working directory isn't rebased, returning to
the initial revision (= update) after rebase hides this problem
- files added on "other" branch (= rebase target) are treated not as
"added" but as "modified" (= "normal" status and "unset"
timestamp) at merging
This patch tests also the status of added largefile, but it is only
for avoiding regression.
In addition to conditions above, "hg status" must not take existing
files to reproduce this problem, because existing files make
"match._files" not empty in "lfilesrepo.status" code path below:
def sfindirstate(f):
sf = lfutil.standin(f)
dirstate = self.dirstate
return sf in dirstate or sf in dirstate.dirs()
match._files = [f for f in match._files
if sfindirstate(f)]
Not empty "match._files" prevents "status" on lfdirstate from
returning the result containing problematic "R" files.
This is reason why "large1" (removed) and "largeX" (added) are checked
separately in this patch.
Problematic code path in "lfilesrepo.commit" is used also by "hg
transplant", but this problem doesn't occur at "hg transplant",
because invocation of "updatelfiles" after transplant-ing in
"overridetransplant" causes cleaning lfdirstate up.
This patch tests also "hg transplant" as same as "hg rebase", but it
is only for avoiding regression.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 11 Aug 2014 22:29:43 +0900] rev 22097
largefiles: drop orphan entries from lfdristat at "hg rollback"
Before this patch, newly added (but not yet committed) largefiles
aren't treated as unknown ("?") after "hg rollback".
After "hg rollback", lfdirstate still contains "A" status entries for
such largefiles, even though corresponding entries for standins are
already dropped from dirstate.
Such "orphan" entries in lfdirstate prevent unknown (large)files in
the working directory from being listed up in "unknown" list. The code
path in "if working" route of "lfilesrepo.status" below drops
largefiles tracked in lfdirstate from "unknown" list:
lfiles = set(lfdirstate._map)
# Unknown files
result[4] = set(result[4]).difference(lfiles)
This patch drops orphan entries from lfdristate at "hg rollback".
This is a temporary way to fix with less changes. For fundamental
resolution of this kind of problems in the future, lfdirstate should
be rollback-ed as a part of transaction, as same as dirstate.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 11 Aug 2014 22:29:43 +0900] rev 22096
largefiles: restore R status of removed largefiles correctly at "hg rollback"
Before this patch, removed or forgotten largefiles aren't treated as
removed ("R") after "hg rollback". Removed ones are treated as missing
("!") and forgotten ones are treated as clean ("C") unexpectedly.
"overriderollback" uses "normallookup" to restore status in lfdirstate
for largefiles other than ones not added in rollback-ed revision, but
this isn't correct for removed (or forgotten) largefiles.
This patch uses "lfutil.synclfdirstate" to restore "R" status of
removed (or forgotten) largefiles correctly at "hg rollback".
This is a temporary way to fix with less changes. For fundamental
resolution of this kind of problems in the future, lfdirstate should
be rollback-ed as a part of transaction, as same as dirstate.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 11 Aug 2014 22:29:43 +0900] rev 22095
largefiles: factor out synchronization of lfdirstate for future use
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 11 Aug 2014 22:29:43 +0900] rev 22094
largefiles: put whole rollback-ing process into the same "wlock" scope
Before this patch, there are three distinct "wlock" scopes in
"overriderollback":
1. "localrepository.rollback" via original "rollback" command,
2. "merge.update" for reverting standin files only, and
3. "overriderollback" specific "wlock" scope (to synchronize
largefile dirstate)
But these should be executed in the same "wlock" scope for
consistency.
Matt Mackall <mpm@selenic.com> [Mon, 11 Aug 2014 09:35:24 -0500] rev 22093
tests: use a decorator for hghave checks
Matt Mackall <mpm@selenic.com> [Sun, 10 Aug 2014 23:13:12 -0500] rev 22092
hg-test-mode: colorize HGFOO and TESTFOO environment variables
Matt Mackall <mpm@selenic.com> [Sun, 10 Aug 2014 23:09:23 -0500] rev 22091
unbundle: don't advance bookmarks (
issue4322) (BC)
This behavior didn't make much sense and interacts badly with things
that use unbundle internally like shelve. Presumably, the original
rationale was that since bundles didn't contain bookmarks, this gave a
sense of keeping bookmarks up-to-date like would happen with a
corresponding pull. However, since it only updated the current active
bookmark, and bare update already did that anyway, this is pretty
slim.
Notably, the corresponding test actually works better without this
feature.
Matt Mackall <mpm@selenic.com> [Sun, 10 Aug 2014 15:26:33 -0500] rev 22090
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 10 Aug 2014 15:26:12 -0500] rev 22089
tests: more bundle2 non-binary file test fixes
Matt Mackall <mpm@selenic.com> [Sun, 10 Aug 2014 14:30:30 -0500] rev 22088
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 10 Aug 2014 13:53:36 -0500] rev 22087
hgweb: avoid config object race with hgwebdir (
issue4326)
Turns out hgwebdir passes full repo objects to each hgweb request
instance, but with a shared baseui. We explicitly break the sharing.
Matt Mackall <mpm@selenic.com> [Sat, 09 Aug 2014 16:15:52 -0500] rev 22086
test-commandserver.py: filter path separator
Was failing on Windows:
-bundle.mainreporoot=$TESTTMP/repo
+bundle.mainreporoot=$TESTTMP\repo
Matt Mackall <mpm@selenic.com> [Sat, 09 Aug 2014 16:06:01 -0500] rev 22085
merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 09 Aug 2014 16:05:03 -0500] rev 22084
merge with i18n