- Mar 22, 2014
-
-
Katsunori FUJIWARA authored
Before this patch, "localrepository.commit()" omits ".hgsubstate" from "modified" (changes[0]) and "removed" (changes[2]) file list before checking subrepositories, but leaves one in "added" (changes[1]) as it is. Then, "localrepository.commit()" adds ".hgsubstate" into "modified" or "removed" list forcibly, according to subrepository statuses. If "added" contains ".hgsubstate", the committed context will contain two ".hgsubstate" in its "files": one from "added" (not omitted one), and another from "modified" or "removed" (newly added one). How many times ".hgsubstate" appears in "files" changes node hash, even though revision content is same, because node hash calculation uses the specified "files" directly (without duplication check or so). This means that node hash of committed revision changes according to existence of ".hgsubstate" in "added" at "localrepository.commit()". ".hgsubstate" is treated as "added", not only in accidental cases, but also in the case of "qpush" for the patch adding ".hgsubstate". This patch omits ".hgsubstate" also from "added" files before checking subrepositories. This patch also omits ".hgsubstate" exclusion in "qnew"/"qrefresh" introduced by changeset d666da075b91, because this patch makes them meaningless. "hg parents --template '{files}\n'" newly added to "test-mq-subrepo.t" enhances checking unexpected multiple appearances of ".hgsubstate" in "files" of created/refreshed MQ revisions.
-
Matt Mackall authored
-
- Mar 15, 2014
-
-
Mads Kiilerich authored
The names of the debug commands are not easy to remember and they are not easy to find.
-
- Feb 28, 2014
-
-
Mads Kiilerich authored
Convenient when polishing patches and changing details of how they change test output. This will probably break in weird ways for revsets with special quoting ... but it is good enough for run-tests. Usage example: yes | ./run-tests.py -li --changed qparent
-
- Mar 18, 2014
-
-
Mads Kiilerich authored
Unknown requirements will now be reported as: abort: repository requires features unknown to this Mercurial: largefiles! (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) Some features of this phrasing: * avoid double ':' in abort message * make it more clear who requires and knows what * don't quote the requirement names - it is not something the user entered or need the exact spelling of ... and it is "identifiers" that are unambiguous anyway * remove double hint by removing "(upgrade Mercurial)" comment * don't mention upgrading Mercurial without mentioning enabling the feature - instead, just refer to wiki page for both * don't just talk about "details", talk about "more information"
-
- Mar 21, 2014
-
-
Pierre-Yves David authored
The `if not revs:` case is tested at the beginning of the function.
-
Matt Mackall authored
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
(1, '4') is greater than (1, 5) so the version check never actually worked.
-
Siddharth Agarwal authored
This makes the version detection compatible with Git versions like '1.9-rc0'. We only cared about the first two components of the version anyway.
-
- Mar 19, 2014
-
-
Pierre-Yves David authored
We need a case sensitive character to convey mandatory/advisory parameter semantic in a later patches.
-
Pierre-Yves David authored
The bundle2 now raise value error when seeing invalid parameter names. The first introduced rules is: no empty parameter. The test extension is improve to properly abort when ValueError are encountered.
-
Pierre-Yves David authored
Align to new escaping used during bundling.
-
Pierre-Yves David authored
This introduces support for arbitrary characters in stream parameters name and value. The urlquote format has been chosen because it is: - simple, - standard, - no-op on simple alphanumerical entry.
-
- Mar 18, 2014
-
-
Pierre-Yves David authored
The unbundler now understand parameter value. introduced in the previous changeset.
-
Pierre-Yves David authored
Parameter can now have a value. We use a `<name>=<value>` form inspired from capabilities. There is still no kind of escaping in the name or value, yet.
-
- Mar 20, 2014
-
-
Pierre-Yves David authored
Stream level parameter have very restricted use case. Clarify why we chosen a textual format and point that applicative data goes in applicative parts.
-
- Mar 19, 2014
-
-
Sean Farley authored
Previously, only bookmarks would be considered for blocking a changeset from being hidden. Now, we also consider non-global tags. This is helpful if we have local tags that might be hard to find once they are hidden, or tag that are added by extensions (e.g. hggit or remotebranches).
-
- Mar 13, 2014
-
-
David Soria Parra authored
When we specify a revision or a revset we just get the last element from the list. For revsets this can lead to unintended effects where you specify a revset like only() but instead histedit selects the highest revision in the set as root. Therefore we should always use the lowest revision number as root.
-
- Mar 18, 2014
-
-
Pierre-Yves David authored
the unbundler now understand simple list of parameter.
-
- Mar 19, 2014
-
-
Pierre-Yves David authored
This changeset add bundling capacity for simple parameters, not value or any special case are handled.
-
- Mar 18, 2014
-
-
Pierre-Yves David authored
We now make use of the magic string at the beginning of the file.
-
Pierre-Yves David authored
This changeset introduce an unbundler class to match the bundle2 bundler. It is currently able to unbundle an empty bundle2 only and will gain more feature at the same pace than the bundler. It also comes with its special extension command in test.
-
Pierre-Yves David authored
This changeset is the very first of a long series. It create a new bundle2 module and add a simple class that generate and empty bundle2 container. The module is documented with the current state of the implementation. For information about the final goal you may want to consult the mercurial wiki page: http://mercurial.selenic.com/wiki/BundleFormat2 The documentation of the module will be updated with later patches adding more and more feature to the format. This patches also introduce a test case. This test case build and use its own small extension that use the new bundle2 module. Since the new format is unable to do anything right now, we could not use real mercurial code to test it. Moreover, some advanced feature of the bundle2 spec will not be used by core mercurial at all. So we need to have them tested.
-
- Mar 21, 2014
-
-
Yuya Nishihara authored
If source URL has no path, default destination is resolved as '.'. It is surprising than useful, and perhaps an unexpected behavior. This change does not solve issue3880, but can avoid to clone into current directory by accident.
-
Yuya Nishihara authored
-
- Mar 20, 2014
-
-
Durham Goode authored
revrange was trying to add a list to a revset class, but revset classes only support adding with other revset classes. So wrap the lists in basesets.
-
Matt Harbison authored
This broke in 3681de20b0a7.
-
- Mar 19, 2014
-
-
Matt Mackall authored
-
Matt Mackall authored
-
- Mar 18, 2014
-
-
Siddharth Agarwal authored
Previously, if another command was run with --verbose, and for whatever reason that invoked sshpeer, we'd get a 'running ssh' message from sshpeer. This extra line would interfere with that command's output and cause dumb parsers to break. For example, hg annotate can be run with --verbose to get full usernames. This, combined with the third-party remotefilelog extension which can cause ssh connections to be created, leads to an extra 'running ssh' line that breaks most parsers. This patch is (BC) because hg pull --verbose will no longer print out exactly what ssh command it is running. No tests are affected by this change.
-
Mads Kiilerich authored
-
- Feb 28, 2014
-
-
Mads Kiilerich authored
Correctness - no visible difference so far.
-
- Feb 24, 2014
-
-
Mads Kiilerich authored
These days 'branch' usually refer to a named branch. Instead, abort with 'cannot backout change that not is an ancestor'.
-
- Mar 19, 2014
-
-
Mads Kiilerich authored
Some extensions set configuration settings that showed up in 'hg showconfig --debug' with 'none' as source. That was confusing. Instead, they will now tell which extension they come from. This change tries to be consistent and specify a source everywhere - also where it perhaps is less relevant.
-
Mads Kiilerich authored
This prevents ui.fixconfig from overwriting the source of paths and it will thus show up in showconfig --debug.
-
Mads Kiilerich authored
'hg showconfig --debug' will instead of: none: ui.verbose=False give the better hint: --verbose: ui.verbose=False
-
Mads Kiilerich authored
-
Katsunori FUJIWARA authored
Before this patch, even if specified file patterns and -I/-X options cause listing ".hgsubstate" up in the target list, qnew/qrefresh put ".hgsubstate" into the target list individually and forcibly. This changes how many times ".hgsubstate" appear in the target list according to run-time conditions, and causes inconsistent node hash, even though revision content is same, because node hash calculation uses the specified target list directly (without duplication check or so). This patch always omits ".hgsubstate" from qnew/qrefresh target list for consistent node hash. This omitting doesn't miss including ".hgsubstate" changes, because: - "localrepository.commit()" puts ".hgsubstate" into the target list for "commitctx()" forcibly if needed - "mq.putsubstate2changes()" puts ".hgsubstate" into the target list for "patch.diff()" if it is not yet listed up
-
Katsunori FUJIWARA authored
Before this patch, qnew puts updated subrepositories into target list forcibly, if any of -I, -X or patterns are specified. But this is meaningless and harmful, because: - putting subrepositories into target list doesn't affect the result of "localrepository.status()" "dirstate.status()" invoked via "localrepository.status()" always omits subrepositories from the result of it - any -I/-X opts and empty "pats" causes unexpected failure when any -I/-X opts are specified, "inclsubs" are always added to "pats", even if "pats" is empty. but this changes meaning of "pats" from "including all to be included" to "including only listed subrepositories" this may exclude ".hgsub" and cause unexpected exception raising ("can't commit subrepos without .hgsub" ). - qnew at other than repository root (with -I, -X or any patterns) causes unexpected failure "scmutil.match()" treats pattern without syntax type as 'relpath' type (= one rooted at cwd). but qnew puts subrepository paths rooted at the repository root, and it causes unexpected exception raising ("SUBREPO not under root ROOT" in "pathutil.canonpath()"), if "hg qnew" is executed at other than repository root with -I, -X or any patterns. This patch omits meaningless and harmful putting subrepositories into target list. This omitting doesn't miss including updated subrepositories, because subrepositories are specified to "scmutil.matchfiles()" directly, to get "match" object for "localrepository.commit()".
-