FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Jul 2015 18:39:48 +0900] rev 25885
i18n-ja: synchronized with
7fcad0c4ef8c
Eugene Baranov <eug.baranov@gmail.com> [Wed, 22 Jul 2015 16:57:11 +0100] rev 25884
convert: when converting from Perforce use original local encoding by default
On Windows Perforce command line client uses default system locale to encode
output. Using 'latin_1' causes locale-specific characters to be replaced with
question marks. With this patch we will use default locale by default whilst
allowing to specify it explicity with 'convert.p4.encoding' config option.
This is a potentially breaking change for any scripts relying on output treated
as in 'latin_1' encoding.
Also because hgext.convert.convcmd overwrites detected default system locale
with UTF-8 we had to introduce an import cycle in hgext.convert.p4 to retrieve
originally detected encoding from hgext.convert.convcmd.
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 29 Jul 2015 11:37:36 -0300] rev 25883
i18n-pt_BR: synchronized with
3e84f40232c7
Eugene Baranov <eug.baranov@gmail.com> [Thu, 30 Jul 2015 00:58:05 +0100] rev 25882
convert: when getting file from Perforce concatenate data at the end
As it turned out, even when getting relatively small files, concatenating
string data every time when new chunk is received is very inefficient.
Maintaining a string list of data chunks and concatenating everything in one go
at the end seems much more efficient - in my testing it made getting 40 MB file
7 times faster, whilst converting of a particularly big changelist with some big
files went down from 20 hours to 3 hours.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 18 Jul 2015 17:10:28 -0700] rev 25881
help: scripting help topic
There are a lot of non-human consumers of Mercurial. And the challenges
and considerations for machines consuming Mercurial is significantly
different from what humans face.
I think there are enough special considerations around how machines
consume Mercurial that a dedicated help topic is warranted. I concede
the audience for this topic is probably small compared to the general
audience. However, lots of normal Mercurial users do things like create
one-off shell scripts for common workflows that I think this is useful
enough to be in the install (as opposed to, say, a wiki page - which
most users will likely never find).
This text is by no means perfect. But you have to start somewhere. I
think I did cover the important parts, though.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 29 Jul 2015 21:31:56 -0400] rev 25880
convert: document convert.hg.startrev
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 30 Jul 2015 06:22:09 +0900] rev 25879
transplant: restore dirstate correctly at unexpected failure
Before this patch, transplant can't restore dirstate as expected at
failure other than one while patching. This causes:
- unexpected file status
- dirstate refers already rollback-ed parent
(only at failure of transplanting the 2nd or later revision)
To restore dirstate correctly also at unexpected failure, this patch
encloses scope of store lock and transaction by 'dirstateguard'.
This is temporary fixing for stable branch. See
DirstateTransactionPlan wiki page for detail about the future plan to
treat dirstate consistently around scope boundary of transaction.
https://mercurial.selenic.com/wiki/DirstateTransactionPlan
This patch also adds 'if lock' examination for safety
'lock.release()', because creating 'dirstateguard' object may fail
unexpectedly (e.g. IOError for saving dirstate).
BTW, in the test script, putting section header '[extensions]' into
'.hg/hgrc' is needed to fix incomplete disabling 'abort' extension at
4d1382fd96ff.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 30 Jul 2015 06:16:12 +0900] rev 25878
localrepo: make journal.dirstate contain in-memory changes before transaction
Before this patch, in-memory dirstate changes aren't written out at
opening transaction, even though 'journal.dirstate' is created
directly from '.hg/dirstate'.
Therefore, subsequent 'hg rollback' uses incomplete 'undo.dirstate' to
restore dirstate, if dirstate is changed and isn't written out before
opening transaction.
In cases below, the condition "dirstate is changed and isn't written
out before opening transaction" isn't satisfied and this problem
doesn't appear:
- "wlock scope" and "transaction scope" are almost equivalent
e.g. 'commit --amend', 'import' and so on
- dirstate changes are written out before opening transaction
e.g. 'rebase' (via 'dirstateguard') and 'commit -A' (by separated
wlock scopes)
On the other hand, 'backout' may satisfy the condition above.
To make 'journal.dirstate' contain in-memory changes before opening
transaction, this patch explicitly invokes 'dirstate.write()' in
'localrepository.transaction()'.
'dirstate.write()' is placed before not "writing journal files out"
but "invoking pretxnopen hooks" for visibility of dirstate changes to
external hook processes.
BTW, in the test script, 'touch -t
200001010000' and 'hg status' are
invoked to make file 'c' surely clean in dirstate, because "clean but
unsure" files indirectly cause 'dirstate.write()' at 'repo.status()'
in 'repo.commit()' (see
fe03f522dda9 for detail) and prevents from
certainly reproducing the issue.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Jul 2015 21:27:24 -0400] rev 25877
dirstate: ensure mv source is marked deleted when walking icasefs (
issue4760)
Previously, importing a case-only rename patch on a case insensitive filesystem
caused the original file to be marked as '!' in status. The source was being
forgotten properly in patch.workingbackend.close(), but the call it makes to
scmutil.marktouched() then put the file back into the 'n' state (but it was
still missing from the filesystem).
The cause of this was scmutil._interestingfiles() would walk dirstate,
and since dirstate was able to lstat() the old file via the new name,
was treating this as a forgotten file, not a removed file.
scmutil.marktouched() re-adds forgotten files, so dirstate got out of
sync with the filesystem.
This could be handled with less code in the "kind == regkind or kind
== lnkkind" branch of dirstate._walkexplicit(), but this avoids
filesystem accesses unless case collisions occur. _discoverpath() is
used instead of normalize(), since the dirstate case is given first
precedence, and the old file is still in it. What matters is the
actual case in the filesystem.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Jul 2015 17:39:09 -0400] rev 25876
extdiff: allow modifications in subrepos to be copied back
This check was a legacy bit from when the file data was being fetched manually
with 'ctx[wfn]', but archive() does that now.
49966b5ab16f seems to indicate
that this avoided a problem where a merge adds a file to another branch, and
that test still passes.
Unfortunately, I don't see a way to create a test that modifies the file in the
temporary directory before the command exits.
I wonder if the os.lstat() call needs to be wrapped in an exception handler for
the case where archive didn't create a file because the file didn't exist in
that revision. But I wasn't able to trigger a problem without it on a real
repository.
Yuya Nishihara <yuya@tcha.org> [Mon, 27 Jul 2015 22:14:40 +0900] rev 25875
ignore: fix path concatenation of .hgignore on Windows
Since
3de48ff62733, .hgignore is ignored on Windows because a pat may have
a drive letter, but pathutil.join is posixpath.join.
"z:\foo\bar/z:\foo\bar\.hgignore"
Instead, this patch uses os.path.join() and util.localpath() to process both
parts as file-system paths.
Maybe we can remove os.path.join() at dirstate._ignore because 'include:' is
resolved relative to repo root? It was introduced by
a04c7b74b3d5.
Wagner Bruna <wbruna@yahoo.com> [Sun, 26 Jul 2015 09:28:52 -0300] rev 25874
repair: fix typo in warning message
Anton Shestakov <av6@dwimlabs.net> [Sun, 26 Jul 2015 18:05:10 +0800] rev 25873
monoblue: link to branches on summary page
"Tags" and "Bookmarks" sections on this page already have the similar links,
and so does the "Branches" on summary page in gitweb, so let's do the same in
monoblue.
Anton Shestakov <av6@dwimlabs.net> [Sun, 26 Jul 2015 17:18:42 +0800] rev 25872
monoblue: fix branches link on help topics page
Anton Shestakov <av6@dwimlabs.net> [Sun, 26 Jul 2015 00:11:23 +0800] rev 25871
hgweb: show ages in repos' Last modified column in monoblue and gitweb
Index page, which shows the list of available repositories, has a column where
the last modification date for each repo is shown. paper, coal and spartan
already show the dates in relative format (e.g. "2 weeks ago"), because these
styles have the required process_dates() js function call in their footer
templates, which are included on every page. But monoblue and gitweb styles
have more things in the footer templates, such as repo name and its atom/rss
links, so they don't include the footer on index page (as this page doesn't
have a single repo context).
Let's call process_dates() without including the footer.
Durham Goode <durham@fb.com> [Fri, 24 Jul 2015 16:44:52 -0700] rev 25870
ignore: fix include: rules depending on current directory (
issue4759)
When reading pattern files, we just call open(path), which is relative to the
current directory. Let's fix this by resolving the paths before attempting to
read the file.
Durham Goode <durham@fb.com> [Fri, 24 Jul 2015 16:43:21 -0700] rev 25869
test: move ignore test run into a subdirectory
Previously the hgignore test just called hg init in the test directory. A future
patch needs to test hgignore stuff from outside of the repo, so let's move the
entire test repo into a subdirectory.
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jul 2015 13:13:17 +0800] rev 25868
monoblue: show relative age of bookmarks
In
b24e5a708fad, age calculation was made dynamic (i.e. in javascript), but for
some reason bookmarkentry template in monoblue/map got a wrong class. It
resulted in /summary and /bookmarks pages always showing exact dates for
bookmarks, no age calculation was performed. Let's fix this by using "age"
class that is already used in branchentry and tagentry templates in the same
map file.
As usual, the exact date for such elements is still available in title
attribute, so it shows in a tooltip on hover.
Anton Shestakov <av6@dwimlabs.net> [Wed, 22 Jul 2015 10:19:17 +0800] rev 25867
highlight: produce correct markup when there's a blank line just before EOF
Due to how the colorized output from pygments was stripped of <pre> elements,
when there was an empty line at the end of a file, highlight extension produced
an incorrect markup (no closing tags from the fileline/annotateline template).
It wasn't usually noticeable, because browsers were smart enough to see where
the missing tags should've been, but in monoblue style it resulted in the last
line having twice the normal height.
Instead of awkwardly trying to strip outer <pre></pre> tags, let's make the
formatter with nowrap=True, which should do what we need in pygments since at
least 0.5 (2006-10-30).
Example from monoblue style:
Before:
<div class="source">
<div style="font-family:monospace" class="parity0">
<pre><a class="linenr" href="#l1" id="l1"> 1</a> </pre>
</div>
<div style="font-family:monospace" class="parity1">
<pre><a class="linenr" href="#l2" id="l2"> 2</a>
</div>
Now:
<div class="source">
<div style="font-family:monospace" class="parity0">
<pre><a class="linenr" href="#l1" id="l1"> 1</a> </pre>
</div>
<div style="font-family:monospace" class="parity1">
<pre><a class="linenr" href="#l2" id="l2"> 2</a> </pre>
</div>
</div>
(Notice the missing </pre></div> now in place)
Matt Harbison <matt_harbison@yahoo.com> [Mon, 20 Jul 2015 23:33:57 -0400] rev 25866
test-check-config: convert directory separators to '/' for MSYS
The output of the files command uses native separator. MSYS then seems to drop
the '\' on Windows when invoking python:
--- c:/Users/Matt/Projects/hg/tests/test-check-config-hg.t
+++ c:/Users/Matt/Projects/hg/tests/test-check-config-hg.t.err
@@ -6,22 +6,10 @@
$ hg files "set:(**.py or **.txt) - tests/**" |
> xargs python contrib/check-config.py Traceback (most recent call last):
File "contrib/check-config.py", line 93, in <module>
sys.exit(main(sys.argv[1:]))
File "contrib/check-config.py", line 24, in main
for l in open(f):
IOError: [Errno 2] No such file or directory: 'contriball-revsets.txt'
[123]
Matt Harbison <matt_harbison@yahoo.com> [Mon, 20 Jul 2015 22:48:42 -0400] rev 25865
test-subrepo: fix globs for Windows
It looks like these changes originated with
2538b87660be. I'm not sure that it
was intentional, but is seems harmless enough for an error message.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 20 Jul 2015 22:44:53 -0400] rev 25864
test-clone: fix globs for Windows
Danek Duvall <danek.duvall@oracle.com> [Mon, 20 Jul 2015 15:42:39 -0700] rev 25863
tests: diff -r on Solaris emits "Common subdirectories:"
When using the -r option to Solaris diff, any directores that compare
identically are mentioned in the output. We don't really care about these
directories for the purposes of this test, so ignore them.
Danek Duvall <danek.duvall@oracle.com> [Mon, 20 Jul 2015 15:39:15 -0700] rev 25862
tests: work around differing hunk headers between GNU and Solaris diff
The hunk headers specifying what lines the hunk apply to differ. They're
irrelevant to the test, so just eliminate them from the output.
Danek Duvall <danek.duvall@oracle.com> [Mon, 20 Jul 2015 15:33:20 -0700] rev 25861
tests: use egrep with regular expression branches for compatibility
GNU grep allows you to use "a\|b" in a regular expression to match either
"a" or "b", but at least Solaris grep does not; only egrep allows for that.
And egrep considers "a+" to be "a{1,}" instead of an "a" and a literal plus
sign, so escape that as well.
Yuya Nishihara <yuya@tcha.org> [Mon, 20 Jul 2015 23:38:56 +0900] rev 25860
parsers: silence warning of implicit integer conversion issued by clang
"-Wshorten-64-to-32" is enabled by default on Mac OS X. Because "len" should
be represented in 32bit integer, this patch simply cast ssize_t to int.
Yuya Nishihara <yuya@tcha.org> [Sun, 19 Jul 2015 15:27:28 +0900] rev 25859
tests: disable test of buffer overflow in parsers.c if --pure
It fails with AttributeError and there's no benefit to make it runnable
with pure Python code.
Pascal Quantin <pascal.quantin@gmail.com> [Sun, 19 Jul 2015 18:11:18 +0200] rev 25858
win32: update Inno Setup script after the changes done in
95e042d77a5f
Matt Mackall <mpm@selenic.com> [Sat, 18 Jul 2015 17:33:59 -0500] rev 25857
Added signature for changeset
96a38d44ba09
Matt Mackall <mpm@selenic.com> [Sat, 18 Jul 2015 17:33:55 -0500] rev 25856
Added tag 3.5-rc for changeset
96a38d44ba09