- Aug 12, 2014
-
-
Matt Mackall authored
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 authored
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 authored
-
Matt Mackall authored
-
- Aug 11, 2014
-
-
Matt Mackall authored
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 authored
-
- Aug 03, 2014
-
-
Pierre-Yves David authored
Before this patch it was impossible to introduce a #no-xxx comment to disable a test pattern warning.
-
Pierre-Yves David authored
Otherwise entries such as "wcchange" give false negative
-
- Jun 25, 2014
-
-
Pierre-Yves David authored
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)
-
- Aug 11, 2014
-
-
Katsunori FUJIWARA authored
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.
-
Katsunori FUJIWARA authored
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.
-
Katsunori FUJIWARA authored
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.
-
Katsunori FUJIWARA authored
-
Katsunori FUJIWARA authored
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 authored
-
Matt Mackall authored
-
Matt Mackall authored
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.
-
- Aug 10, 2014
-
-
Matt Mackall authored
-
Matt Mackall authored
-
Matt Mackall authored
-
Matt Mackall authored
Turns out hgwebdir passes full repo objects to each hgweb request instance, but with a shared baseui. We explicitly break the sharing.
-
- Aug 09, 2014
-
-
Matt Mackall authored
Was failing on Windows: -bundle.mainreporoot=$TESTTMP/repo +bundle.mainreporoot=$TESTTMP\repo
-
Matt Mackall authored
-
Matt Mackall authored
-
Matt Mackall authored
test-gendoc complained: % extracting documentation from ru checking for parse errors + gendoc-ru.txt:5686: (WARNING/2) Field list ends without a blank line; unexpected unindent. + gendoc-ru.txt:8327: (WARNING/2) Definition list ends without a blank line; unexpected unindent.
-
Matt Mackall authored
Buildbot complained: $ python check-translation.py *.po + ru.po:9576:fatal(promptchoice): number of choices differs between msgid and msgstr + [1] Prompt text was obviously wrong.. because it didn't include a prompt.
-
- Aug 08, 2014
-
-
Matt Mackall authored
-
- Aug 07, 2014
-
-
Pierre-Yves David authored
The phase cache file is no longer written on lock release, it is now handled by the transaction (as changesets and obsolescence markers are). (Hooray) As we stop relying on the lock to write phase, repos with no existing phase information will need to wait for a phase move or a strip to happen in order to get the first write in the `phaseroots` file. This explain the change in test-inherit-mode.t. This should not have any side effects but in very obscure cases where people interact with pre-2.1 and post-2.1 versions of Mercurial on the same repo while having MQ patches applied but the MQ extension disabled from time to time. A case unlikely enough to not be worth preserving the old behavior with awful hacks.
-
Pierre-Yves David authored
In most case, the file creation logic will be handled by the transaction itself. The write method has to stay around for the case where the repository is modified outside a transaction (strip).
-
Pierre-Yves David authored
A new `transaction.addfilegenerator` function is added. It allows external code to register files to be generated. See inline documentation for details. It is important to gather all file creation logic on the transaction as at some point we'll want to mimic the "pre-transaction-commit" logic that we use for revlog. I'm refering to the logic that lets hooks see the result of the transaction before it actually gets committed.
-
Pierre-Yves David authored
File backup may conflict with other "journal.*" file. We add a fixed part in the backup name file to prevent it.
-
Pierre-Yves David authored
Transaction journal name is "journal" in most case, but it can be something else. We use the appropriate attribute to create the file.
-
- Jun 18, 2014
-
-
Sean Farley authored
-
- Jul 26, 2014
-
-
Sean Farley authored
Similar to the previous patch for workingfilectx, this patch will allow abstracting localrepo.remove / write method to refactor working directory code but instead operate on files in memory.
-
- Jul 02, 2014
-
-
Sean Farley authored
This patch will allow abstracting localrepo.remove / write method to refactor working directory code.
-
- Jul 26, 2014
-
-
Sean Farley authored
This will allow future patches to construct a memctx based on another context or any other store-type object.
-
- Aug 07, 2014
-
-
durin42 authored
Python 2.7.7 and later (as well as some ubuntu/debian packages of 2.7.6) include a fix that makes the email module more pedantically correct for MIME boundaries, but this breaks our tests. We work around this by filtering the output of any 'hg email' invocations in the test that produce MIME messages.
-
- Aug 06, 2014
-
-
Pierre-Yves David authored
We now pass a transaction option to this phase movement function. The object is currently not used by the function, but it will be in the future. All call sites have been updated. Most call sites were already enclosed in a transaction for a long time. The handful of others have been recently updated in previous commit.
-
Pierre-Yves David authored
We now pass a transaction option to this phase movement function. The object is currently not used by the function, but it will be in the future. All call sites have been updated. Most call sites were already enclosed in a transaction for a long time. The handful of others have been recently updated in previous commit. The retractboundary function remains to be upgraded.
-
Pierre-Yves David authored
We were relying on the phase internals to filter out redundant phase information from remove. However as we plan to integrate phase movement inside the transaction, we want to avoid useless transaction creation on no-op pulls. Therefore we filter out all the information that already matches the current repository state. This will let us create a transaction only when there is actual phase movement needed.
-