Patrick Mezard <patrick@mezard.eu> [Thu, 02 Aug 2012 17:48:58 +0200] rev 17330
context: simplify workingctx._parents
Matt Mackall <mpm@selenic.com> [Thu, 02 Aug 2012 01:49:36 -0500] rev 17329
Added signature for changeset 7f5094bb3f42
Matt Mackall <mpm@selenic.com> [Thu, 02 Aug 2012 01:49:32 -0500] rev 17328
Added tag 2.3 for changeset 7f5094bb3f42
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 01 Aug 2012 15:12:22 +0200] rev 17327
test: fix typo in test comment
Augie Fackler <raf@durin42.com> [Wed, 01 Aug 2012 09:41:57 -0500] rev 17326
histedit: add proper locking around repair.strip() calls
Patrick Mezard <patrick@mezard.eu> [Tue, 31 Jul 2012 18:18:26 +0200] rev 17325
rebase: remove second broken synopsis line (issue3172)
Displaying multiple synopsis in online help has been broken since Matt
RST refactoring, around ff26712a0c50. Rebase help is apparently the only
one using this trick, just drop the second synopsis and assume people
will understand as with graft help.
Idan Kamara <idankk86@gmail.com> [Sat, 28 Jul 2012 22:40:30 +0300] rev 17324
localrepo: clear the filecache on _rollback() and destroyed()
This restores the old behaviour of clearing the filecache when the repo is
destroyed but combines it with also clearing it on _rollback. Before, we tried
to only call it through _rollback but that ruined callers of destroyed.
Doing it on both code paths covers destroyed being called from somewhere
else, e.g. strip.
Mads Kiilerich <mads@kiilerich.com> [Wed, 01 Aug 2012 00:20:10 +0200] rev 17323
help: add 'mergetools' alias for the 'merge-tools' help topic
The '-' in 'merge-tools' is surprising but necessary in the configuration.
Let's help those who forget that and are looking for help.
Mads Kiilerich <mads@kiilerich.com> [Wed, 01 Aug 2012 14:59:15 +0200] rev 17322
help: use the first topic name from helptable, not the longest alias
This makes the 'additional help topics' list consistent with the output from
keyword search (for instance subrepo/subrepos).
The sorting by longest name was introduced in 3f6a4f1de43f. There might have
been a good reason for it back then, but now it seems like a better idea to
place the preferred name first in the list in helptable.
Mads Kiilerich <mads@kiilerich.com> [Wed, 01 Aug 2012 00:18:23 +0200] rev 17321
help: fix helptable indentation
Patrick Mezard <patrick@mezard.eu> [Wed, 01 Aug 2012 14:08:19 +0200] rev 17320
transplant: fix emptied changeset message
- Append an EOL
- State the changeset is skipped
Patrick Mezard <patrick@mezard.eu> [Tue, 31 Jul 2012 17:39:32 +0200] rev 17319
transplant: handle non-empty patches doing nothing (issue2806)
If patch.patch() reports patched files when applying a changeset and the
following commit says nothing changed, transplant used to abort with a
RuntimeError, assuming something went wrong with patching.
The mismatch is patch.patch() reports patched files, not changed ones.
It could be modified to report changed files but it means duplicating
work from status, may be expensive in the case of binary files, and is
probably not that useful at API level. For instance, if two patches are
applied on the working directory, the outcome may be nothing changed
while each call would have returned modified files. The caller would
have to call status() itself again.
This patch fixes the issue by trusting patching code: if the patch
succeeded and commit reports nothing changed, then nothing changed,
patch() did not "dropped changes on the floor".
Patrick Mezard <patrick@mezard.eu> [Sun, 29 Jul 2012 23:16:20 +0200] rev 17318
hgweb: fix graph view paging
- Fix off-by-one error on displayed entries count in normal mode
- Fix incorrect paging when the top revision was lower than revcount
- Fix revcount not overriding web.maxshortchanges everywhere
Patrick Mezard <patrick@mezard.eu> [Sun, 29 Jul 2012 19:44:57 +0200] rev 17317
help/config.txt: document web.maxshortchanges
Patrick Mezard <patrick@mezard.eu> [Sun, 29 Jul 2012 19:37:25 +0200] rev 17316
help/config.txt: reorder [web] options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 30 Jul 2012 03:27:07 +0900] rev 17315
histedit: make comment part of the file describing rules as translatable
"i18n.gettext()" invocation for "editcomment" itself should have
little impact for whole initialization cost of histedit, because it is
already invoked for initialization of the command table entry.
'\n\n' has to be added to the text being edited separately from
"editcomment", because leading 'line feed' characters are not exported
to "hg.pot" file correctly.
Matt Mackall <mpm@selenic.com> [Thu, 02 Aug 2012 00:52:43 -0500] rev 17314
merge with i18n
Alexander Sauta <demosito@gmail.com> [Wed, 01 Aug 2012 18:56:39 +0400] rev 17313
i18n-ru: synchronized with 85188487b9b4
Nikolaj Sjujskij <sterkrig@myopera.com> [Fri, 20 Jul 2012 12:18:31 +0400] rev 17312
i18n-ru: add missing space in summary output template
Alexander Sauta <demosito@gmail.com> [Wed, 01 Aug 2012 18:10:07 +0400] rev 17311
i18n-ru: synchronized with b616e4aacf96
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 01 Aug 2012 05:58:00 +0900] rev 17310
i18n-ja: synchronized with 3339e3df159d
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 31 Jul 2012 14:12:14 -0300] rev 17309
i18n-pt_BR: synchronized with e66fa4d587dc
With review and suggestions by Sheila Genesine.
Patrick Mezard <patrick@mezard.eu> [Wed, 01 Aug 2012 15:49:00 +0200] rev 17308
log: make opts entries optional (issue2423)
Adrian Buehlmann <adrian@cadifra.com> [Tue, 31 Jul 2012 19:47:54 +0200] rev 17307
test-clone: fix for vfat
fixes http://hgbuildbot.kublai.com/builders/vfat%20hg%20tests%20%28stable%29/builds/65
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 31 Jul 2012 15:57:50 +0200] rev 17306
obsolete: fix typos in comments introduced by 6955d69a52a4
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 31 Jul 2012 15:50:44 +0200] rev 17305
pager: drop -S option for less in example for pager configuration
Using less -S will hide possibly important information when reviewing a
changeset, e.g. something wrong/dangerous after the 80th column, because
"less" will not give an indication that following characters are hidden.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 31 Jul 2012 15:32:08 +0200] rev 17304
obsolete: properly increment currentlen when building pushkey payload
In the old code, the current length was always 0 leading to markers
payload never being split.
wujek srujek <wujek.srujek@googlemail.com> [Tue, 31 Jul 2012 00:59:38 +0200] rev 17303
hgweb: fixes invalid parents / children in comparison
Previously, the parents / children were computed relative to the cset of the
currently shown file, which was wrong and inconsistent with diff and others.
With this patch, the listed csets are those that contain changes to the
currently compared file, which don't necessarily have to be the direct parents
and children of the changeset itself.
wujek srujek <wujek.srujek@googlemail.com> [Tue, 31 Jul 2012 14:14:15 +0200] rev 17302
hgweb: fixes traceback for invalid files by removing top-level template
The top-level 'comparison' template was not really needed, and it also caused a
traceback to be shown for inexistent files (as reported by Ross Lagerwall).
Getting rid of it makes the overall templating structure simpler and causes
invalid files to be handled nicely.
Matt Mackall <mpm@selenic.com> [Mon, 30 Jul 2012 22:33:45 -0500] rev 17301
merge with i18n
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 30 Jul 2012 03:37:28 +0900] rev 17300
i18n-ja: synchronized with b087cfebc3ac
Mads Kiilerich <mads@kiilerich.com> [Tue, 31 Jul 2012 03:30:42 +0200] rev 17299
check-code: indent 4 spaces in py files
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 28 Jul 2012 13:33:06 +0200] rev 17298
pushkey: do not exchange obsole markers if feature is disabled
This apply to both push and pull both when client or server.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sat, 28 Jul 2012 13:05:25 +0200] rev 17297
obsolete: warns if markers exist in a repo where the feature is not enabled
We don't simply abort to allow the user to run other diagnostic commands.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sat, 28 Jul 2012 13:19:06 +0200] rev 17296
obsolete: introduce an `_enabled` switch to disable the feature by default
Obsolete markers wide-usage and propagation should be avoided by default until
the obsolete feature is more mature.
This changeset introduce the `_enable` variable and prevent the creation of
obsolete marker if the feature is set to `False` (the default).
More limitation comes in followup changesets.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 27 Jul 2012 18:32:56 +0200] rev 17295
pushkey: splits obsolete marker exchange into multiple keys
Obsolete markers are now exchanged in smaller pieces that fit in a http header.
This changes is done to avoid 400 bad request error when exchanging obsolete
puskey over http.
The last key pushed is always hold by the "dump0" key to ensure an easy place to
hook for people who need it.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 26 Jul 2012 16:41:42 +0200] rev 17294
obsolete: add debug output regarding obsolete marker exchange.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sat, 28 Jul 2012 12:28:35 +0200] rev 17293
pushkey: add more verbose debug output regarding pushkey
Very few data are displayed now, making it hard to debug phases and obsolete
related issues.
Patrick Mezard <patrick@mezard.eu> [Mon, 30 Jul 2012 19:26:05 +0200] rev 17292
debugobsolete: do not traceback on invalid node identifiers
Patrick Mezard <patrick@mezard.eu> [Mon, 30 Jul 2012 15:48:04 +0200] rev 17291
revset: minor doc fixes on obsolete related revsets
Ross Lagerwall <rosslagerwall@gmail.com> [Mon, 30 Jul 2012 11:33:27 +0200] rev 17290
hgweb: make paper:error consistent with template
Tests fixed by Patrick Mézard <patrick@mezard.eu>
Ross Lagerwall <rosslagerwall@gmail.com> [Mon, 30 Jul 2012 11:02:10 +0200] rev 17289
hgweb: avoid traceback when file or node parameters are missing
Previously, browsing to http://serv/diff would generate an internal
server error due to the file and node parameters being missing.
The same error also occurred for filelog, comparison and annotate.
Ross Lagerwall <rosslagerwall@gmail.com> [Mon, 30 Jul 2012 08:18:25 +0200] rev 17288
hgweb: fix "branches" links in gitweb template
Tests fixed by Patrick Mézard <patrick@mezard.eu>
Ross Lagerwall <rosslagerwall@gmail.com> [Mon, 30 Jul 2012 08:11:22 +0200] rev 17287
hgweb: fix typo in monoblue template
Ross Lagerwall <rosslagerwall@gmail.com> [Mon, 30 Jul 2012 08:06:05 +0200] rev 17286
hgweb: fix capitalization in monoblue template
Make the capitalization consistent on all pages.
Mads Kiilerich <mads@kiilerich.com> [Mon, 30 Jul 2012 03:53:38 +0200] rev 17285
histedit: add trailing newline when editing commit messages
test-histedit-edit.t failed because Solaris sed strips lines not ending with
\n.
Mads Kiilerich <mads@kiilerich.com> [Mon, 30 Jul 2012 02:38:32 +0200] rev 17284
test-histedit-outgoing.t: remove unused section
Mads Kiilerich <mads@kiilerich.com> [Mon, 30 Jul 2012 02:38:29 +0200] rev 17283
test-hook.t: Solaris /usr/bin/egrep do not support {4}
Matt Mackall <mpm@selenic.com> [Sun, 29 Jul 2012 12:29:35 -0500] rev 17282
merge with i18n
Jens Bäckman <jens.backman@gmail.com> [Sat, 28 Jul 2012 22:58:18 +0200] rev 17281
i18n-sv: continue translating mq extension
Jens Bäckman <jens.backman@gmail.com> [Sat, 28 Jul 2012 14:59:09 +0200] rev 17280
i18n-sv: translated record extension
Jens Bäckman <jens.backman@gmail.com> [Sat, 28 Jul 2012 14:57:21 +0200] rev 17279
i18n-sv: synchronized with a09cc6aeed4a
Pascal Quantin <pascal.quantin@gmail.com> [Sun, 29 Jul 2012 17:04:51 +0200] rev 17278
win32: update Inno Setup installer extensions list
Matt Mackall <mpm@selenic.com> [Sun, 29 Jul 2012 11:08:45 -0500] rev 17277
hgweb: avoid traceback if raw is used as default style
Spotted by Angel Ezquerra.
Simon Heimberg <simohe@besonet.ch> [Sat, 28 Jul 2012 22:55:01 +0200] rev 17276
largefiles: use hg.peer instead of hg.remoteui
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 29 Jul 2012 16:19:32 +0900] rev 17275
histedit: remove updating statistics line from the examples describing rules
Before this patch, updating statistics line appears at the bottom of
the examples describing rules to edit history.
But such line never appear in the file describing rules while
histedit-ing, so this patch removes that line from the examples.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 29 Jul 2012 09:03:51 +0200] rev 17274
hgignore: ignore zip files
Simon Heimberg <simohe@besonet.ch> [Sat, 28 Jul 2012 22:36:22 +0200] rev 17273
peer: delete double definition of method peer
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 28 Jul 2012 23:51:57 +0900] rev 17272
revset: fix the definition of "unstable changesets" for "unstable" predicate
unstable-ness of changesets should be determined by obsolete-ness of
not descendants but ancestors.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Jul 2012 19:08:26 -0400] rev 17271
largefiles: support revsets for outgoing --large
Previous to this, outgoing with a revset succeeded unless --large was also
specified.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Jul 2012 23:50:52 -0400] rev 17270
largefiles: fix a traceback introduced with recent peer changes
Changeset 1ac628cd7113 broke 'outgoing --large'
...
File "hgext\largefiles\lfutil.py", line 56, in findoutgoing
remote.local(), force=force)
File "mercurial\discovery.py", line 31, in findcommonincoming
if not remote.capable('getbundle'):
AttributeError: 'lfilesrepo' object has no attribute 'capable'
This restores the previous functionality, though I'm not sure if there's a
better way to do this- that changeset introduces a hunk in debugdiscovery that
does this:
if not util.safehasattr(remote, 'branches'):
# enable in-client legacy support
remote = localrepo.locallegacypeer(remote.local())
Is there a legacy support issue here too?
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Jul 2012 19:14:41 -0400] rev 17269
largefiles: support revsets for cat
Previous to this, cat only accepted revsets if the largefiles extension was
disabled.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Jul 2012 18:13:19 -0400] rev 17268
largefiles: support revsets for revert
Previous to this, revert only accepted revsets if the largefiles extension was
disabled.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 25 Jul 2012 16:40:38 +0900] rev 17267
doc: unify section level between help topics
Some help topics use "-" for the top level underlining section mark,
but "-" is used also for the top level categorization in generated
documents: "hg.1.html", for example.
So, TOC in such documents contain "sections in each topics", too.
This patch changes underlining section mark in some help topics to
unify section level in generated documents.
After this patching, levels of each section marks are:
level0
""""""
level1
======
level2
------
level3
......
level4
######
And use of section markers in each documents are:
- mercurial/help/*.txt can use level1 or more
(now these use level1 and level2)
- help for core commands can use level2 or more
(now these use no section marker)
- descriptions of extensions can use level2 or more
(now hgext/acl uses level2)
- help for commands defined in extension can use level4 or more
(now "convert" of hgext/convert uses level4)
"Level0" is used as top level categorization only in "doc/hg.1.txt"
and the intermediate file generated by "doc/gendoc.py", so end users
don't see it in "hg help" outoput and so on.
Patrick Mezard <patrick@mezard.eu> [Mon, 23 Jul 2012 19:03:32 +0200] rev 17266
addremove: mention --similarity defaults to 100 (issue3430)
Greg Ward <greg@gerg.ca> [Wed, 25 Jul 2012 22:41:26 -0400] rev 17265
revset: polish explanation of the difference between file() and filelog()
Augie Fackler <raf@durin42.com> [Thu, 26 Jul 2012 16:57:50 -0500] rev 17264
strip: move bookmarks to nearest ancestor rather than '.'
If you've got this graph:
0-1-2
\
3
and 3 is checked out, 2 is bookmarked with "broken", and you do "hg
strip 2", the bookmark will move to 3, not 1. That's always struck me
as a bug.
This change makes bookmarks move to the tipmost ancestor of
the stripped set rather than the currently-checked-out revision, which
is what I always expected should happen.
Matt Mackall <mpm@selenic.com> [Fri, 27 Jul 2012 12:33:48 -0500] rev 17263
largefiles: fix exception hack for i18n (issue3197)
Properly fixing this is quite a bit trickier.
Matt Mackall <mpm@selenic.com> [Fri, 27 Jul 2012 12:32:02 -0500] rev 17262
merge with crew
Patrick Mezard <patrick@mezard.eu> [Fri, 27 Jul 2012 17:48:49 +0200] rev 17261
webcommands: do not modify repo.tagslist()
Repeatedly refreshing a gitweb summary page served by hg serve would
show the tags list switching between two different sequences.
Brad Hall <bhall@fb.com> [Tue, 05 Jun 2012 17:00:13 -0700] rev 17260
tag: don't allow tagging the null revision (issue1915)
Also fixed the tests that were doing this and expected it to work
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 26 Jul 2012 13:58:43 +0900] rev 17259
i18n: add/relocate "i18n keyword" comments for i18n messages in revset.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 26 Jul 2012 13:58:43 +0900] rev 17258
revset: use appropriate predicate name in error messages
"extinct" and "unstable" predicates use "obsolete" implementation
internally, but own predicate name should be used in error messages of
them instead of "obsolete".
Adrian Buehlmann <adrian@cadifra.com> [Thu, 26 Jul 2012 23:08:34 +0200] rev 17257
test-histedit-fold: fix for Windows
Fixes 336121088ef1 failing with MSYS.
MSYS sh.exe mangled that path by applying its path magic, which caused the
test to fail on Windows.
Matt Mackall <mpm@selenic.com> [Thu, 26 Jul 2012 17:04:01 -0500] rev 17256
tags: visit new heads in forward order when rebuilding cache
This improves performance of building the tag cache by 4x on a repo
with ~2800 heads.
Patrick Mezard <patrick@mezard.eu> [Fri, 27 Jul 2012 13:56:19 +0200] rev 17255
identity: show trailing '+' for dirty subrepos (issue2839)
Patrick Mezard <patrick@mezard.eu> [Fri, 27 Jul 2012 10:16:20 +0200] rev 17254
discovery: fix invalid comment about extinct being ignored
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Jul 2012 16:21:43 +0200] rev 17253
obsolete: fix decoding error message arguments
Patrick Mezard <patrick@mezard.eu> [Tue, 24 Jul 2012 21:20:56 +0200] rev 17252
push: do not try to push remote obsolete if local has none
Mads Kiilerich <mads@kiilerich.com> [Thu, 26 Jul 2012 02:54:13 +0200] rev 17251
help: fix some instances of 'the the'
Michael Bacarella <mbacarella@janestreet.com> [Fri, 06 Jul 2012 18:06:52 -0400] rev 17250
pager: work around bug in python 2.4's subprocess module (issue3533)
hg v2.2.2 fixed the pager on Windows, but broke it on Python 2.4.
This patch only uses the new behavior if Python >= 2.5 is detected.
Pierre-Yves.David@ens-lyon.org [Wed, 25 Jul 2012 19:02:35 +0200] rev 17249
clone: copy obsolete markers during local clone
This change adds `obsstore` to the list of files copied by local clone,
until now changesets were copied without their obsolete markers.
Note: extinct changesets were and are still included by such clones to
enable hardlinking. There is no obvious reason to prevent their exchange
here.
Rebased by Patrick Mezard <patrick@mezard.eu>
Patrick Mezard <patrick@mezard.eu> [Wed, 25 Jul 2012 19:34:31 +0200] rev 17248
discovery: add extinct changesets to outgoing.excluded
Before this change, push would incorrectly fast-path the bundle
generation when extinct changesets are involved, because they are not
added to outgoing.excluded. The reason to do so are related to
outgoing.excluded being assumed to contain only secret changesets by
scmutil.nochangesfound(), when displaying warnings like:
changes found (ignored 9 secret changesets)
Still, outgoing.excluded seems like a good API to report the extinct
changesets instead of dedicated code and nothing in the docstring
indicates it to be bound to secret changesets. This patch adds extinct
changesets to outgoing.excluded and fixes scmutil.nochangesfound() to
filter the excluded node list.
Original version and test by Pierre-Yves.David@ens-lyon.org
Patrick Mezard <patrick@mezard.eu> [Thu, 26 Jul 2012 12:07:55 +0200] rev 17247
convert/svn: handle non-local svn destination paths (issue3142)
test-convert-svn-sink.t still pass and I tested pushing to an svn+ssh
repository
Adrian Buehlmann <adrian@cadifra.com> [Wed, 25 Jul 2012 16:50:22 +0200] rev 17246
setup: fix build_hgexe for mingw32 compiler
Fixes
python setup.py build_hgexe -i --compiler=mingw32
Matt Harbison <matt_harbison@yahoo.com> [Sun, 22 Jul 2012 23:37:53 -0400] rev 17245
largefiles: fix path handling for cp/mv (issue3516)
Previously, a copy or a move of a largefile only worked if the cwd was the root
of the repository. The first issue was that the destination path passed to
os.mkdirs() chopped the absolute path to the standin after '.hglf/', which
essentially created a path relative to the repository root. Similarly, the
second issue was that the source and dest paths for copyfile() were relative to
the repo root. This converts these three paths to absolute paths.
Some notable issues, regardless of the directory in which the cp/mv is executed:
1) The copy is not being recorded in lfdirstate, but it is in dirstate for the
standins. I'm not sure if this is by design (i.e. minimal info in lfdirstate).
2) status -C doesn't behave as expected. Using the testcase as an example:
# after mv + ci
$ hg status -C -v --rev '.^' # expected to see 'A' and ' ' lines too
R dira\dirb\largefile
$ hg status -C -v --rev '.^' foo/largefile
# no output # expected to see 'A' and ' ' lines only
$ hg status -C -v --rev '.^' foo/
# no output # expected to see 'A', ' ' and 'R' lines
$ hg status -C -v --rev '.^' ./ # expected to see 'A' and ' ' lines too
R dirb\largefile
$ hg status -C -v --rev '.^' ../.hglf/dira/foo/largefile
A ..\.hglf\dira\foo\largefile
..\.hglf\dira\dirb\largefile # no 'R' expected when new file is specified
$ hg status -C -v --rev '.^' ../.hglf # OK
A ..\.hglf\dira\foo\largefile
..\.hglf\dira\dirb\largefile
R ..\.hglf\dira\dirb\largefile
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 25 Jul 2012 16:15:28 +0900] rev 17244
revset: add explanation about difference between 'filelog()' and 'file()'
Matt Mackall <mpm@selenic.com> [Wed, 25 Jul 2012 14:49:53 -0500] rev 17243
hgweb: improve colors for comparison page
delete: red -> red
insert: green -> yellow
change: yellow -> gray
Patrick Mezard <patrick@mezard.eu> [Wed, 25 Jul 2012 16:27:26 +0200] rev 17242
histedit: fix new nodes computation with --continue (issue3534)
When running the following actions:
pick 617f94f13c0f 1 +4
drop 888f9082bf99 2 +5
fold 251d831eeec5 3 +6
if the fold fails, is fixed by the user with a new changeset, --continue
will ignore the new revision when generating the fold changelog. This
was caused by --continue detecting new changesets as descendants of the
parent not descendants of changesets in the initial list. In this case,
dropped changesets must be ignored.
Even with the computation fixed, the 'newchildren' list was always
emptied by the filtering loop and passed empty to finishfold().
Note that changesets dropped and recreated identically will still be
missed. This probably cannot be solved but is unlikely to happen.
Other things, like 'newchildren' having multiple heads, should be
checked as well.
Patrick Mezard <patrick@mezard.eu> [Wed, 25 Jul 2012 11:09:51 +0200] rev 17241
histedit: end folding message with an LF
This is convenient when running tests dumping the editor content, it
avoids the following output line to be mixed with histedit message.
Matt Mackall <mpm@selenic.com> [Tue, 24 Jul 2012 12:36:40 -0500] rev 17240
merge with i18n
Jens Bäckman <jens.backman@gmail.com> [Mon, 23 Jul 2012 20:38:33 +0200] rev 17239
i18n-sv: synchronized with d1b49b02bc16
Bryan O'Sullivan <bryano@fb.com> [Mon, 23 Jul 2012 15:40:19 -0700] rev 17238
merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 23 Jul 2012 15:38:43 -0700] rev 17237
util: delegate seek and tell methods of atomictempfile
Martin Geisler <mg@aragost.com> [Mon, 23 Jul 2012 15:55:26 -0600] rev 17236
encoding: add fast-path for ASCII uppercase.
This copies the performance hack from encoding.lower (c481761033bd).
The case-folding logic that kicks in on case-insensitive filesystems
hits encoding.upper hard: with a repository with 75k files, the
timings went from
hg perfstatus
! wall 3.156000 comb 3.156250 user 1.625000 sys 1.531250 (best of 3)
to
hg perfstatus
! wall 2.390000 comb 2.390625 user 1.078125 sys 1.312500 (best of 5)
This is a 24% decrease. For comparison, Mercurial 2.0 gives:
hg perfstatus
! wall 2.172000 comb 2.171875 user 0.984375 sys 1.187500 (best of 5)
so we're only 10% slower than before we added the extra case-folding
logic.
The same decrease is seen when executing 'hg status' as normal, where
we go from:
hg status --time
time: real 4.322 secs (user 2.219+0.000 sys 2.094+0.000)
to
hg status --time
time: real 3.307 secs (user 1.750+0.000 sys 1.547+0.000)
Martin Geisler <mg@aragost.com> [Mon, 23 Jul 2012 15:55:22 -0600] rev 17235
encoding: use s.decode to trigger UnicodeDecodeError
When calling encode on a str, the string is first decoded using the
default encoding and then encoded. So
s.encode('ascii') == s.decode().encode('ascii')
We don't care about the encode step here -- we're just after the
UnicodeDecodeError raised by decode if it finds a non-ASCII character.
This way is also marginally faster since it saves the construction of
the extra str object.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 22 Jul 2012 13:16:45 +0200] rev 17234
test-largefiles: fix test failing on vfat file systems
The usercache hardlinks files for filesystems that support hardlinks. So when
this test is run on a filesystem that supports hardlinking, we have a link
in r7 and in the usercache, pointing to the same file contents (4cdac4d8...).
vfat does not support hardlinks, the file in the cache and in the store of
r7 are thus independent.
For the test to pass on vfat, we need to corrupt *both* the largefile in the
usercache and in the store of r7. Corrupting only one of them is not sufficient.
Fixes:
--- /home/buildslave/mercurial/vfat_hg_tests__stable_/build/tests/test-largefiles.t
+++ /home/buildslave/mercurial/vfat_hg_tests__stable_/build/tests/test-largefiles.t.err
@@ -997,9 +997,11 @@
$ hg push -R r7 http://localhost:$HGPORT1
pushing to http://localhost:$HGPORT1/
searching for changes
- remote: largefiles: failed to put 4cdac4d8b084d0b599525cf732437fb337d422a8 into store: largefile contents do not match hash
- abort: remotestore: could not put $TESTTMP/r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 to remote store http://localhost:$HGPORT1/ (glob)
- [255]
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 2 changesets with 2 changes to 2 files
$ rm -rf empty
Push a largefiles repository to a served empty repository
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Jul 2012 22:10:52 -0400] rev 17233
largefiles: mark as a first party extension
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 23:35:13 -0400] rev 17232
largefiles: ensure addlargefiles() doesn't add a standin as a largefile
An easy way to force this (and cause a traceback) prior to the fix for 3507 was
$ touch large
$ hg add --large large
$ hg ci -m "add"
$ hg remove large
$ touch large
$ hg addremove --config largefiles.patterns=**large
This patch also detected (and corrected) a previous test where a standin got
added as a largefile (without a traceback).
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 11:12:05 -0400] rev 17231
largefiles: fix a traceback when addremove follows a remove (issue3507)
The problem only occurred if a file was removed with 'hg rm' (as opposed to the
OS utilities), and then addremove was run before a commit. Both normal and
large files were affected.
Ensuring that the file exists prior to an lstat() for size seems like the Right
Thing. But oddly enough, the missing file that was causing lstat() to blow up
was a standin when a largefile was removed, which seems fishy, because a standin
should never be added as a largefile. I was then able to get a standin added as
a largefile (whose name is 'large') with
hg addremove --config largefiles.patterns=**large
which also causes a backtrace. That will be fixed next.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 10:00:15 -0400] rev 17230
largefiles: defer lfdirstate.drop() until after commit (issue3364)
The example in comment #9 of the bug writeup must be run exactly- it was the
commit after the rm and prior to the addremove that screwed things up, because
that commit noticed that the largefile was missing, called drop(), and then the
original commit function did nothing (due to the file in the '!' state). The
addremove command properly put it into the 'R' state, but it remained stuck in
that state (because commit insisted 'nothing changed'). Without the commit
prior to addremove, the problem didn't occur.
Maybe this is an indication that lfdirstate needs to take a few more hints from
the regular dirstate, regardless of what _it_ thinks the state is- similar
inconsistency is probably still possible with this patch if the original commit
succeeds but the lfdirstate write fails.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Jul 2012 06:30:59 -0400] rev 17229
largefiles: fix addremove with -R option
If a file was missing, the missing list contained a path relative to the repo.
When building the matcher from that list, the file name ended up concatenated to
cwd, causing the command to abort with '<file> not under root'. This rebuilds
the missing list with paths relative to cwd.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 19 Jul 2012 21:20:56 +0200] rev 17228
dispatch: fix traceback when extension was tested with newer versions only
The "worst" extension still is the one tested with the lowest tested version
below the current version of Mercurial, but if an extension with was only
tested with newer versions, it is considered a candidate for a bad extension,
too. In this case extensions which have been tested with higher versions of
Mercurial are considered better. This allows finding the oldest extension if
ct can't be calculated correctly and therefore defaults to an empty tuple, and
it involves less changes to the comparison logic during the current code
freeze.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 19 Jul 2012 16:50:52 +0200] rev 17227
test-extension.t: use fixed version string instead of current tag
Currently tests break with the current tag being 2.3-rc and tags set by the
user could affect this test, too.
Matt Mackall <mpm@selenic.com> [Wed, 18 Jul 2012 19:09:06 -0500] rev 17226
Added tag 2.3-rc for changeset a06e2681dd17
Matt Mackall <mpm@selenic.com> [Wed, 18 Jul 2012 19:08:25 -0500] rev 17225
merge default into stable for 2.3 code freeze
Matt Mackall <mpm@selenic.com> [Wed, 18 Jul 2012 19:08:11 -0500] rev 17224
merge with crew
Martin Geisler <martin@geisler.net> [Thu, 19 Jul 2012 00:54:33 +0200] rev 17223
merge with stable
Martin Geisler <martin@geisler.net> [Thu, 19 Jul 2012 00:53:27 +0200] rev 17222
windows: removed duplicate termwidth definition
Changeset dbf91976f900 caused this when the "from win32 import *" line
was replaced with explicit import statements: the wildcard import was
at the bottom of the file and so windows.termwidth was overwritten by
win32.termwidth as indented, but the new explicit import statements
were at the top and so win32.termwidth got lost.
With the switch to ctypes, win32 can always be imported and so the
fallback termwidth in windows is no longer needed.
Pierre-Yves.David@ens-lyon.org [Fri, 13 Jul 2012 13:21:20 +0200] rev 17221
httprepo: ensure Content-Type header exists when pushing data
Otherwise the wireprotocol just hangs while trying to send data. (And
nothing is received at the other side)
Pierre-Yves.David@ens-lyon.org [Fri, 13 Jul 2012 22:15:11 +0200] rev 17220
obsolete: obsstore.add now takes a list of markers.
This allow efficient IO and it greatly simplify the merging of markers.
Pierre-Yves.David@ens-lyon.org [Thu, 12 Jul 2012 19:58:07 +0200] rev 17219
obsolete: refactor writemarkers to only encode them
The function is now able to write the version header as necessary. The function
now yield bytes to be written to a stream.
This should ease later use of this function for wireprotocol based exchanged.
Prepare the public use of the writemarker by wireprotocol function.