Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 16 Jun 2011 01:57:59 +0200] rev 14644
hidden: Add ``hidden`` method for context
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 16 Jun 2011 01:57:53 +0200] rev 14643
hidden: Add a hiddenrevs attributes to changelog.
This attributes hold the set of all revisions that should be ommited by command
and tools displaying changesets.
This set is given as a hit. Command and tools are responsible to check it in
order to filter they outpur.
Code adding revisions to the set are responsible to the consistency of it's
data.
Matt Mackall <mpm@selenic.com> [Thu, 16 Jun 2011 13:24:44 -0500] rev 14642
config: handle comment lines in continuations (issue2854)
Matt Mackall <mpm@selenic.com> [Thu, 16 Jun 2011 13:24:42 -0500] rev 14641
http: report unexpected unparsable push responses (issue2777)
Idan Kamara <idankk86@gmail.com> [Tue, 07 Jun 2011 13:39:09 +0300] rev 14640
dispatch: write shell alias output to ui out descriptor
Idan Kamara <idankk86@gmail.com> [Wed, 08 Jun 2011 14:54:52 +0300] rev 14639
commands: use ui descriptors when reading/writing from stdin/out
Idan Kamara <idankk86@gmail.com> [Wed, 15 Jun 2011 23:50:33 +0300] rev 14638
cmdutil: return a dummy, closable file object if it cannot be duped
If the ui I/O descriptors aren't real descriptors, they cannot be duped.
Instead, we return a wrapper object that behaves the same, and
can be closed (by overriding close and doing nothing).
Idan Kamara <idankk86@gmail.com> [Wed, 08 Jun 2011 14:54:52 +0300] rev 14637
cmdutil: use ui descriptors in makefileobj
Idan Kamara <idankk86@gmail.com> [Wed, 08 Jun 2011 14:54:52 +0300] rev 14636
mq: use ui.fin when importing patch from '-'
Idan Kamara <idankk86@gmail.com> [Wed, 08 Jun 2011 14:54:52 +0300] rev 14635
cmdutil, logmessage: use ui.fin when reading from '-'
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 15 Jun 2011 17:04:06 -0300] rev 14634
dagutil: fix missing import of i18n._
Satish Balay <balay@fastmail.fm> [Thu, 16 Jun 2011 19:34:42 +0200] rev 14633
hgmanpage: adapt to Docutils 0.8 API change
Martin Geisler <mg@aragost.com> [Thu, 16 Jun 2011 08:49:26 +0200] rev 14632
manifest: use "\0" instead of "\000"
Though both give the same result (a NUL byte), I found that I tend to
read "\000" as "\0" + "00", which is something completely different.
I did not change the occurance of "\000" in archival.py since there
are other octal constants in that file.
Martin Geisler <mg@aragost.com> [Wed, 15 Jun 2011 17:25:58 +0200] rev 14631
commands: add pointer to bookmarks command in branch help
Martin Geisler <mg@aragost.com> [Wed, 15 Jun 2011 17:10:26 +0200] rev 14630
glossary: add entry for "Bookmark"
Martin Geisler <mg@aragost.com> [Wed, 15 Jun 2011 17:10:16 +0200] rev 14629
glossary: add entry for "Tag"
Matt Mackall <mpm@selenic.com> [Tue, 14 Jun 2011 20:43:04 -0500] rev 14628
merge with i18n
Alexander Sauta <demosito@gmail.com> [Tue, 14 Jun 2011 00:31:56 +0400] rev 14627
i18n-ru: translated all standard commands and config-environment additional help topics
Alexander Sauta <demosito@gmail.com> [Fri, 10 Jun 2011 01:39:22 +0400] rev 14626
i18n-ru: translated push-rename
Alexander Sauta <demosito@gmail.com> [Thu, 09 Jun 2011 20:37:32 +0400] rev 14625
i18n-ru: translated parents-pull
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 14 Jun 2011 22:58:00 +0200] rev 14624
setdiscovery: batch heads and known(ownheads)
This means that we now discover both subset conditions (local<remote and
remote<local) in a single roundtrip without ever constructing an actual
sample (which takes a bit of client CPU).
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 14 Jun 2011 22:56:20 +0200] rev 14623
wireproto: make a number of commands batchable
Makes lookup, heads, known, branchmap, pushkey, and listkeys batchable.
It could, for instance, be interesting to use this to batch calls to
lookup when a pull or clone has multiple --rev arguments. The next patch
is going to batch heads and known to slightly tune discovery.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 14 Jun 2011 22:52:58 +0200] rev 14622
wireproto: add batching support to wirerepository
Adds the plumbing and wire call for batched execution, but does not
batch-enable any methods yet.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 14 Jun 2011 22:51:26 +0200] rev 14621
wireproto: add basic command batching infrastructure
Note that localbatch will not be used until we actually have a localpeer to
use it with.
Yuya Nishihara <yuya@tcha.org> [Wed, 15 Jun 2011 01:50:49 +0900] rev 14620
mq: make qrefresh/qfold keep wlock until saving patch status
Because q.refresh() changes nodeid, .hg/patches/status gets invalid until
q.savedirty(). This patch changes mq not to unlock repository of incomplete
state.
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 14 Jun 2011 20:08:35 -0300] rev 14619
bugzilla: fix typo in documentation
Idan Kamara <idankk86@gmail.com> [Tue, 14 Jun 2011 20:25:38 +0300] rev 14618
dispatch: fix for-loop variable name
Ingo Bressler <dev@ingobressler.net> [Tue, 14 Jun 2011 13:29:25 +0200] rev 14617
notify: send changesets on 'outgoing' hook, updated doc
Stephen Thorne <stephen@thorne.id.au> [Tue, 14 Jun 2011 13:31:32 +1000] rev 14616
sslutil: Restore missing imports of socket and httplib to sslutil
Two imports were omitted in the restructure of the code creating
sslutil.py, socket and httplib are required when the 'ssl' module
cannot be imported, restoring these imports allows mercurial to run
on python2.4+2.5.
Idan Kamara <idankk86@gmail.com> [Wed, 08 Jun 2011 14:54:47 +0300] rev 14615
dispatch: assign I/O descriptors from the request to the ui
Idan Kamara <idankk86@gmail.com> [Wed, 08 Jun 2011 01:39:20 +0300] rev 14614
ui: use I/O descriptors internally
and as a result:
- fix webproto to redirect the ui descriptors instead of sys.stdout/err
- fix sshserver to use the ui descriptors
Idan Kamara <idankk86@gmail.com> [Tue, 07 Jun 2011 13:39:09 +0300] rev 14613
dispatch: add I/O descriptors to the request
Idan Kamara <idankk86@gmail.com> [Tue, 07 Jun 2011 13:39:09 +0300] rev 14612
ui: add I/O descriptors
Patrick Mezard <pmezard@gmail.com> [Tue, 14 Jun 2011 23:26:35 +0200] rev 14611
import: add --bypass option
This feature is more a way to test patching without a working directory than
something people asked about. Adding a --rev option to specify the parent patch
revision would make it a little more useful.
What this change introduces is patch.repobackend class which let patches be
applied against repository revisions. The caller must supply a filestore object
to receive patched content, which can be turned into a memctx with
patch.makememctx() helper.
Patrick Mezard <pmezard@gmail.com> [Tue, 14 Jun 2011 23:24:40 +0200] rev 14610
import: separate parents selection from working dir update
This will be useful when patching without updating the dirstate
Patrick Mezard <pmezard@gmail.com> [Tue, 14 Jun 2011 23:24:34 +0200] rev 14609
patch: extend filtestore to store an optional copy source
This will help wrapping filestores in memctx.
Martin Geisler <mg@aragost.com> [Tue, 14 Jun 2011 16:38:34 +0200] rev 14608
paper/coal: use fixed width for diffstat +/- link
The plus and minus characters are normally not the same width in a
non-monospace font, and this made the line length change when the
diffstat display was toggled.
The square brackets are not rendered in a monospace font to ensure
that they align with the parenthesis on the same line.
Martin Geisler <mg@aragost.com> [Tue, 14 Jun 2011 16:33:46 +0200] rev 14607
hg: rename opts argument to peeropts in clone
This should make it clearer that the options are used with remoteui
only and are not used otherwise in hg.clone.
Matt Mackall <mpm@selenic.com> [Mon, 13 Jun 2011 16:25:18 -0500] rev 14606
hg: move peerschemes back to schemes
This will avoid breaking things with extensions until peers are fully
separated from repos.
Matt Mackall <mpm@selenic.com> [Mon, 13 Jun 2011 14:53:23 -0500] rev 14605
hg: rearrange peer scheme lookup
There is now only peer scheme lookup. Repository lookup goes through
peer scheme lookup. When peer and repo types are finally separated,
repo lookup will use peer.local() to get a repository object.
The underbar is dropped so that extensions can patch the table.
Idan Kamara <idankk86@gmail.com> [Mon, 13 Jun 2011 14:56:00 +0300] rev 14604
forget, remove: don't note on nonexistent file twice
before:
$ hg forget foo
foo: No such file or directory
not removing foo: file is already untracked
after:
$ hg forget foo
foo: No such file or directory
Matt Mackall <mpm@selenic.com> [Mon, 13 Jun 2011 12:51:38 -0500] rev 14603
localrepo: local() returns self
Temporary measure for introducing peers
Matt Mackall <mpm@selenic.com> [Mon, 13 Jun 2011 12:51:37 -0500] rev 14602
tests: avoid instability in test-convert-cvs-synthetic
Idan Kamara <idankk86@gmail.com> [Mon, 13 Jun 2011 00:19:26 +0300] rev 14601
dispatch: propagate ui command options to the local ui (issue2523)
so the ui object passed to pre/post python hooks has the verbose flag
(and the rest) set correctly
Idan Kamara <idankk86@gmail.com> [Sun, 12 Jun 2011 23:30:39 +0300] rev 14600
mq: catch correct exception when calling changelog.rev()
Idan Kamara <idankk86@gmail.com> [Sun, 12 Jun 2011 17:26:58 +0300] rev 14599
rebase: preserve mq series order after rebasing (issue2849)
Idan Kamara <idankk86@gmail.com> [Sun, 12 Jun 2011 17:26:20 +0300] rev 14598
run-tests: verbose log ignored test
Ingo Proetel <proetel@aicas.de> [Fri, 10 Jun 2011 10:58:10 +0200] rev 14597
record: add white space diff options
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:53:58 +0200] rev 14596
mq: rename abort_if_wdir_patched to abortifwdirpatched
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:48:47 +0200] rev 14595
mq: rename partial_name to partialname
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:47:21 +0200] rev 14594
mq: rename write_list to writelist
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:45:48 +0200] rev 14593
mq: rename series_dirty to seriesdirty
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:44:34 +0200] rev 14592
mq: rename applied_dirty to applieddirty
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:43:03 +0200] rev 14591
mq: rename guards_dirty to guardsdirty
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:41:58 +0200] rev 14590
mq: rename active_guards to activeguards
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:40:35 +0200] rev 14589
mq: rename guards_path to guardspath
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:39:14 +0200] rev 14588
mq: rename status_path to statuspath
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 13:38:04 +0200] rev 14587
mq: rename series_path to seriespath
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:11:49 +0200] rev 14586
mq: rename series_end to seriesend
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:09:29 +0200] rev 14585
mq: rename full_series_end to fullseriesend
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:07:46 +0200] rev 14584
mq: rename check_reserved_name to checkreservedname
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:06:32 +0200] rev 14583
mq: rename check_localchanges to checklocalchanges
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:05:20 +0200] rev 14582
mq: rename check_substate to checksubstate
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:03:38 +0200] rev 14581
mq: rename check_toppatch to checktoppatch
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:02:14 +0200] rev 14580
mq: rename save_dirty to savedirty
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 12:00:56 +0200] rev 14579
mq: rename explain_pushable to explainpushable
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 11:59:35 +0200] rev 14578
mq: rename set_active to setactive
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 11:58:16 +0200] rev 14577
mq: rename set_guards to setguards
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 11:57:21 +0200] rev 14576
mq: rename check_guard to checkguard
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 11:55:46 +0200] rev 14575
mq: rename parse_series to parseseries
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 11:54:25 +0200] rev 14574
mq: rename find_series to findseries
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 11:40:27 +0200] rev 14573
mq: rename series_guards to seriesguards
Adrian Buehlmann <adrian@cadifra.com> [Mon, 13 Jun 2011 11:06:11 +0200] rev 14572
mq: rename full_series to fullseries
Steven Brown <StevenGBrown@gmail.com> [Sat, 11 Jun 2011 21:24:50 +0800] rev 14571
paper, coal: display diffstat on the changeset page
Displayed in a row of the changeset summary table, underneath the list of
files. When the page is loaded, only the diff summary is displayed. The full
diffstat is only displayed when the [+] link is selected.
Steven Brown <StevenGBrown@gmail.com> [Sat, 11 Jun 2011 21:11:43 +0800] rev 14570
web: provide diff summary to the changeset page
This is the same message displayed at the end of the "diff --stat" command.
For example, "9 files changed, 1651 insertions(+), 2 deletions(-)".
The webutil.diffstatgen function allows the diffstat data to be lazily
calculated only once and then re-used.
Matt Mackall <mpm@selenic.com> [Sat, 11 Jun 2011 14:14:53 -0500] rev 14569
tests: fix up date ambiguity in cvs test
Matt Mackall <mpm@selenic.com> [Sat, 11 Jun 2011 14:14:52 -0500] rev 14568
hg: split peer and repo lookup tables
Patrick Mezard <pmezard@gmail.com> [Sat, 11 Jun 2011 14:40:25 +0200] rev 14567
tests: rename test-git-import.t into test-import-git.t
This is consistent with other test-import* tests.
Patrick Mezard <pmezard@gmail.com> [Sat, 11 Jun 2011 14:17:25 +0200] rev 14566
patch: generalize the use of patchmeta in applydiff()
- Add patchmeta.copy() and emit copies from iterhunks. Modifying patchmeta
instances in applydiff() makes things simpler.
- Rename selectfile() into makepatchmeta(). It is responsible for creating
patchmeta for regular patches.
- Pass patchmeta objects to patchfile() directly
patchmeta instances were associated with git patches, for regular patches we
had to pass additional variables to tell the patch intent to patchfile().
Instead, we generate patchmeta for regular patches and pass them. This will
also help with patch filtering by matcher objects.
Patrick Mezard <pmezard@gmail.com> [Sat, 11 Jun 2011 14:14:13 +0200] rev 14565
patch: stop updating changed files set in applydiff()
This information is more correctly returned by backends.
The extra updated file removed from test-mq-merge.t output came from changes
from git patches being counted before being really applied in some cases.
Patrick Mezard <pmezard@gmail.com> [Sat, 11 Jun 2011 14:14:11 +0200] rev 14564
patch: turn patch() touched files dict into a set
Steven Brown <StevenGBrown@gmail.com> [Thu, 09 Jun 2011 01:19:39 +0800] rev 14563
paper, coal: define the diffstat templates
The templates output the filename, the total number of changes to the file
and a bar graph of the adds and removes. The filename is a link into the diff
output.
The diffstat is not yet displayed, but it can be manually added to the
changeset page template.
Steven Brown <StevenGBrown@gmail.com> [Thu, 09 Jun 2011 01:15:49 +0800] rev 14562
web: provide the file number to the diffstat templates
This allows the diffstat templates to link into the diff output. For example,
the URLs of the first three files within the diff are #l1.1, #l2.1, #l3.1.
Steven Brown <StevenGBrown@gmail.com> [Thu, 09 Jun 2011 01:14:22 +0800] rev 14561
web: include all files in the diffstat
The webutil.diffstat function now returns a diffstat template for each file
in the diff. It previously returned a template for each file returned by
ctx.files() which did not work well for merge changesets.
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 10 Jun 2011 20:38:02 +0200] rev 14560
hgignore: ignore MANIFEST.in (generated since 2ce7dfe17bc5)
LUO Zheng <xmuluo@gmail.com> [Wed, 08 Jun 2011 21:25:18 +0800] rev 14559
bookmarks: recognize the current bookmark when the local encoding isn't UTF-8
The current bookmark is stored in bookmark.current, supposingly in UTF-8.
But the call to encoding.fromlocal() is missing, therefore Hg is not able
to recognize the current bookmark in the case that bookmark uses
characters of which the bit stream is different between local encoding
and UTF-8.
For example, the Chinese version of Windows cmd uses gbk(cp936), not UTF-8.
Therefore I won't be able to make a Chinese bookmark current.
By wrapping mark in a encoding.fromlocal() call, the problem is solved.
Stephen Thorne <stephen@thorne.id.au> [Thu, 09 Jun 2011 10:15:24 +1000] rev 14558
distutils: Create MANIFEST.in instead of MANIFEST in Makefile
When running 'python setup.py sdist' many files were omitted from the resulting
tarball that are required for a complete build, including the .h file for the
inotify extension due to a python2.7+ distutils bug. This would cause 'make dist'
to fail to build a correct dist on python2.7
By building a MANIFEST.in that is the same as the old MANIFEST with 'include'
at the start of each line will cause a correct MANIFEST to be built and used
by distutils.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 09 Jun 2011 18:39:14 +0200] rev 14557
revert: is reverting file states, not just file contents
e.g. x bit is reverted as well
Also makes this paragraph more consistent with the preceding one,
which already uses the term "state" (not "content").
Matt Mackall <mpm@selenic.com> [Fri, 10 Jun 2011 11:43:38 -0500] rev 14556
hg: change various repository() users to use peer() where appropriate
This gets all the easy cases (peers that aren't also used as repositories).
Matt Mackall <mpm@selenic.com> [Fri, 10 Jun 2011 11:43:38 -0500] rev 14555
hg: have peer() call _lookup directly
Note that this means that peers no longer call the extension
repository setup hooks.
Matt Mackall <mpm@selenic.com> [Fri, 10 Jun 2011 11:43:38 -0500] rev 14554
hg: add peer method
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Wed, 08 Jun 2011 18:24:33 +0200] rev 14553
hg: add opts argument to clone for internal remoteui
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 06 Jun 2011 21:18:35 +0200] rev 14552
hg: use capable instead of capabilities
Matt Mackall <mpm@selenic.com> [Wed, 08 Jun 2011 13:44:41 -0500] rev 14551
fileset: basic pattern and boolean support
debugfileset can now generate file lists for things like:
"* and not hg*"
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 10 Jun 2011 16:50:45 +0200] rev 14550
tests: fix updated monotone version requirement
0969d91fad5c only updated the comment, not the actual check.
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 17:02:54 -0500] rev 14549
check-code: catch misspellings of descendant
This word is fairly common in Mercurial, and easy to misspell.
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 16:02:51 -0500] rev 14548
revert: drop obvious paragraph about filenames
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 16:01:38 -0500] rev 14547
revert: actually add pointer to backout
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 14:54:17 -0500] rev 14546
revert: replace mention of 'roll back' with pointer to 'backout'
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 14:51:18 -0500] rev 14545
revert: simplify description of effect of -r
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 14:49:04 -0500] rev 14544
revert: rearrange the date help
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 14:47:54 -0500] rev 14543
revert: remove some redundancy in basic description
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 14:19:05 -0500] rev 14542
revert: drop requirement to use -r to revert with two parents
This reduces documentation confusion between the need to:
a) hg revert -a -r . (drop all changes from a merge)
b) hg up -C . (drop the second parent entirely)
Currently revert is one of two commands (the other being tag) that
still complains about uncommitted merges, dating from its former use
of a generic defaultrev function that aborted.
Matt Mackall <mpm@selenic.com> [Tue, 07 Jun 2011 14:18:39 -0500] rev 14541
revert: simplify usage note
This points people looking for other commands to the right place with
a minimum of verbiage.
Matt Mackall <mpm@selenic.com> [Mon, 06 Jun 2011 17:38:32 -0500] rev 14540
revert: rewrite help summary
New users have a tendency to mistake 'revert' as the command to use to
check out old revisions. They also occasionally mistake revert for a
generalized undo (compare rollback).
This version intentionally aims to avoid mentioning 'earlier' and thus
intentionally no longer alludes to the (secondary) -r behavior (which
in fact is not actually limited to 'earlier').
Instead, we mention checkout state, to convey that we can
restore things to the way they were when checked out.
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Jun 2011 20:19:30 +0900] rev 14539
extensions: make disabled()/disabledext() load prebuilt index if available
__index__ contains a dict of {name: desc} of all extensions.
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Jun 2011 20:11:10 +0900] rev 14538
setup: add command to generate index of extensions
It generates prebuilt index of all extensions, which will be used by
frozen exe when running 'hg help extensions'.
Now py2exe invokes this command automatically.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 06 Jun 2011 21:02:48 +0200] rev 14537
sshrepo: fix addchangegroup's signature
Make it mirror the usage found in localrepo.push. This should only
affect pushes to pre-unbundle ssh servers.
Matt Mackall <mpm@selenic.com> [Mon, 06 Jun 2011 15:17:40 -0500] rev 14536
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)
We shouldn't try to process subrepos if .hgsub isn't present and we
should remove .hgsubstate if .hgsub is marked for removal.
Patrick Mezard <pmezard@gmail.com> [Sun, 05 Jun 2011 22:26:01 +0200] rev 14535
patch: dot not ignore hunk of files marked as 'deleted'
git 'deleted' flag was processed unconditionnally and the file removed even if
the related hunk was not matching.
Patrick Mezard <pmezard@gmail.com> [Sun, 05 Jun 2011 22:24:19 +0200] rev 14534
patch: fix patchmeta/hunk synchronization in iterhunks()
Synchronizing on bfile does not work on file removal where bfile is /dev/null.
We match items on afile or bfile instead. The incorrect code makes iterhunks()
to emit patchmeta and hunks separately in some cases. This is currently hidden
by applydiff() being too tolerant when processing patchmeta, and will be fixed
later.
Patrick Mezard <pmezard@gmail.com> [Sun, 05 Jun 2011 22:24:11 +0200] rev 14533
patch: remove unnecessary exists() call in selectfile()
Patrick Mezard <pmezard@gmail.com> [Sun, 05 Jun 2011 22:24:02 +0200] rev 14532
import: deprecate --base
This option was a convenient hack introduced in Mercurial early days which
unfortunately survived until now.
Patrick Mezard <pmezard@gmail.com> [Sun, 05 Jun 2011 13:27:06 +0200] rev 14531
patch: remove redundant islink() call
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Jun 2011 20:01:01 +0900] rev 14530
extensions: update doc of enabled() and disabled() according to d5b525697ddb
Patrick Mezard <pmezard@gmail.com> [Sat, 04 Jun 2011 15:56:48 +0200] rev 14529
localrepo: add savecommitmessage() to write last-message.txt
Patrick Mezard <pmezard@gmail.com> [Sat, 04 Jun 2011 15:20:49 +0200] rev 14528
memctx: simplify constructor
Matt Mackall <mpm@selenic.com> [Fri, 03 Jun 2011 15:08:08 -0500] rev 14527
scmutil: improve path calculation for install-relative RC files (issue2841)
This code was ugly and might do the wrong thing with symlinks.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 03 Jun 2011 13:10:22 +0200] rev 14526
prepush: show details about new remote heads with --verbose
previously, this info was only shown with --debug
Note that the new remote heads are only shown if the command aborts,
that is, they are *not* shown if --force was specified.
See also change 91cb08a9e7fb.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 03 Jun 2011 12:16:17 +0200] rev 14525
prepush: print short hash of first new head in abort message
and don't mention the branch if it's the default branch.
OLD:
$ hg push ../a
pushing to ../a
searching for changes
abort: push creates new remote heads on branch 'default'!
(you should pull and merge or use push -f to force)
NEW:
$ hg push ../a
pushing to ../a
searching for changes
abort: push creates new remote head 1e108cc5548c!
(you should pull and merge or use push -f to force)
This helps to identify which local head is causing troubles.
See also change 91cb08a9e7fb.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 03 Jun 2011 11:26:43 +0200] rev 14524
prepush: eliminate 'if branch'
branch is always set anyway
No change in program behavior.
Sune Foldager <cryo@cyanite.org> [Fri, 03 Jun 2011 20:32:54 +0200] rev 14523
revlog: bail out earlier in group when we have no chunks
Sune Foldager <cryo@cyanite.org> [Fri, 03 Jun 2011 20:23:32 +0200] rev 14522
localrepo: simplify file bundling code and fix progress bug
Progress for files was off by one, and the code was rather hackish.
Sune Foldager <cryo@cyanite.org> [Fri, 03 Jun 2011 20:15:06 +0200] rev 14521
localrepo: use list comprehension instead of generators
The lists in question are iterated and kept in memory further down the code
path anyway, and this simplifies things.
Sune Foldager <cryo@cyanite.org> [Fri, 03 Jun 2011 20:12:37 +0200] rev 14520
localrepo: add total to changeset progress in bundle/push
Martin Geisler <mg@aragost.com> [Fri, 03 Jun 2011 20:08:26 +0200] rev 14519
statichttprepo: use in-place difference for shorter line
Adrian Buehlmann <adrian@cadifra.com> [Thu, 02 Jun 2011 00:33:33 +0200] rev 14518
workingctx: eliminate remove function
Inlining it into it's last remaining call place in cmdutil.copy.
Note that cmdutil.copy is called with the wlock already held, so no additional
locking is needed to call util.unlinkpath.
We do not need to wrap the util.unlinkpath call into a try block, because
at that point we already know whether abssrc exists or not -- thanks to the
preceding util.copyfile call. Adding a new local 'srcexists' in cmdutil.copy
for that purpose.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 02 Jun 2011 19:43:17 +0200] rev 14517
test-copy2: add case for moving a missing file
Idan Kamara <idankk86@gmail.com> [Thu, 02 Jun 2011 00:43:34 +0300] rev 14516
color: check if ui is already a subclass of colorui before wrapping it
since it's possible to reuse the ui object (see 80c599eee3f3)
between dispatch calls, the ui might have been wrapped already.
we could probably move this test up a bit but leaving it here
allows updates to take effect by extstyles() and configstyles().
Idan Kamara <idankk86@gmail.com> [Thu, 02 Jun 2011 00:43:34 +0300] rev 14515
util: add helper function isatty(fd) to check for tty-ness
Steven Brown <StevenGBrown@gmail.com> [Thu, 02 Jun 2011 18:52:31 +0800] rev 14514
web: prevent TypeError thrown when using the diffstat templates
Remove the lambda used to wrap webutil.diffstat because:
- functions passed to the templater must accept keyword arguments
- webutil.diffstat is a generator, so already calculates the diffstat lazily
This reverts the changes made to 1d3e2349304a after it was submitted to the
mailing list but before it was queued.
Matt Mackall <mpm@selenic.com> [Thu, 02 Jun 2011 11:27:40 -0500] rev 14513
fileset: fix long line
Matt Mackall <mpm@selenic.com> [Thu, 02 Jun 2011 11:17:02 -0500] rev 14512
COPYING: refresh with current address from fsf.org
Matt Mackall <mpm@selenic.com> [Wed, 01 Jun 2011 19:12:18 -0500] rev 14511
filesets: introduce basic fileset expression parser
Idan Kamara <idankk86@gmail.com> [Thu, 02 Jun 2011 00:43:34 +0300] rev 14510
dispatch: add repo to the request
allows callers of dispatch.dispatch to pass in
an initialized repo object to be used.
-R/--repository overrides the request repo.
Matt Mackall <mpm@selenic.com> [Wed, 01 Jun 2011 16:42:50 -0500] rev 14509
merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 01 Jun 2011 16:32:48 -0500] rev 14508
Added signature for changeset 733af5d9f6b2
Matt Mackall <mpm@selenic.com> [Wed, 01 Jun 2011 16:32:44 -0500] rev 14507
Added tag 1.8.4 for changeset 733af5d9f6b2
Augie Fackler <durin42@gmail.com> [Tue, 31 May 2011 19:49:17 -0500] rev 14506
subrepo: make stdin for svn a pipe for non-interactive use (issue2759)
This certainly can't hurt, so go ahead and do it, potentially along
with --non-interactive if that flag is safe for the given subcommand.
Regis Desgroppes <regis.desgroppes@nokia.com> [Tue, 31 May 2011 16:22:04 -0500] rev 14505
subrepo: svn abort now depends on exit code (issue2833)
Matt Mackall <mpm@selenic.com> [Tue, 24 May 2011 17:16:31 -0500] rev 14504
httprepo: send URL redirection notices to stderr (issue2828)
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Mar 2011 14:47:30 +0100] rev 14503
httprepo: proper handling of invalid responses without content-type (issue2019)
This can currently be tested on http://sf.net/
Patrick Mezard <pmezard@gmail.com> [Fri, 29 Apr 2011 14:56:23 +0200] rev 14502
strip: make it clear that --force discards changes (issue310)
Matt Mackall <mpm@selenic.com> [Tue, 26 Apr 2011 10:51:19 -0500] rev 14501
tags: catch more corruption during cache parsing (issue2779)
Idan Kamara <idankk86@gmail.com> [Mon, 11 Apr 2011 21:44:22 +0300] rev 14500
localrepo: don't add deleted files to list of modified/added files (issue2761)
If a file is deleted (rm, not 'hg rm') from the working dir
an attempt to run 'hg diff -r X', with the file being present in X will
cause an abort.
We didn't check if the file has been deleted from the working dir
and later on tried to open it to compare with the one from X, causing the abort.
This fix adds that check. Consequently, no output will be returned.
Idan Kamara <idankk86@gmail.com> [Mon, 04 Apr 2011 22:51:10 +0300] rev 14499
localrepo: ignore tags to unknown nodes (issue2750)
David Soria Parra <dsp@php.net> [Mon, 14 Mar 2011 23:50:28 +0100] rev 14498
bookmarks: do not forward merged bookmark (issue1877)
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Sat, 26 Mar 2011 13:05:17 +0100] rev 14497
rebase: restore mq guards after rebasing (issue2107)
Guards on rebased mq patches were lost.
This patch restores them after the qimporting step.
Bernhard Leiner <bleiner@gmail.com> [Wed, 16 Mar 2011 23:09:14 +0100] rev 14496
revset: report a parse error if a revset is not parsed completely (issue2654)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Wed, 25 May 2011 18:48:00 +0200] rev 14495
color: fix --color=always when output is piped
Also restructures the mode determination as discussed on IRC.
I tried to simplify the code too, while keeping the original
semantics except for the case of --color=always.
Martin Geisler <mg@lazybytes.net> [Wed, 01 Jun 2011 12:38:46 +0200] rev 14494
check-code: flag 0/1 used as constant Boolean expression
Augie Fackler <durin42@gmail.com> [Tue, 31 May 2011 20:39:04 -0500] rev 14493
run-tests: allow whitelisting tests that should always run
It's desirable to run some tests all the time, for example
test-check-pyflakes.t and test-check-code-hg.py. This allows passing
--whitelist as a path to a file (flag can be specified more than once)
which contains a list of files to whitelist. Whitelisted tests are run
even if they're blacklisted or wouldn't match a --keyword test
run. For example, to do a quick test of usehttp2, one can now do
$ cat > test-whitelist <<EOF
> test-check-pyflakes.t
> test-check-code-hg.py
> EOF
$ (cd tests && ./run-tests.py --extra-config-opt 'ui.usehttp2=true'
> -k http -j 8 --whitelist test-whitelist)
and have all http-specific tests run as well as the two code linters.
Augie Fackler <durin42@gmail.com> [Tue, 31 May 2011 19:49:17 -0500] rev 14492
subrepo: make stdin for svn a pipe for non-interactive use (issue2759)
This certainly can't hurt, so go ahead and do it, potentially along
with --non-interactive if that flag is safe for the given subcommand.
Matt Mackall <mpm@selenic.com> [Tue, 31 May 2011 17:18:23 -0500] rev 14491
tests: glob version number in test-hgrc
Steven Brown <StevenGBrown@gmail.com> [Sat, 28 May 2011 14:44:45 +0800] rev 14490
web: provide diffstat to the changeset page
This includes all affected files, so it can be used for an extended view of
the files or as a replacement for the filenodelink and filenolink templates.
Matt Mackall <mpm@selenic.com> [Tue, 31 May 2011 16:24:47 -0500] rev 14489
tests: update for handling of missing hgrc includes
Regis Desgroppes <regis.desgroppes@nokia.com> [Tue, 31 May 2011 16:22:04 -0500] rev 14488
subrepo: svn abort now depends on exit code (issue2833)
desgropp <regis.desgroppes@nokia.com> [Tue, 31 May 2011 12:41:22 +0200] rev 14487
fixed issue2833: aborts nows depends on svn exit code
Matt Mackall <mpm@selenic.com> [Tue, 31 May 2011 16:00:39 -0500] rev 14486
config: ignore include errors for nonexistent files
Brendan Cully <brendan@kublai.com> [Tue, 31 May 2011 11:52:22 -0700] rev 14485
Make pull -u behave like pull && update
Previously, pull would not update if new branch heads were received,
whereas pull && update would move to the tipmost branch head.
Also change the "crosses branches" abort in merge.update from
"crosses branches (merge branches or use --check to force update)"
to
"crosses branches (merge branches or update --check to force update)"
since it can no longer assume the user is running hg update.
Matt Mackall <mpm@selenic.com> [Tue, 31 May 2011 15:55:23 -0500] rev 14484
requires: note apparent corruption
Adrian Buehlmann <adrian@cadifra.com> [Tue, 31 May 2011 19:16:25 +0200] rev 14483
readrequires: provide easier to understand error message
NEW:
$ hg id
abort: unknown repository format: requires feature 'foo' (upgrade Mercurial)!
OLD:
$ hg id
abort: requirement 'foo' not supported!
Adrian Buehlmann <adrian@cadifra.com> [Tue, 31 May 2011 19:16:18 +0200] rev 14482
introduce new function scmutil.readrequires
for reading and parsing the .hg/requires file
Matt Mackall <mpm@selenic.com> [Tue, 31 May 2011 15:28:23 -0500] rev 14481
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 31 May 2011 15:26:02 -0500] rev 14480
merge with crew
Matt Mackall <mpm@selenic.com> [Tue, 31 May 2011 15:25:43 -0500] rev 14479
merge with i18n
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 12:21:53 +0200] rev 14478
merge with stable
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 12:21:08 +0200] rev 14477
merge with hg-i18n
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 12:20:36 +0200] rev 14476
merge with hg-i18n
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 11:52:17 +0200] rev 14475
test-gendoc: update for new Russian translation
Alexander Sauta <demosito@gmail.com> [Mon, 30 May 2011 01:24:21 +0400] rev 14474
i18n-ru: branches-import translated
Alexander Sauta <demosito@gmail.com> [Sun, 29 May 2011 02:33:36 +0400] rev 14473
i18n-ru:bisect,backout,branch translated
Alexander Sauta <demosito@gmail.com> [Sun, 29 May 2011 01:42:59 +0400] rev 14472
i18n-ru: translated add, addremove, annotate, archive
Alexander Sauta <demosito@gmail.com> [Sun, 29 May 2011 01:31:12 +0400] rev 14471
i18n-ru:translation started,convert translated
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 19 May 2011 16:25:26 -0300] rev 14470
i18n-pt_BR: synchronized with ab687820c4cc
Eric Eisner <ede@alum.mit.edu> [Sat, 28 May 2011 11:03:48 -0400] rev 14469
subrepo: don't crash when git .hgsubstate is empty (issue2716)
Idan Kamara <idankk86@gmail.com> [Mon, 30 May 2011 21:44:03 +0300] rev 14468
mq: no need to make a copy of seriesopts
the command decorator takes care of copying the
options (introduced in 5b48ad1e7f1a)
Adrian Buehlmann <adrian@cadifra.com> [Fri, 27 May 2011 21:11:44 +0200] rev 14467
workingctx.remove: use self.forget
Martin Geisler <mg@aragost.com> [Tue, 31 May 2011 13:18:56 +0200] rev 14466
commands: use repo.branchheads in heads command
Martin Geisler <mg@aragost.com> [Tue, 31 May 2011 09:59:03 +0200] rev 14465
commands: remove unused variable from heads command
The b variable has not been needed since fd511e9eeea6. Renamed ls
variable to bheads for clarity.
Martin Geisler <mg@aragost.com> [Tue, 31 May 2011 08:47:16 +0200] rev 14464
mq: print "'foo' 'bar'", not "['foo', 'bar']" when showing guards
The internal list representation of guards was leaking into the
output. The guards were always printed using repr(guard) and that
style was kept.
When "hg qguard -l" prints several guards for a patch, it does so by
joining the names with " " and that style was used for the error
messages too.
Martin Geisler <mg@aragost.com> [Fri, 27 May 2011 12:42:36 +0200] rev 14463
hg: remove underscores in clone function
Idan Kamara <idankk86@gmail.com> [Sun, 29 May 2011 13:43:50 +0300] rev 14462
hg-ssh: fix dispatch call to use dispatch.request()
08bfec2ef031 changed dispatch.dispatch() to accept a
request object instead of a list of arguments
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 11:18:47 +0200] rev 14461
gendoc: config help topic is in hgrc.5, do not include it in hg.1
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 11:15:25 +0200] rev 14460
doc: improve merge between hgrc.5 and config help topic
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 11:14:31 +0200] rev 14459
doc: rebuild hgrc.5 man and HTML page when help/config changes
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 10:35:43 +0200] rev 14458
help/config: separate terms with a blank line
This makes it easier for translators since they can then translate
each term individually.
Martin Geisler <mg@lazybytes.net> [Mon, 30 May 2011 10:30:46 +0200] rev 14457
help/config: fix rendering of definition list
Without the blank line, the minirst parser renders
Term-1
Line-1
Line-2
Term-2
Line-1
as
Term-1
Line-1
Line-2 Term-2 Line-1
because the second term is seen as a paragraph.
Yun Lee <yun.lee.bj@gmail.com> [Mon, 30 May 2011 10:21:39 +0200] rev 14456
help: move part of hgrc.5 man page config help topic
Yun Lee <yun.lee.bj@gmail.com> [Mon, 30 May 2011 10:05:39 +0200] rev 14455
hgrc.5: make minirst find headings correctly
The minirst parser is stricter than Docutils here and require a blank
after a heading. Otherwise the heading is classified as a paragraph.
Patrick Mezard <pmezard@gmail.com> [Sat, 28 May 2011 11:44:27 +0200] rev 14454
run-tests: fix --blacklist (broken by 95715c2f90bf)
Patrick Mezard <pmezard@gmail.com> [Fri, 27 May 2011 21:50:11 +0200] rev 14453
patch: do not patch unknown files (issue752)
Patrick Mezard <pmezard@gmail.com> [Fri, 27 May 2011 21:50:10 +0200] rev 14452
patch: use temporary files to handle intermediate copies
git patches may require copies to be handled out-of-order. For instance, take
the following sequence:
* modify a
* copy a into b
Here, we have to generate b from a before its modification. To do so,
applydiff() was scanning for copy metadata and performing the copies before
processing the other changes in-order. While smart and efficient, this approach
complicates things by handling file copies and file creations at different
places and times. While a new file must not exist before being patched a copied
file already exists before applying the first hunk.
Instead of copying the files at their final destination before patching, we
store them in a temporary file location and retrieve them when patching. The
filestore always stores file content in real files but nothing prevents adding
a cache layer. The filestore class was kept separate from fsbackend for at
least two reasons:
- This class is likely to be reused as a temporary result store for a future
repository patching call (entries just have to be extended to contain copy
sources).
- Delegating this role to backends might be more efficient in a repository
backend case: the source files are already available in the repository itself
and do not need to be copied again. It also means that third-parties backend
would have to implement two other methods. If we ever decide to merge the
filestore feature into backend, a minimalistic approach would be to compose
with filestore directly. Keep in mind this copy overhead only applies for
copy/rename sources, and may even be reduced to copy sources which have to
handled ahead of time.
Patrick Mezard <pmezard@gmail.com> [Fri, 27 May 2011 21:50:09 +0200] rev 14451
patch: refactor file creation/removal detection
The patcher has to know if a file is being created or removed to check if the
target already exists, or to actually unlink the file when a hunk emptying it
is applied. This was done by embedding the creation/removal information in the
first (and only) hunk attached to the file.
There are two problems with this approach:
- creation/removal is really a property of the file being patched and not its
hunk.
- for regular patches, file creation cannot be deduced at parsing time: there
are case where the *stripped* file paths must be compared. Modifying hunks
after their creation is clumsy and prevent further refactorings related to
copies handling.
Instead, we delegate this job to selectfile() which has all the relevant
information, and remove the hunk createfile() and rmfile() methods.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 27 May 2011 15:59:52 +0200] rev 14450
commands.remove: don't use workingctx.remove(list, unlink=True)
workingctx.remove(list, unlink=True) is unsuited here, because it does too
much: it also unlinks added files. But the command 'hg remove' is specified
to *never* unlink added files.
Instead, we now unlink the files at the commands.remove level (if --after was
not specified) and use workingctx.forget for all files.
As an added bonus, this happens to eliminate a wlock acquire/release pair,
since the previous implementation caused
acquire wlock
release wlock
acquire wlock
release wlock
where the first pair of acquire/release was caused by the workingctx.forget
call, and the second by the workingctx.remove call.
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:51:16 +0300] rev 14449
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:49:54 +0300] rev 14448
mq: allow --mq for qrecord
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:46:48 +0300] rev 14447
run-tests: fix --blacklist with jobs > 1
filter blacklisted tests before partitioning them
to the children.
maintains the 'Skipped...' output but not the 's'.
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:46:47 +0300] rev 14446
run-tests: slightly simplify blacklist check
Matt Mackall <mpm@selenic.com> [Fri, 27 May 2011 08:50:27 -0500] rev 14445
coal: use preformatted text for descriptions (issue2835)
The coal style was broken here by an earlier change to paper, which
shares files.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 27 May 2011 10:03:29 +0200] rev 14444
rebase: add option --tool/-t for 'pull --rebase'
This makes 'pull --rebase' consistent with the merge command, which already
provides that option to control the merges
Martin Geisler <mg@aragost.com> [Fri, 27 May 2011 11:01:44 +0200] rev 14443
subrepo: refactor writestate for clarity
Matt Mackall <mpm@selenic.com> [Thu, 26 May 2011 17:15:35 -0500] rev 14442
cmdutil: make private copies of option lists to avoid sharing monkeypatches
Idan Kamara <idankk86@gmail.com> [Thu, 26 May 2011 19:00:47 +0300] rev 14441
record: fix options placeholder
Paul Molodowitch <pm@stanfordalumni.org> [Wed, 25 May 2011 08:38:58 -0700] rev 14440
subrepo: bare git repos considered dirty
Currently, if there is a bare git subrepo, but it is at the "right"
revision, calling dirty() will error because diff-index does not work
on bare repos. This patch makes it so bare subrepos are always
considered dirty.
Idan Kamara <idankk86@gmail.com> [Thu, 26 May 2011 00:53:23 +0300] rev 14439
dispatch: use the request to store the ui object
and check if we got one before creating.
note that the contents of the ui object might change after
dispatch() returns (by options passed through --config for example),
to ensure it doesn't, pass a copy() of it.
Idan Kamara <idankk86@gmail.com> [Thu, 26 May 2011 00:44:11 +0300] rev 14438
dispatch: wrap dispatch related information in a request class
currently only stores the arguments.
Steven Brown <StevenGBrown@gmail.com> [Thu, 26 May 2011 22:51:02 +0800] rev 14437
patch: restore the previous output of 'diff --stat'
Restore the previous diffstat behaviour of scaling by the maximum number of
changes to a single file. Changeset f03f08240c32 modified the diffstat to be
scaled by the total number of changes. This seems to have been unintentional.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 24 May 2011 17:48:16 +0200] rev 14436
wireproto: enable optional args for known() for future extensibility
Firstly, I think we should do this for all new wire commands, just
to be on the safe side. So I want to get this into the 1.9 release.
Secondly, there actually is potential here that sometimes the server
can know that the number of its nodes which can possibly still be
undecided on the client is small. It might then just send them along
directly (cutting short the end game). This, however, requires
walking the graph on the server, which can be expensive, so for the
moment we're not actually doing it.
Matt Mackall <mpm@selenic.com> [Thu, 26 May 2011 17:15:35 -0500] rev 14435
context: make forget work like commands.forget
Switch users of wctx.delete(..., False) to forget.
Matt Mackall <mpm@selenic.com> [Thu, 26 May 2011 17:15:35 -0500] rev 14434
dirstate: rename forget to drop
It has substantially different semantics from forget at the command
layer, so change it to avoid confusion.
We can't simply combine it with remove because we need to explicitly
drop non-added files in some cases like commit.
Martin Geisler <mg@aragost.com> [Thu, 26 May 2011 10:46:34 +0200] rev 14433
minirst: read test input from stdin
Sune Foldager <cryo@cyanite.org> [Thu, 26 May 2011 11:11:34 +0200] rev 14432
tests: update monotone version requirement
Patrick Mezard <pmezard@gmail.com> [Wed, 25 May 2011 10:06:17 +0200] rev 14431
test-git-import: test patching existing copy targets
Matt Mackall <mpm@selenic.com> [Tue, 24 May 2011 17:30:00 -0500] rev 14430
httprepo: handle large lengths by bypassing the len() operator
Adrian Buehlmann <adrian@cadifra.com> [Tue, 24 May 2011 14:52:23 +0200] rev 14429
workingctx.remove: don't stat files again after unlinking
we already know at this point that they have been unlinked
Matt Mackall <mpm@selenic.com> [Tue, 24 May 2011 17:16:31 -0500] rev 14428
httprepo: send URL redirection notices to stderr (issue2828)
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:22 +0300] rev 14427
record: alias qrecord to qnew -i/--interactive
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:19 +0300] rev 14426
record: add qrefresh -i/--interactive
interactively select changes to refresh
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:04 +0300] rev 14425
record: add an option to backup all wc modifications
Also, don't create a backup dir if we have no files to backup.
This is essential for qrefresh --interactive. Since we can't
select individual files to qrefresh without eliminating already
present changes, we have to backup all changes in the working
copy to avoid refreshing unaccepted hunks.
(thanks to Patrick for the idea)
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:02 +0300] rev 14424
record: check patch name is valid before prompting in qrecord
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:16:51 +0300] rev 14423
mq: use checkpatchname
This also fixes a bug where qrename would allow
renaming a patch to a reserved name.
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:16:51 +0300] rev 14422
mq: wrap patch file name checks in a function
Augie Fackler <durin42@gmail.com> [Tue, 24 May 2011 13:30:10 -0500] rev 14421
pure parsers: properly detect corrupt index files
This new Python code should be equivalent in behavior to the if
statement at line 312 of parsers.c. Without this, the pure-python
parsers improperly ignore truncated revlogs as created in
test-verify.t.
Adrian Buehlmann <adrian@cadifra.com> [Tue, 24 May 2011 14:08:20 +0200] rev 14420
workingctx: unlink paths while holding the wlock
Martin Geisler <mg@aragost.com> [Tue, 24 May 2011 16:12:01 +0200] rev 14419
wireproto: do not hash when heads == ['force']
Changeset 88f0e41d8802 introduced the unbundlehash capability and
unconditionally hashed the heads on the client side. By mistake, the
heads were also cased in the heads == ['force'] case.
Patrick Mezard <pmezard@gmail.com> [Tue, 24 May 2011 14:21:04 +0200] rev 14418
patch: remove EOL support from linereader class
This was only used when reading patched files which is now done by backends.
Matt Mackall <mpm@selenic.com> [Mon, 23 May 2011 22:49:10 -0500] rev 14417
subrepo: handle local added subrepo case correctly
Idan Kamara <idankk86@gmail.com> [Mon, 23 May 2011 23:22:47 +0300] rev 14416
graphlog: remove unused arg from _wrapcmd
Idan Kamara <idankk86@gmail.com> [Mon, 23 May 2011 23:09:00 +0300] rev 14415
extensions: raise when trying to find an extension that failed to load
extensions that depend on other extensions (such as record) use this pattern
to check if the dependant extension is available:
try:
mq = extensions.find('mq')
except KeyError:
return
but since if an error occurs while loading an extension it leaves its entry
in the _extensions map as None, we want to raise in that situation too.
(rather than adding another check if the return value is None)
Adrian Buehlmann <adrian@cadifra.com> [Mon, 23 May 2011 15:56:31 +0200] rev 14414
remove: clarify help text about added files never being deleted from disk
Adrian Buehlmann <adrian@cadifra.com> [Wed, 18 May 2011 09:12:27 +0200] rev 14413
pure: provide more correct implementation of posixfile for Windows
requires ctypes
Why is posixfile a class?
Because the implementation needs to use the Python library call os.fdopen [1],
which sets the 'name' attribute on the Python file object it creates to the
mostly meaningless string '<fdopen>', since file descriptors don't have a name.
But users of posixfile depend on the name attribute [2] being set to a proper
value, like Python's built-in 'open' function sets it on file objects.
Python file's name attribute is read-only, so we can't just assign to it after
the file object has alrady been created.
To solve this problem, we save the name of the file on a wrapper object,
and delegate the file function calls to the wrapped (private) file object
using __getattr__.
[1] http://docs.python.org/library/os.html#os.fdopen
[2] http://docs.python.org/library/stdtypes.html#file.name
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:35:10 +0200] rev 14412
bundlerepo: make getremotechanges support filtering of incoming
Extensions can hook discovery.findcommonincoming to filter out unwanted remote
changesets. This patch makes getremotechanges respect the changed remote heads
returned by such extensions.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:32:29 +0200] rev 14411
tests: add tests for discovery/pull without cgsubset
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:31:39 +0200] rev 14410
tests: add tests for partial pulls with treediscovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:31:04 +0200] rev 14409
tests: support multiple caps in notcapable
Idan Kamara <idankk86@gmail.com> [Sun, 22 May 2011 16:10:03 +0300] rev 14408
record: use cmdutil.command decorator
Idan Kamara <idankk86@gmail.com> [Sun, 22 May 2011 16:10:02 +0300] rev 14407
record: suggest the right command when running non interactively
Adrian Buehlmann <adrian@cadifra.com> [Sun, 22 May 2011 11:03:15 +0200] rev 14406
applyupdates: audit merged files
protects changing flags on merged files (util.setflags call on line 341)
Adrian Buehlmann <adrian@cadifra.com> [Sat, 21 May 2011 23:21:12 +0200] rev 14405
applyupdates: audit path on flag changes
we're using the auditor of the repo wopener, since this is a path that belongs
to the tree we're updating to
Adrian Buehlmann <adrian@cadifra.com> [Sat, 21 May 2011 23:13:59 +0200] rev 14404
opener: add audit function
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:09:15 -0500] rev 14403
templatekw: use diffstatsum in diffstat keyword
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:06:38 -0500] rev 14402
patch: use diffstatsum in diffstat
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:06:36 -0500] rev 14401
patch: add diffstatsum helper
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:01:28 -0500] rev 14400
diffstatdata: no longer a generator
This produces a smallish amount of data and all consumers needed to
buffer it anyway.
Adrian Buehlmann <adrian@cadifra.com> [Wed, 18 May 2011 21:31:40 +0200] rev 14399
add new option --all to manifest command
prints a list of all files in all revisions of the repo
obsoletes the cifiles extension
Adrian Buehlmann <adrian@cadifra.com> [Sat, 21 May 2011 02:05:00 +0200] rev 14398
applyupdates: audit unlinking of renamed files and directories
Idan Kamara <idankk86@gmail.com> [Fri, 20 May 2011 21:04:45 +0300] rev 14397
patchbomb: pass --git argument to diffstat
Idan Kamara <idankk86@gmail.com> [Fri, 20 May 2011 21:20:24 +0300] rev 14396
mq: strip all leading slashes from url when importing
When trying to import a url that ends with a slash
os.path.basename() would return an empty string. So
when seeing a leading slash, remove it and infer the
patch name from the remaining url.
e.g. `hg qimport http://paste.pocoo.org/raw/xxx/`
deduced '.' to be the patch name. Now we'll deduce 'xxx'.
Idan Kamara <idankk86@gmail.com> [Fri, 20 May 2011 21:19:33 +0300] rev 14395
mq: check patch name is valid before reading imported file
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:01:28 -0500] rev 14394
tests: update monotone output for v1.0 changes
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:01:28 -0500] rev 14393
revlog: stop exporting node.short
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:55:13 +0200] rev 14392
patch: fast-path git case in selectfile()
We avoid a lot of complicated heuristics in git cases, where these heurestics
may even be broken when copies are involved.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:49:43 +0200] rev 14391
patch: unify backend file access interface
- Rename readlines() into getfile(), return data and mode
- Make setfile() write a data buffer instead of lines, make mode mandatory.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14390
patch: merge backend setmode() into writelines()
Copy handling will be easier to handle in a single method.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14389
patch: stop modifying gitpatch objects
gitpatch objects emitted by iterhunks() were referencing file paths unmodified
from the input patch. _applydif() made them usable by modifying the gitpatch
objects in-place with specified path strip level. The same modified objects
were then reused by iterhunks() generator. _applydiff() now copies and update
the paths which completely decouples both routines.
As a side effect, the "git" event now receives only metadata about
copies/renames to perform the necessary copies ahead of time. Other actions are
handled in the "file" event.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14388
patch: stop handling hunkless git blocks out of stream
Patch changes are emitted by iterhunks() in two separate events: 'file' when
hunks have to be applied and 'git' to describe other modifications like copies
or mode changes. Note that a file which mode is changed and which content is
modified by the same patch will be emitted in both events. It is more
convenient to handle all file modifications in a single event. This patch
"zips" git actions with regular changes so both kinds can be emitted at the
same place.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14387
patch: reindent code
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14386
patch: unify iterhunks() afile/bfile handling
git afile/bfile are extracted twice, once when reading a 'diff --git', and
again when reading a unified hunk. The problem is not all git blocks have
unified hunks (renames just have metadata) and they were not extracted the same
way. This is what this patch unifies.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14385
patch: git metadata was ignored if strip > 1
gitpatch objects emitted by iterhunks() are modified in place by applydiff().
Processing them earlier improves iterhunks() isolation. applydiff() modifying
them should still be fixed though.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14384
patch: construct and parse binary hunks at the same time
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14383
patch: refactor iterhunks() regular and binary files emission
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14382
patch: remove patch.patch() cwd argument
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14381
patch: merge _updatedir() into externalpatch()
Martin Geisler <mg@aragost.com> [Thu, 19 May 2011 18:10:03 +0200] rev 14380
merge with stable
Martin Geisler <mg@aragost.com> [Thu, 19 May 2011 18:09:25 +0200] rev 14379
changelog: convert user and desc from local encoding early
Failing to do so makes it impossible to use the memctx API to create a
changeset with a commit message or username outside of the current
encoding.encoding setting.
Martin Geisler <mg@aragost.com> [Thu, 19 May 2011 16:57:14 +0200] rev 14378
merge crew with main
Brendan Cully <brendan@kublai.com> [Wed, 18 May 2011 23:20:26 -0700] rev 14377
clone: make default path absolute for all local paths
This fixes the default path when cloning local repositories with hg-git, since
hg-git cancopy() is false even for local repositories.
Augie Fackler <durin42@gmail.com> [Tue, 17 May 2011 10:28:03 -0500] rev 14376
httpclient: import revision fc731618702a of py-nonblocking-http
Augie Fackler <durin42@gmail.com> [Mon, 16 May 2011 16:59:45 -0500] rev 14375
httpconnection: improved logging formatting
I had to use this debugging output for the first time recently when
looking for a problem, and the lack of good formatting made things
difficult.
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 17 May 2011 00:46:52 +0200] rev 14374
bash_completion: enable alias auto-complete
When auto-completing, set HGPLAINEXCEPT=alias to list aliases
in the suggestions.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 17 May 2011 00:17:52 +0200] rev 14373
ui: enable alias exception when reading config in plain mode
When in plain mode with "alias" present in the exception list,
keep the aliases. This will be used later to enable auto-completion.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 17 May 2011 00:08:51 +0200] rev 14372
ui: test plain mode against exceptions
Let ui.plain() accept an optional parameter in the form of a feature
name (as a string) to exclude from plain mode.
The result of ui.plain is now:
- False if HGPLAIN is not set or the requested feature is in HGPLAINEXCEPT
- True otherwise
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Matt Mackall <mpm@selenic.com> [Wed, 18 May 2011 17:05:30 -0500] rev 14371
revlog: drop base() again
deltaparent does what's needed, and more "portably".
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:17 +0200] rev 14370
patch: add a workingbackend dirstate layer on top of fsbackend
_updatedir() is no longer used by internalpatch()
The change in test-mq-missingfiles.t comes from workingbackend not considering
the missing 'b' file as changed, thus not calling addremove() on it.
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14369
patch: handle binary copies as regular ones
This introduces a performance regression for large files, as they will be
copied just to be clobbered afterwards since binary patching does not use
deltas. But it simplifies the code and the previous optimization will be
reintroduced later in a better way.
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14368
patch: remove files while patching, not in updatedir()
At this point, updatedir() only reads the working directory and update the
dirstate.
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14367
patch: set desired mode when patching, not in updatedir()
This patch and the following aim at merging _updatedir() actions into
_applydiff().
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14366
patch: stop changing current directory before patching
_applydiff() patcher argument was added to help hgsubversion like extension
monkeypatching the patching process. While it could be removed at this point, I
prefer to leave it until patch.py is completely refactored and there is a valid
and tested alternative.
Sune Foldager <cryo@cyanite.org> [Wed, 18 May 2011 23:26:26 +0200] rev 14365
revlog: linearize created changegroups in generaldelta revlogs
This greatly improves the speed of the bundling process, and often reduces the
bundle size considerably. (Although if the repository is already ordered, this
has little effect on both time and bundle size.)
For non-generaldelta clients, the reduced bundle size translates to a reduced
repository size, similar to shrinking the revlogs (which uses the exact same
algorithm). For generaldelta clients the difference is minor.
When the new bundle format comes, reordering will not be necessary since we
can then store the deltaparent relationsships directly. The eventual default
behavior for clients and servers is presented in the table below, where "new"
implies support for GD as well as the new bundle format:
old client new client
old server old bundle, no reorder old bundle, no reorder
new server, non-GD old bundle, no reorder[1] old bundle, no reorder[2]
new server, GD old bundle, reorder[3] new bundle, no reorder[4]
[1] reordering is expensive on the server in this case, skip it
[2] client can choose to do its own redelta here
[3] reordering is needed because otherwise the pull does a lot of extra
work on the server
[4] reordering isn't needed because client can get deltabase in bundle
format
Currently, the default is to reorder on GD-servers, and not otherwise. A new
setting, bundle.reorder, has been added to override the default reordering
behavior. It can be set to either 'auto' (the default), or any true or false
value as a standard boolean setting, to either force the reordering on or off
regardless of generaldelta.
Some timing data from a relatively branch test repository follows. All
bundling is done with --all --type none options.
Non-generaldelta, non-shrunk repo:
-----------------------------------
Size: 276M
Without reorder (default):
Bundle time: 14.4 seconds
Bundle size: 939M
With reorder:
Bundle time: 1 minute, 29.3 seconds
Bundle size: 381M
Generaldelta, non-shrunk repo:
-----------------------------------
Size: 87M
Without reorder:
Bundle time: 2 minutes, 1.4 seconds
Bundle size: 939M
With reorder (default):
Bundle time: 25.5 seconds
Bundle size: 381M
Sune Foldager <cryo@cyanite.org> [Wed, 18 May 2011 23:11:34 +0200] rev 14364
revlogdag: add linearize function
See the docstring for a detailed explanation. The linearizer was originally
written by Benoit Boissinot.
Martin Geisler <mg@lazybytes.net> [Wed, 18 May 2011 19:30:17 +0200] rev 14363
localrepo, sshrepo: use Boolean create argument in __init__
Martin Geisler <mg@lazybytes.net> [Wed, 18 May 2011 19:25:34 +0200] rev 14362
commands: replace 'x = f(); return x' with 'return f()'
Martin Geisler <mg@lazybytes.net> [Wed, 18 May 2011 19:22:55 +0200] rev 14361
merge with stable
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 15:13:26 +0200] rev 14360
subrepo: respect non-default path for incoming/outgoing
Push and pull set repo._subtoppath before pushing or pulling subrepos.
The incoming and outgoing commands needed to do the same.
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 18 May 2011 15:45:57 +0200] rev 14359
run-tests: print a newline after all warnings
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 18 May 2011 15:41:03 +0200] rev 14358
annotate: fix alignment of columns in front of line numbers (issue2807)
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:56:27 +0200] rev 14357
merge with stable
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:31:19 +0200] rev 14356
revset: the name is optional for the tag predicate
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:28:11 +0200] rev 14355
revset: note case-sensitive match in grep
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:20:52 +0200] rev 14354
revset: note case-insensitive matches in keyword and user
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:15:18 +0200] rev 14353
revset: expand help for contains predicate
Sune Foldager <cryo@cyanite.org> [Wed, 18 May 2011 09:05:18 +0200] rev 14352
patch: remove unused variable to make pyflakes test happy
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:38 +0200] rev 14351
patch: add lexists() to backends, use it in selectfile()
At this point, all applydiff() filesystem calls should pass through fsbackend.
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:38 +0200] rev 14350
patch: move copyfile() into backends, abstract basedir
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:37 +0200] rev 14349
patch: merge makerejlines() into write_rej()
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:15 +0200] rev 14348
patch: extract fs access from patchfile into fsbackend
Most filesystem calls are already isolated in patchfile but this is not enough:
renames are performed before patchfile is available and some chmod calls are
even done outside of the applydiff call. Once all these calls are extracted
into a backend class, we can provide cleaner APIs to write to a working
directory context directly into the repository.
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:27:58 +0200] rev 14347
mq: fix qpush changes detection of renamed files
patch.changedfile() was not considering renamed file source as changed.
Augie Fackler <durin42@gmail.com> [Mon, 16 May 2011 16:59:45 -0500] rev 14346
httpconnection: correctly handle redirects from http to https
Previously the connection cache for keepalives didn't keep track of
ssl. This meant that when we connected to an https server after that
same server via http, both on the default port, we'd incorrectly reuse
the non-https connection as the default port meant the connection
cache key was the same.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 15 May 2011 21:33:51 +0200] rev 14345
win32.py: add argtypes and restype
This is a feature of ctypes. Without these, pypy complains with
RuntimeWarning: C function without declared arguments called
RuntimeWarning: C function without declared return type called
As a side effect of specifying restypes, the return value of e.g. CreateFileA
is now implicitly converted to an instance of _HANDLE, so we also need to
change the definition
_INVALID_HANDLE_VALUE = -1
to
_INVALID_HANDLE_VALUE = _HANDLE(-1).value
Otherwise, tests for equality to _INVALID_HANDLE_VALUE in code like
def _getfileinfo(name):
fh = _kernel32.CreateFileA(name, 0,
_FILE_SHARE_READ | _FILE_SHARE_WRITE | _FILE_SHARE_DELETE,
None, _OPEN_EXISTING, 0, None)
if fh == _INVALID_HANDLE_VALUE:
_raiseoserror(name)
would now fail to detect an invalid handle, which in turn would lead to
exceptions raised with wrong errno values, like e.g.
>>> nlinks('missing.txt')
Traceback (most recent call last):
...
OSError: [Errno 9] missing.txt: The handle is invalid.
instead of the correct (as per this patch and before it)
>>> nlinks('missing.txt')
Traceback (most recent call last):
...
OSError: [Errno 2] missing.txt: The system cannot find the file specified.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 15 May 2011 21:27:59 +0200] rev 14344
win32.py: more explicit definition of _STD_ERROR_HANDLE
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2011 17:02:35 -0500] rev 14343
revset: add follow(filename) to follow a filename's history across copies
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2011 17:02:35 -0500] rev 14342
revset: introduce filelog() to emulate log's fast path
filelog() only reports revisions present in the matching filelogs.
Augie Fackler <durin42@gmail.com> [Thu, 12 May 2011 10:48:31 -0500] rev 14341
httpclient: import revision b8c3511a8cae from py-nonblocking-http
Fixes issues with SSL_ERROR_WANT_READ incorrectly breaking the
response read.
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:56:26 +0200] rev 14340
run-tests: replace chdir() with Popen cwd option
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:54:43 +0200] rev 14339
run-tests: make --debug run in the temporary test directory
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:52:28 +0200] rev 14338
run-tests: use the common test path on Windows and Java
The alternate one did not run in the test directory and controlling
the jobs execution with threads instead of process made it harder
to fix.
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:41:46 +0200] rev 14337
run-tests: ignore timeout when Popen.terminate is unavailable
Popen.terminate was introduced in python 2.6
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:26:50 +0200] rev 14336
run-tests: fix hg.bat python reference
hg.bat expects to live in pythonxx/scripts and the python interpreter
to be in pythonxx. run-tests.py file layout is a little different and
python location must be fixed.
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:24:14 +0200] rev 14335
run-tests: fix python executable detection and copy on Windows
Sune Foldager <cryo@cyanite.org> [Mon, 16 May 2011 13:06:48 +0200] rev 14334
changelog: don't use generaldelta
Sune Foldager <cryo@cyanite.org> [Mon, 16 May 2011 12:44:34 +0200] rev 14333
revlog: get rid of defversion
defversion was a property (later option) on the store opener, used to propagate
the changelog revlog format to the other revlogs, so they would be created with
the same format.
This required that the changelog instance was created before any other revlog;
an invariant that wasn't directly enforced (or documented) anywhere.
We now use the revlogv1 requirement instead, which is transfered to the store
opener options. If this option is missing, v0 revlogs are created.
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 16 May 2011 11:52:28 +0200] rev 14332
bash_completion: Use "hg paths -q" instead of piping through sed
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 16 May 2011 11:41:48 +0200] rev 14331
paths: Add support for -q/--quiet
Suppresses output (resolved paths or "not found!") when searching a path,
similar to "grep -q".
Sample usage: hg paths -q foo || echo "there is no foo"
Just prints path names (instead of "name = result") when listing all path
definitions, like "hg bookmarks -q".
Sample usage: hg paths -q | while read i; do hg incoming "$i"; done
Sune Foldager <cryo@cyanite.org> [Mon, 16 May 2011 11:14:06 +0200] rev 14330
fix test broken in merge from stable
Matt Mackall <mpm@selenic.com> [Sun, 15 May 2011 13:15:41 -0500] rev 14329
merge with stable
Steve Borho <steve@borho.org> [Fri, 13 May 2011 19:46:36 -0500] rev 14328
simplemerge: do not allow binary files to abort an entire merge
When used as the default merge tool, or used as a --tool override,
the simplemerge script should not be allowed to raise a util.Abort
just because one of the files being merged is binary. Instead, return
1 and mark the file unresolved.
Javi Merino <cibervicho@gmail.com> [Sun, 15 May 2011 18:00:22 +0100] rev 14327
extdiff: grammar "allows to" -> "allows one to"
The verb to allow requires a direct object.
Lintian, a Debian tool to find common mistakes, reported it. I'm not a
native english speaker but I think this is correct.
Matt Mackall <mpm@selenic.com> [Sun, 15 May 2011 11:50:16 -0500] rev 14326
debugrevlog: add --dump flag to dump graphable per-revision statistics
Matt Mackall <mpm@selenic.com> [Sun, 15 May 2011 11:50:15 -0500] rev 14325
revlog: restore the base method
Brendan Cully <brendan@kublai.com> [Sat, 14 May 2011 22:07:58 -0700] rev 14324
Hardcoding ARCHFLAGS breaks the build against fink's python
Fink's python is either i386 or amd64, but not universal. Setting ARCHFLAGS to the
empty string produces a successful build against both OS X python and fink python.
The modules will no longer be universal -- if that is an issue, we can change the
test to extract ARCHFLAGS from distutils.sysconfig and remove ppc if necessary.
Sune Foldager <cryo@cyanite.org> [Sat, 14 May 2011 00:30:32 +0200] rev 14323
debugindex etc.: add --changelog and --manifest options
These open the changelog and manifest, respectively, directly so you don't
need to specify the path.
The options have been added to debugindex, debugdata and debugrevlog.
The patch also fixes some minor usage-related bugs.
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:58:24 -0500] rev 14322
scmutil: drop aliases in cmdutil for match functions
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:48:48 -0500] rev 14321
scmutil: drop some aliases in cmdutil
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:07:16 -0500] rev 14320
scmutil: fold in wdutil
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:06:28 -0500] rev 14319
scmutil: move revsingle/pair/range from cmdutil
This allows users at levels below the command layer to avoid import loops.
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 12:57:27 -0500] rev 14318
help: consolidate topic hooks in help.py
This removes loops like cmdutil->revset->help->extensions->cmdutil and
simplifies the code.
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 11:04:51 -0500] rev 14317
extensions: move moduledoc to break import loop with help
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 11:04:51 -0500] rev 14316
extensions: drop maxlength from enabled and disabled
This is a bad/silly API. Instead calculate maxlength in one place in help
it's used and simplify all the callers.
Martin Geisler <mg@aragost.com> [Fri, 13 May 2011 11:26:29 +0200] rev 14315
Makefile: remove pure modules on clean
Cédric Krier <ced@b2ck.com> [Wed, 11 May 2011 18:18:50 +0200] rev 14314
hgcia: Handle URL like in notify (issue2406)
The URL must be composed with baseurl and webroot like in notify
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Thu, 12 May 2011 16:41:56 +0200] rev 14313
util: make str(url) return file:/// for abs paths again
str(url) was recently changed to return only file:/. However, the
canonical way to represent absolute local paths is file:/// [1], which
is also expected by at least hgsubversion.
Relative paths are returned as file:the/relative/path.
[1] http://en.wikipedia.org/wiki/File_URI_scheme
Matt Mackall <mpm@selenic.com> [Thu, 12 May 2011 18:35:04 -0500] rev 14312
subrepo: use a safer revision check for hg repos
This avoids a traceback if the expected revision has been stripped.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 20:27:35 +0200] rev 14311
graphlog: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 20:14:42 +0200] rev 14310
purge: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 18:27:05 +0200] rev 14309
patchbomb: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 17:50:07 +0200] rev 14308
transplant: use cmdutil.command decorator
Steven Brown <StevenGBrown@gmail.com> [Thu, 12 May 2011 18:06:15 +0800] rev 14307
monoblue: improve readability of the filenolink template
Whitespace changes only. No difference to the rendered page.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 17:09:56 +0200] rev 14306
rebase: use cmdutil.command decorator
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 22:37:52 +0200] rev 14305
debugrevlog: many improvements
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 18:22:49 +0200] rev 14304
add debugrevlog command
Displays data and statistics about revlogs, including generaldelta details.
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 18:19:28 +0200] rev 14303
check-code: add /= to operator list
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 16:21:01 +0200] rev 14302
order commands alphabetically
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 15:24:33 +0200] rev 14301
revlog: improve delta generation heuristics for generaldelta
Without this change, pulls (and clones) into a generaldelta repository could
generate very inefficient revlogs, the size of which could be at least twice
the original size.
This was caused by the generated delta chains covering too large distances,
causing new chains to be built far too often. This change addresses the
problem by forcing a delta against second parent or against the previous
revision, when the first parent delta is in danger of creating a long chain.
Martin Geisler <mg@aragost.com> [Thu, 12 May 2011 14:31:07 +0200] rev 14300
keyword: use cmdutil.command decorator
Martin Geisler <mg@aragost.com> [Thu, 12 May 2011 14:31:01 +0200] rev 14299
gpg: use cmdutil.command decorator
Martin Geisler <mg@aragost.com> [Thu, 12 May 2011 14:25:08 +0200] rev 14298
mq: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 08:14:04 +0200] rev 14297
commands: use a decorator to build table incrementally
this allows to define the table entries near the command functions
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 13:47:17 +0200] rev 14296
revlog: fix bug in chainbase cache
The bug didn't cause corruption, and thus wasn't caught in hg verify or in
tests. It could lead to delta chains longer than normally allowed, by
affecting the code that decides when to add a full revision. This could,
in turn, lead to performance regression.
Zachary Gramana <zgramana@pottsconsultinggroup.com> [Mon, 09 May 2011 15:16:56 -0400] rev 14295
setup.py: workaround for missing bz2 module in IronPython
IronPython does not provide the bz2 module on its own. This patch skips
importing it to allow setup to continue.
(minor tweaks by mpm)
Augie Fackler <durin42@gmail.com> [Wed, 11 May 2011 08:07:51 -0500] rev 14294
httpconnection: fix debug logging option for httpclient
Augie Fackler <durin42@gmail.com> [Wed, 11 May 2011 08:00:48 -0500] rev 14293
httpclient: import f4c380237fd5 to fix keepalive not working
Sune Foldager <cryo@cyanite.org> [Wed, 11 May 2011 11:04:44 +0200] rev 14292
revlog: add docstring to _addrevision
Matt Mackall <mpm@selenic.com> [Tue, 10 May 2011 16:08:47 -0500] rev 14291
cmdutil: make_file to makefileobj
Matt Mackall <mpm@selenic.com> [Tue, 10 May 2011 16:08:46 -0500] rev 14290
cmdutil: make_filename -> makefilename
Matt Mackall <mpm@selenic.com> [Tue, 10 May 2011 16:08:46 -0500] rev 14289
cmdutil: bail_if_changed to bailifchanged
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 23:27:48 +0200] rev 14288
store: change names to comply with project coding standards
as stated at http://mercurial.selenic.com/wiki/CodingStyle
(see also http://selenic.com/pipermail/mercurial-devel/2011-May/031139.html )
name changes done at module scope:
_build_lower_encodefun -> _buildlowerencodefun
_windows_reserved_filenames -> _winreservednames (see 23cd7eeff678)
MAX_PATH_LEN_IN_HGSTORE -> _maxstorepathlen
DIR_PREFIX_LEN -> _dirprefixlen
_MAX_SHORTENED_DIRS_LEN -> _maxshortdirslen
(no users of these outside the store module)
changed locals:
win_reserved -> winreserved
space_left -> spaceleft
Sune Foldager <cryo@cyanite.org> [Tue, 10 May 2011 17:38:58 +0200] rev 14287
filelog: add file function to open other filelogs
Martin Geisler <mg@aragost.com> [Tue, 10 May 2011 14:42:53 +0200] rev 14286
help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com> [Tue, 10 May 2011 13:19:05 +0200] rev 14285
help: give hint about 'hg help -e' when appropriate
The hint is only given if a command shadows an extension with the same
name and when that extension has a multi-line module docstring.
Henri Wiechers <hwiechers@gmail.com> [Wed, 20 Jan 2010 20:24:20 +0200] rev 14284
help: add -e/--extension switch to display extension help text
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 18:11:08 +0200] rev 14283
debugbuilddag: read DAG from stdin if not given on cmdline
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 17:20:15 +0200] rev 14282
run-tests: remove check on --shell argument
No shell is needed when executing Python tests and finding a good
shell might be difficult/impossible on some platforms (e.g., Windows).
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 17:15:44 +0200] rev 14281
subrepo: create subrepos using clone instead of pull
Subrepositories used to be created empty and then filled with data
using pull. This is wasteful when you do a clone from a local source
since it means that no hardlinks are created for the subrepos.
This patch make the hgsubrepo._get method check for an empty subrepo
and in that case do a clone instead of a pull. This brings in the same
data as before, but creates hardlinks when possible.
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 16:41:45 +0200] rev 14280
progress: add speed format
This is not enabled by default, but the user can add it by setting
progress.format.
We might want to let the estimate format output a speed instead of an
ETA if there is not total. Currently estimate just returns the empty
string in that case.
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 14:40:49 +0200] rev 14279
debugbuilddag: output progress information
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 14:33:08 +0200] rev 14278
test-debugbuilddag: replace unneeded 'rm -rf' with 'rm -r'
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 11:01:45 +0200] rev 14277
hgrc.5: document positional arguments in aliases
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 10:52:08 +0200] rev 14276
merge with stable
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 10:46:54 +0200] rev 14275
hgrc.5: document shell aliases
Matt Mackall <mpm@selenic.com> [Sun, 08 May 2011 16:41:41 -0500] rev 14274
merge with crew
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 20:45:47 +0200] rev 14273
rename util.is_exec to isexec
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 20:42:28 +0200] rev 14272
posix: delete unused expand_glob
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 20:35:46 +0200] rev 14271
rename util.find_exe to findexe
Sune Foldager <cryo@cyanite.org> [Sun, 08 May 2011 21:32:33 +0200] rev 14270
revlog: support writing generaldelta revlogs
With generaldelta switched on, deltas are always computed against the first
parent when adding revisions. This is done regardless of what revision the
incoming bundle, if any, is deltaed against.
The exact delta building strategy is subject to change, but this will not
affect compatibility.
Generaldelta is switched off by default.
Sune Foldager <cryo@cyanite.org> [Sun, 08 May 2011 21:24:30 +0200] rev 14269
cmdutil: fix errors reported by pyflakes test
Matt Mackall <mpm@selenic.com> [Sun, 08 May 2011 16:16:41 -0500] rev 14268
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 08 May 2011 11:39:24 -0500] rev 14267
check-code: complain about set.isdisjoint
Alexander Solovyov <alexander@solovyov.net> [Sun, 01 May 2011 13:07:00 +0200] rev 14266
fix bookmarks rollback behavior
Before this patch undo.bookmarks was created on bookmarks write and
not with other transaction-related files. There were two issues: first
is that if you have changed bookmarks few times after a transaction
happened, rollback will give you a state which can point to
non-existing revision. Second is that if you have not changed
bookmarks after a transaction, rollback will touch your state anyway.
This change also adds `localrepo._writejournal` method, which can be
used by other extensions to save their transaction-related backup in
right time.
Alexander Solovyov <alexander@solovyov.net> [Sun, 01 May 2011 12:29:32 +0200] rev 14265
add positional arguments to non-shell aliases
Idan Kamara <idankk86@gmail.com> [Sat, 07 May 2011 21:01:15 +0300] rev 14264
run-tests: take the basepath when constructing the test temp dir
so it's possible to run tests that are outside the test/ dir
Idan Kamara <idankk86@gmail.com> [Sat, 07 May 2011 20:56:43 +0300] rev 14263
run-tests: compare absolute paths in _checkhglib
Adrian Buehlmann <adrian@cadifra.com> [Sat, 07 May 2011 22:25:20 +0200] rev 14262
util: rename _windows_reserved_filenames and _windows_reserved_chars
Adrian Buehlmann <adrian@cadifra.com> [Sat, 07 May 2011 20:22:32 +0200] rev 14261
opener: rename _can_symlink to _cansymlink