FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 13 Nov 2013 15:55:30 +0900] rev 20176
subrepo: check phase of state in each subrepositories before committing
Before this patch, phase of newly created commit is determined by
"phases.new-commit" configuration regardless of phase of state in each
subrepositories.
For example, this may cause the "public" revision in the parent
repository referring the "secret" one in subrepository.
This patch checks phase of state in each subrepositories before
committing in the parent, and aborts or changes phase of newly created
commit if subrepositories have more restricted phase than the parent.
This patch uses "follow" as default value of "phases.checksubrepos"
configuration, because it can keep consistency between phases of the
parent and subrepositories without breaking existing tool chains.
Matt Mackall <mpm@selenic.com> [Mon, 16 Dec 2013 12:59:32 -0600] rev 20175
merge with crew
Augie Fackler <raf@durin42.com> [Sat, 14 Dec 2013 12:48:12 -0500] rev 20174
http: backout 181108726ea5, which breaks on Python 2.4
Augie Fackler <raf@durin42.com> [Sat, 14 Dec 2013 11:58:26 -0500] rev 20173
test-module-imports: try and detect virtualenv breakage (issue4129)
virtualenvs (among other things) break the stdlib module detection in
the import checker, and I don't see a good way to work around that for
now.
Stéphane Klein <contact@stephane-klein.info> [Mon, 25 Nov 2013 17:18:12 +0100] rev 20172
http: reuse authentication info after the first failed request (issue3567)
Context: mercurial access to repository server with http access, and this
server is protected by basic auth.
Before patch:
* mercurial try an anonymous access to server, server return 401 response and
mercurial resend request with login / password information
After patch:
* mercurial try an anonymous access to server, server return 401
response. For all subsequent requests, mercurial keep in memory this
information (this server need basic auth information).
This patch reduce the number of http access against mercurial server.
Example, before patch :
10.10.168.170 - - [25/Oct/2013:15:44:51 +0200] "GET /hg/testagt?cmd=capabilities
HTTP/1.1" 401 260 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:44:52 +0200] "GET /hg/testagt?cmd=capabilities
HTTP/1.1" 200 147 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:00 +0200] "GET /hg/testagt?cmd=capabilities
HTTP/1.1" 401 260 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:01 +0200] "GET /hg/testagt?cmd=capabilities
HTTP/1.1" 200 147 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:03 +0200] "GET /hg/testagt?cmd=batch
HTTP/1.1" 401 260 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:04 +0200] "GET /hg/testagt?cmd=batch
HTTP/1.1" 200 42 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:06 +0200] "GET /hg/testagt?cmd=getbundle
HTTP/1.1" 401 260 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:07 +0200] "GET /hg/testagt?cmd=getbundle
HTTP/1.1" 200 61184 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:09 +0200] "GET /hg/testagt?cmd=listkeys
HTTP/1.1" 401 260 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:10 +0200] "GET /hg/testagt?cmd=listkeys
HTTP/1.1" 200 15 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:12 +0200] "GET /hg/testagt?cmd=listkeys
HTTP/1.1" 401 260 "-" "mercurial/proto-1.0"
10.10.168.170 - - [25/Oct/2013:15:45:12 +0200] "GET /hg/testagt?cmd=listkeys
HTTP/1.1" 200 - "-" "mercurial/proto-1.0"
Example after patch :
10.10.168.170 - - [28/Oct/2013:11:49:14 +0100] "GET /hg/testagt?cmd=capabilities
HTTP/1.1" 401 260 "-" "mercurial/proto-1.0"
10.10.168.170 - - [28/Oct/2013:11:49:15 +0100] "GET /hg/testagt?cmd=capabilities
HTTP/1.1" 200 147 "-" "mercurial/proto-1.0"
10.10.168.170 - - [28/Oct/2013:11:49:17 +0100] "GET /hg/testagt?cmd=batch
HTTP/1.1" 200 42 "-" "mercurial/proto-1.0"
10.10.168.170 - - [28/Oct/2013:11:49:19 +0100] "GET /hg/testagt?cmd=getbundle
HTTP/1.1" 200 61184 "-" "mercurial/proto-1.0"
10.10.168.170 - - [28/Oct/2013:11:49:22 +0100] "GET /hg/testagt?cmd=listkeys
HTTP/1.1" 200 15 "-" "mercurial/proto-1.0"
10.10.168.170 - - [28/Oct/2013:11:49:24 +0100] "GET /hg/testagt?cmd=listkeys
HTTP/1.1" 200 - "-" "mercurial/proto-1.0"
In this last example, you can see only one 401 response.
Prasoon Shukla <prasoon92.iitr@gmail.com> [Thu, 12 Dec 2013 12:25:56 +0530] rev 20171
record: --user/-u now works with record when ui.username not set (issue3857)
The -u flag didn't work when ui.username was not set and resulted in an
abort message. This was fixed by checking for the 'user' key in the opts
dictionary. If the key is present, the step causing the exception is not
executed.
Steve Hoelzer <shoelzer@gmail.com> [Wed, 11 Dec 2013 11:33:58 -0600] rev 20170
help: fix formatting of template example
Matt Mackall <mpm@selenic.com> [Fri, 13 Dec 2013 17:23:02 -0600] rev 20169
merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 04 Dec 2013 13:42:28 -0600] rev 20168
hgweb: avoid initialization race (issue3953)
Matt Mackall <mpm@selenic.com> [Wed, 11 Dec 2013 18:33:42 -0600] rev 20167
mpatch: rewrite pointer overflow checks
Chris Jerdonek <chris.jerdonek@gmail.com> [Mon, 02 Dec 2013 07:49:49 -0800] rev 20166
parsers: clarify documentation of test-parseindex2.py
This change updates and improves the description of test-parseindex2.py.
In particular, it removes language that can be interpreted to mean that the
test module checks only the C implementation of parsers.parse_index2().
Rather, the module checks parsers.parse_index2(), which can be either the
C or pure Python implementation, depending on which version is being used.
As of e57c532c3835, the module also does more than just compare the return
value with the original Python implementation.
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 21:24:48 -0600] rev 20165
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 21:24:26 -0600] rev 20164
tests: fix missing import in check-translations
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:54:02 -0600] rev 20163
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:51:15 -0600] rev 20162
Added signature for changeset 209e04a06467
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:51:12 -0600] rev 20161
Added tag 2.8.1 for changeset 209e04a06467
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:47:09 -0600] rev 20160
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:46:36 -0600] rev 20159
parsers: backout version mismatch detection from 21dafd8546d1
This introduced mandatory recompilations and breaks pure mode in tests
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:39:11 -0600] rev 20158
tests: fix Mac doctest escape code garbage for check-translations
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 Dec 2013 18:26:42 -0200] rev 20157
i18n-pt_BR: synchronized with 734ff413eb7e
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 14:10:53 -0600] rev 20156
merge with stable
Chris Jerdonek <chris.jerdonek@gmail.com> [Fri, 29 Nov 2013 12:36:28 -0800] rev 20155
parsers: fail fast if Python has wrong minor version (issue4110)
This change causes an informative ImportError to be raised when importing
the extension module parsers if the minor version of the currently-running
Python interpreter doesn't match that of the Python that was used when
compiling the extension module. Here is an example of what the new error
looks like:
Traceback (most recent call last):
File "test.py", line 1, in <module>
import mercurial.parsers
ImportError: Python minor version mismatch: The Mercurial extension
modules were compiled with Python 2.7.6, but Mercurial is currently using
Python with sys.hexversion=33883888: Python 2.5.6
(r256:88840, Nov 18 2012, 05:37:10)
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))]
at: /opt/local/Library/Frameworks/Python.framework/Versions/2.5/Resources/
Python.app/Contents/MacOS/Python
The reason for raising an error in this scenario is that Python's C API
is known not to be compatible from minor version to minor version, even
if sys.api_version is the same. See for example this Python bug report
about incompatibilities between 2.5 and 2.6+:
http://bugs.python.org/issue8118
These incompatibilities can cause Mercurial to break in mysterious,
unforeseen ways. For example, when Mercurial compiled with Python 2.7 was
run with 2.5, the following crash occurred when running "hg status":
http://bz.selenic.com/show_bug.cgi?id=4110
After this crash was fixed, running with Python 2.5 no longer crashes, but
the following puzzling behavior still occurs:
$ hg status
...
File ".../mercurial/changelog.py", line 123, in __init__
revlog.revlog.__init__(self, opener, "00changelog.i")
File ".../mercurial/revlog.py", line 251, in __init__
d = self._io.parseindex(i, self._inline)
File ".../mercurial/revlog.py", line 158, in parseindex
index, cache = parsers.parse_index2(data, inline)
TypeError: data is not a string
which can be reproduced more simply with:
import mercurial.parsers as parsers
parsers.parse_index2("", True)
Both the crash and the TypeError occurred because the Python C API's
PyString_Check returns the wrong value when the C header files from
Python 2.7 are run with Python 2.5. This is an example of an
incompatibility of the sort mentioned in the Python bug report above.
Failing fast with an informative error message will result in a better
user experience in cases like the above. The information in the ImportError
will also simplify troubleshooting for those on Mercurial mailing lists,
the bug tracker, etc.
This patch only adds the version check to parsers.c, which is sufficient
to affect command-line commands like "hg status" and "hg summary".
An idea for a future improvement is to move the version-checking C code
to a more central location, and have it run when importing all
Mercurial extension modules and not just parsers.c.
Andrew Shadura <andrew@shadura.me> [Sun, 01 Dec 2013 13:53:24 -0600] rev 20154
hgk: fix tag list parser (issue4101)
As tags may have embedded spaces, and "hg tags" command doesn't escape them,
the output of the command doesn't make a well-formed list, so we can't just
iterate over it. Instead, apply a simple regexp to transform it to a list
which we actually use. Line boundary matching should be enabled.
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 13:45:00 -0600] rev 20153
merge with i18n
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 27 Nov 2013 22:47:32 +0900] rev 20152
i18n: add the tool to check Mercurial specific translation problems in *.po
Existing tool like "msgfmt --check" can check typical translation
problems (missing "%s" in msgstr, for example), but can't check
Mercurial specific ones.
For example, "msgfmt --check" can't check whether the translated
string given to "ui.promptchoice()" is correct or not, even though
problems like below cause run-time error or unexpected behavior:
- less or more choices than msgid,
- choices without '&', or
- choices with '&' followed by none
This patch adds the tool to check Mercurial specific translation
problems in *.po files.
Santiago Pay=C3=A0 i Miralta <santiagopim@gmail.com> [Wed, 27 Nov 2013 22:32:01 +0100] rev 20151
help: fix backwards bisect help example
Durham Goode <durham@fb.com> [Tue, 26 Nov 2013 16:30:52 -0800] rev 20150
unshelve: add tests for unknown files
Adds a basic test for shelving/unshelving with an unknown file present.
Adds a test for unshelving on top of an existing unknown file.
Durham Goode <durham@fb.com> [Tue, 26 Nov 2013 16:23:05 -0800] rev 20149
unshelve: don't commit unknown files during unshelve (issue4113)
Previously, unshelve would temporarily commit unknown files (via addremove) in
an attempt to allow unshelving into unknown files. This produced unexpected
results, like the file time stamp changing and a .i file being created.
This change makes it no longer use addremove. It ignores unknown files
completely. If an unshelve would overwrite an unknown file, the unknown file is
moved to *.orig
The shelve continue/abort format is changed, but it just removes stuff from the
end of the file, so it can still read the old format.
Mads Kiilerich <madski@unity3d.com> [Tue, 26 Nov 2013 15:38:33 +0100] rev 20148
largefiles: don't crash on 'local renamed directory' actions
a12798938721 introduced splitstandin on all action filenames. It would however
crash on 'd' actions where the filename is None.
Fix that and add test coverage for that case.
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:13:07 +0100] rev 20147
glossary: don't mention obsolete graphlog extension
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:12:44 +0100] rev 20146
bisect: don't mention obsolete graphlog extension in help
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:12:18 +0100] rev 20145
contrib: don't mention obsolete graphlog extension in mercurial.ini
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:11:48 +0100] rev 20144
contrib: stop mentioning obsolete graphlog extension in sample.hgrc
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 17:14:44 +0100] rev 20143
contrib: promote strip extension over MQ in sample.hgrc
Matt Mackall <mpm@selenic.com> [Fri, 22 Nov 2013 17:12:43 +0100] rev 20142
help: use progress instead of mq as in 'hg help config' example
Wagner Bruna <wbruna@yahoo.com> [Sat, 30 Nov 2013 21:50:40 -0200] rev 20141
i18n-pt_BR: fix wording in tag command help text
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 28 Nov 2013 20:10:47 +0900] rev 20140
i18n-ja: synchronized with 5246fd4781d8
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 26 Nov 2013 11:00:49 -0200] rev 20139
i18n-pt_BR: synchronized with 224e96078708
Augie Fackler <raf@durin42.com> [Wed, 27 Nov 2013 16:43:02 -0500] rev 20138
test-import-git.t: work around check-code hating on ^ and $( in tests
Nicolas Vigier <boklm@mars-attacks.org> [Wed, 27 Nov 2013 18:39:00 +0100] rev 20137
patch: add support for git delta hunks
When creating patches modifying binary files using "git format-patch",
git creates 'literal' and 'delta' hunks. Mercurial currently supports
'literal' hunks only, which makes it impossible to import patches with
'delta' hunks.
This changeset adds support for 'delta' hunks. It is a reimplementation
of patch-delta.c from git :
http://git.kernel.org/cgit/git/git.git/tree/patch-delta.c
Sean Farley <sean.michael.farley@gmail.com> [Mon, 25 Nov 2013 12:12:42 -0500] rev 20136
pathcomplete: remove ambiguous entries for sole completion on a directory
Previously, directories were added with the trailing slash and, if there was
only one completion, then another ambiguous entry was created using '.', as
follows:
$ hg rm mer<TAB>
mercurial/./ mercurial//
This was added in fa6d5c62f3bd (though, some logic existed before that) to work
around bash completion adding a space after the sole entry because we treated
directories and files the same. We no longer do that now so we remove this
unneeded code.
Tests have been updated to match this new behavior.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:33:18 -0600] rev 20135
bash_completion: add global support for -b|--branch
Previously, only -r|--rev was parsed globally which meant 'hg push -b <tab>'
would try to complete a path instead of a branch.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:31:40 -0600] rev 20134
bash_completion: add global support for -B|--bookmark
Previously, only -r|--rev was parsed globally which meant 'hg push -B <tab>'
would try to complete a path instead of a bookmark.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:04:12 -0600] rev 20133
bash_completion: change --rev if-else block into a case
Again, this doesn't change behavior but does make it easy to add cases in the
next patch.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 13:55:33 -0600] rev 20132
bash_completion: simplify if-else logic
There is no change in functionality here but this makes refactoring this later
easier.
Sean Farley <sean.michael.farley@gmail.com> [Mon, 25 Nov 2013 11:38:14 -0500] rev 20131
bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:38:14 -0600] rev 20130
bash_completion: add -B|--bookmark support for strip
Sean Farley <sean.michael.farley@gmail.com> [Fri, 22 Nov 2013 14:58:41 -0500] rev 20129
bash_completion: add completion for deleting a shelve
Sean Farley <sean.michael.farley@gmail.com> [Thu, 21 Nov 2013 15:14:52 -0500] rev 20128
bash_completion: use correct command for listing shelves
Previously, _hg_shelves used the unshelve command to list current shelves. This
is actually the wrong command. The correct usage is 'hg shelve -l' so we use
that instead.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 19:13:24 -0500] rev 20127
bash_completion: remove restriction on bookmark completion
Previously, we only completed a bookmark when deleting or renaming a
bookmark. Since we can now move a bookmark forward, we drop this restriction.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 14:45:18 -0500] rev 20126
bash_completion: fix issue with subdirectories not being completed
Previously, if there was a directory between the file and first-level directory (e.g. 'bar' in
foo/bar/file), then bash_completion would only list 'foo/file' instead of 'foo/bar/file'.
This behavior was introduced in 80f3ae36f908 to fix spaces in file names. In
this patch, we keep that behavior while also fixing subdirectory completion by
reverting 80f3ae36f908 and instead add backslashes to whitespace manually. This
approach means adding the completion option 'nospace' since we do this manually
now.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 13:19:55 -0500] rev 20125
bash_completion: determine root executable in case of alias
This solves an issue for users that have "alias hg='hg --some_opts'" where they
would see wrong entries in the completion output (such as color codes).
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 15:16:54 -0500] rev 20124
bash_completion: expand aliased commands
Sean Farley <sean.michael.farley@gmail.com> [Tue, 19 Nov 2013 11:45:30 -0500] rev 20123
bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com> [Mon, 25 Nov 2013 12:20:39 -0500] rev 20122
dispatch: turn off custom debugger for HGPLAIN mode
Some debuggers, such as ipdb, load escape codes and color codes even when later
turned off. This will affect scripts that do simple parsing and can't handle
escape codes. Therefore, we only load a custom debugger if ui.plain() is false.
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 12:18:26 +0100] rev 20121
Makefile: temporary copy of hg.pot is hg.pot.tmp instead of hg.pot~
The file ending of temporary files for generating XX.po has been changed to
.tmp (from ~). Use the same ending when generating hg.pot.
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 12:17:55 +0100] rev 20120
Makefile: fix po file updating by using same file name everywhere
The update is done on a temporary file since ce5d711475a3. The name of this
file was first XX.po~ and has been changed to XX.po.tmp in all except of one
place. Do this now.
Kevin Bullock <kbullock@ringworld.org> [Sun, 24 Nov 2013 17:29:10 -0600] rev 20119
mq: prefer a loop to a double-for list comprehension
The [x for y in l for x in y] syntax is nigh-incomprehensible, and this
is a particularly easy case to expand into a loop since there's no 'if'
condition in the list comprehension.
Martin Geisler <martin@geisler.net> [Sat, 23 Nov 2013 18:34:32 +0100] rev 20118
graphlog: mark as deprecated
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:14:17 +0100] rev 20117
tests: don't load unnecessary graphlog extension
Since graphlog is in core, we can use 'hg log -G' instead.
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:13:26 +0100] rev 20116
hg: remove outdated comment
The graphlog functionality has been in core since Mercurial 2.3.
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 17:10:08 +0100] rev 20115
tests: use strip extension instead of mq where it makes sense
When a test only uses 'hg strip', it no longer needs to load MQ.
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Nov 2013 01:06:20 +0100] rev 20114
tests: fix `hghave root` on windows
This lets tests\test-hghave.t pass on windows where geteuid does not exist.
Christian Ebert <blacktrash@gmx.net> [Wed, 20 Nov 2013 12:55:08 +0000] rev 20113
keyword: wlock while setting branch in kwdemo
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 15:43:46 +0100] rev 20112
tests: add missing glob
Bryan O'Sullivan <bryano@fb.com> [Tue, 26 Nov 2013 21:55:21 -0800] rev 20111
Merge
Abhay Kadam <abhaykadam88@gmail.com> [Tue, 19 Nov 2013 23:49:11 +0530] rev 20110
mercurial/parsers.c: fix compiler warning
When try to compile on x64 OS X, I get this warning:
mercurial/parsers.c:931:27: warning: implicit conversion loses integer precision
: 'long' to 'int' [-Wshorten-64-to-32]
? 4 : self->raw_length / 2;
The patch verifies if value of self->raw_length falls bellow INT_MAX; if not,
it raises the ValueError exception.
If value of self->raw_length is greater than 4, it's casted to int type, to
eliminate the warning.
Chris Jerdonek <chris.jerdonek@gmail.com> [Tue, 26 Nov 2013 16:14:22 -0800] rev 20109
parse_index2: fix crash on bad argument type (issue4110)
Passing a non-string to parsers.parse_index2() causes Mercurial to crash
instead of raising a TypeError (found on Mac OS X 10.8.5, Python 2.7.6):
import mercurial.parsers as parsers
parsers.parse_index2(0, 0)
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 parsers.so 0x000000010e071c59 _index_clearcaches + 73 (parsers.c:644)
1 parsers.so 0x000000010e06f2d5 index_dealloc + 21 (parsers.c:1767)
2 parsers.so 0x000000010e074e3b parse_index2 + 347 (parsers.c:1891)
3 org.python.python 0x000000010dda8b17 PyEval_EvalFrameEx + 9911
This happens because when arguments of the wrong type are passed to
parsers.parse_index2(), indexType's initialization function index_init() in
parsers.c leaves the indexObject instance in a state that indexType's
destructor function index_dealloc() cannot handle.
This patch moves enough of the indexObject initialization code inside
index_init() from after the argument validation code to before it.
This way, when bad arguments are passed to index_init(), the destructor
doesn't crash and the existing code to raise a TypeError works. This
patch also adds a test to check that a TypeError is raised.
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 16:15:44 -0600] rev 20108
merge with stable
Sean Farley <sean.michael.farley@gmail.com> [Wed, 06 Nov 2013 19:01:14 -0600] rev 20107
bookmarks: consider successor changesets when moving bookmark (issue4015)
Previously, this required -f because we didn't consider obsolete changesets
(and their children ... or successors of those children, etc.). We now use
obsolete.foreground to calculate acceptable changesets when advancing the
bookmark.
Test coverage has been added.
Simon Heimberg <simohe@besonet.ch> [Wed, 20 Nov 2013 22:03:15 +0100] rev 20106
util: url keeps backslash in paths
Backslashes (\) in paths were encoded to %C5 when converting from url to
string. This does not look nice for windows paths. And it introduces many
problems when running tests on windows.
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 19:55:38 -0500] rev 20105
tests: deal with new gits sending status messages to stderr
git-1.8.4.2 will send messages like
Cloning into 'X'...
done.
to stderr.
Mute stderr.
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 13:50:36 -0600] rev 20104
subrepo: sanitize non-hg subrepos
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 13:46:46 -0600] rev 20103
shelve: fix bad argument interaction with largefiles (issue4111)
Siddharth Agarwal <sid0@fb.com> [Mon, 18 Nov 2013 09:09:05 -0800] rev 20102
strip.stripcmd: remove redundant wlock acquire/release
Now that we acquire and release a wlock in the outer scope, this is redundant.
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 12:18:29 -0600] rev 20101
merge with stable
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:41:40 -0800] rev 20100
bookmarks: make setcurrent with None an error
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:31:02 -0800] rev 20099
strip: use bookmarks.unsetcurrent instead of setcurrent with None
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:28:57 -0800] rev 20098
bmstore.write: use unsetcurrent instead of setcurrent with None
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:06:01 -0800] rev 20097
commands.bookmark: use unsetcurrent instead of setcurrent with None
There are currently two different ways we can have no active bookmark:
.hg/bookmarks.current being missing and it being an empty file. This patch and
upcoming ones make an empty file the only way to represent no active bookmarks.
This is the right choice because it matches the state that a new repository
without bookmarks will be in.
Siddharth Agarwal <sid0@fb.com> [Mon, 18 Nov 2013 08:57:19 -0800] rev 20096
strip: hold wlock for entire duration
Previously, we'd acquire and release the wlock several times. This meant that
other hg processes could come in and change state. Instead of that, retain the
wlock for the entire duration of the strip.
Matt Mackall <mpm@selenic.com> [Fri, 22 Nov 2013 17:26:58 -0600] rev 20095
merge with stable
Mads Kiilerich <madski@unity3d.com> [Sun, 10 Nov 2013 18:51:21 +0100] rev 20094
bisect: report "both good and bad" as such, not as "not directly related"
Martin Geisler <martin@geisler.net> [Fri, 08 Nov 2013 11:49:13 +0100] rev 20093
phase: better error message when --force is needed
When trying to turn a draft changeset into a secret changeset, I was
told:
% hg phase -s .
cannot move 1 changesets to a more permissive phase, use --force
no phases changed
That message struck me as being backwards -- the secret phase feels
less permissive to me since it restricts the changesets from being
pushed.
We don't use the word "permissive" elsewhere, 'hg help phase' talks
about "lower phases" and "higher phases". I therefore reformulated the
error message to be
cannot move 1 changesets to a higher phase, use --force
That is not perfect either, but more in line with the help text. An
alternative could be
cannot move phase backwards for 1 changesets, use --force
which fits better with the help text for --force.
Isaac Jurado <diptongo@gmail.com> [Fri, 08 Nov 2013 09:48:01 +0100] rev 20092
hgweb: ignore non numeric "revcount" parameter values (issue4091)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20091
lock: take both vfs and lock file path relative to vfs to access via vfs
This patch makes "lock.lock.__init__()" take both vfs and lock file
path relative to vfs, instead of absolute path to lock file.
This allows lock file to be accessed via vfs.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20090
vfs: add "makelock()" and "readlock()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20089
hg: rewrite "copystore()" with vfs
This patch rewrites "copystore()" with vfs, because succeeding patch
requires "lock.lock()" invocation with vfs.
This patch uses 'dstbase + "/lock"' instead of "join()" with both
elements even on Windows environment but it should be reasonable,
because target files given from "store.copyfiles()" already uses "/"
as path separator.
"util.copyfiles()" between two vfs-s may have to be rewritten in the
future.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20088
localrepo: import "lock" module as "lockmod" for readability
Before this patch, "localrepo.py" has many methods defining local
variable "lock", even though it imports "lock" module as "lock". This
ambiguity decreases readability.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20087
transaction: take journal file path relative to vfs to use file API via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20086
vfs: add "chmod()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20085
vfs: add "isfile()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20084
transaction: unlink target file via vfs
Before this patch, unlink target file is once opened before unlinking,
because "opener" before vfs migration doesn't have "unlink()"
function.
This patch uses "vfs.unlink()" instead of "open()" and "fp.name".
Simon Heimberg <simohe@besonet.ch> [Sat, 09 Nov 2013 14:50:58 +0100] rev 20083
relink: abort earlier when on different devices (issue3916)
Add a first check of the devices before collecting candidate files. This is
much quicker when big repos are on different devices.
Keep the existing check in prune. It checks for same device of the files. This
could probably be different in a special repo store (with symlinks).
Simon Heimberg <simohe@besonet.ch> [Mon, 11 Nov 2013 22:59:26 +0100] rev 20082
localrepo: prevent to copy repo local config, copy baseui instead
Copying a repos local configuration to another repo is a bad idea because the
2nd repo gets the configuration of the first. Prevent this by really calling
repo.baseui.copy when repo.ui.copy is called.
This requires some changes in commandserver which needs to clone repo.ui for
rejecting temporary changes.
This patch has its roots back in the topic "repo isolation" around f0564402d059
and was suggested by mpm.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 08 Nov 2013 14:42:09 +0900] rev 20081
doc: show details of command options in pages generated by docutils
Before this patch, HTML/man pages generated by docutils don't show
details of each command options, whether it should take argument or
not for example, even though "hg help" does.
This patch shows details of command options as same as "hg help"
shows.
This patch uses "--option <VALUE[+]>" style instead of "--option
<VALUE> [+]" used in output of "hg help", because docutils requires
that option argument strings starts with "<" and ends with ">".
Simon Heimberg <simohe@besonet.ch> [Tue, 05 Nov 2013 09:43:26 +0100] rev 20080
Makefile: intermediate steps work with temporary copy of hg.pot
In case of abortion or a failing step, the target file remains untouched
instead of being in an intermediate state.
Matt Mackall <mpm@selenic.com> [Thu, 21 Nov 2013 15:08:30 -0600] rev 20079
merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Nov 2013 11:49:31 -0600] rev 20078
help: drop help for branches template keyword
The {branches} keyword dates to pre-1.0 Mercurial's tag-like branch
scheme which allowed changesets to be on multiple branches. This is
the last visible vestige of that scheme, users should instead be using
{branch}, possibly with if().
Siddharth Agarwal <sid0@fb.com> [Thu, 21 Nov 2013 12:47:03 -0800] rev 20077
test-command-template.t: fix failure due to trailing whitespace
Matt Mackall <mpm@selenic.com> [Thu, 21 Nov 2013 11:30:52 -0600] rev 20076
templater: makes branches work correctly with stringify (issue4108)
Durham Goode <durham@fb.com> [Mon, 11 Nov 2013 16:35:12 -0800] rev 20075
manifest: increase lrucache from 3 to 4
During a commit amend there are 4 manifests being handled:
- original commit
- temporary commit
- amended commit
- merge base
This causes a manifest cache miss which hurts perf on large repos. On a large
repo, this fix causes amend to go from 6 seconds to 5.5 seconds.
Durham Goode <durham@fb.com> [Mon, 11 Nov 2013 16:42:49 -0800] rev 20074
strip: add faster revlog strip computation
The previous revlog strip computation would walk every rev in the revlog, from
the bottom to the top. Since we're usually stripping only the top few revs of
the revlog, this was needlessly expensive on large repos.
The new algorithm walks the exact number of revs that will be stripped, thus
making the operation not dependent on the number of revs in the repo.
This makes amend on a large repo go from 8.7 seconds to 6 seconds.
Durham Goode <durham@fb.com> [Mon, 11 Nov 2013 16:40:02 -0800] rev 20073
revlog: return lazy set from findcommonmissing
When computing the commonmissing, it greedily computes the entire set
immediately. On a large repo where the majority of history is irrelevant, this
causes a significant slow down.
Replacing it with a lazy set makes amend go from 11 seconds to 8.7 seconds.
Matt Mackall <mpm@selenic.com> [Tue, 19 Nov 2013 11:29:56 -0500] rev 20072
merge with stable
Siddharth Agarwal <sid0@fb.com> [Sun, 17 Nov 2013 15:11:09 -0800] rev 20071
histedit: hold wlock and lock while in progress
Currently, histedit acquires and releases lock and wlock several times during
its run. This isn't great because it allows other hg processes to come in and
change state. With this fix, lock and wlock are acquired and released exactly
once.
The change to test-histedit-drop.t is a minor implementation one -- the cache
is still correctly invalidated, but it just happens a little later and only
gets printed out because of the unrelated --debug flag.
Matt Mackall <mpm@selenic.com> [Mon, 18 Nov 2013 15:43:45 -0500] rev 20070
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 18 Nov 2013 13:29:05 -0200] rev 20069
i18n-pt_BR: fix typos in notify docs
Wagner Bruna <wbruna@yahoo.com> [Sun, 17 Nov 2013 19:52:49 -0200] rev 20068
i18n-pt_BR: synchronized with 06e118c097ff
Matt Mackall <mpm@selenic.com> [Mon, 18 Nov 2013 15:37:09 -0500] rev 20067
templater: only recursively evaluate string literals as templates (issue4103)
Matt Mackall <mpm@selenic.com> [Mon, 18 Nov 2013 14:02:26 -0500] rev 20066
templater: fix escaping in nested string literals (issue4102)
Before the templater got extended for nested expressions, it made
sense to decode string escapes across the whole string. Now we do it
on a piece by piece basis.
Matt Mackall <mpm@selenic.com> [Sun, 17 Nov 2013 20:22:59 -0500] rev 20065
merge with stable
David Soria Parra <davidsp@fb.com> [Thu, 07 Nov 2013 20:36:26 -0800] rev 20064
shelve: unshelve using an unfiltered repository
when evolve is enabled and a hidden obsolete changeset exists
in the repository, the strip during unshelve will fail due to
filtered revs. we use an unfiltered repository like to
repair.strip to strip the proper nodes.
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:56:40 +0100] rev 20063
largefiles: update in two steps, handle interrupted updates better
An update would try to fetch any missing largefiles after having updated normal
files and standins. That could fail or be interrupted and would leave the
working directory in a state where the largefiles not only were missing but
also were scheduled for remove ... and where the old largefile was left in
place.
Instead we now remove old largefiles before starting to download and update
missing largefiles.
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:49:48 +0100] rev 20062
largefiles: inline _updatelfile, prepare for further refactorings
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:48:00 +0100] rev 20061
largefiles: cache largefiles for update, also without printmessage
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:47:59 +0100] rev 20060
largefiles: cleanup of printmessage handling - the printed flag was redundant
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 18:13:55 -0500] rev 20059
test-module-imports: skip on Python < 2.6, since ast is new in 2.6
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 17:49:48 -0500] rev 20058
Merge with stable.
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 19:56:30 -0500] rev 20057
convert: fix svn crash when svn.ra.get_log calls back with orig_paths=None
get_log started calling back with orig_paths=None on Fedora 20 with
subversion-1.8.3. That broke test-convert-svn-source.t .
There used to be some handling of that situation until e8f4e40f285a apparently
broke it. This patch restores what seems to be the most obvious handling of the
situation.