Siddharth Agarwal <sid0@fb.com> [Fri, 20 Nov 2015 01:14:15 -0800] rev 27048
mergestate._resolve: handle change/delete conflicts
We will represent a deleted file as 'nullhex' in the in-memory and on-disk
merge states. We need to be able to create absentfilectxes in that case, and
delete the file from disk rather than try to write it out.
Siddharth Agarwal <sid0@fb.com> [Sat, 14 Nov 2015 00:00:46 -0800] rev 27047
filemerge: don't try to copy files known to be absent
We set 'back' to None in this case, so we need to handle that as well.
Yuya Nishihara <yuya@tcha.org> [Sat, 31 Oct 2015 22:07:40 +0900] rev 27046
hgweb: use absolute_import
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 15:09:35 +0900] rev 27045
hgweb: import wsgicgi at top level
There should be no practical reason to delay the import of wsgicgi.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 15:07:08 +0900] rev 27044
hgweb: import BaseHTTPServer as module at top level
This will avoid future warning spotted by the import checker.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 14:23:23 +0900] rev 27043
hgweb: do not import hgweb_mod.hgweb and .makebreadcrumb as symbol
It will be enforced by the import checker.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 23:57:43 -0800] rev 27042
filemerge: don't try using external tools on change/delete conflicts
This is mostly for completeness' sake -- the current code shouldn't get to this
point.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 23:56:00 -0800] rev 27041
filemerge: don't attempt to premerge change/delete conflicts
This is mostly for completeness' sake -- at the moment we don't support any
tools for change/delete conflicts that would do a premerge.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 23:58:05 -0800] rev 27040
filemerge._mergecheck: add check for change/delete conflicts
Merge tools that perform an actual 3-way merge can't handle change/delete
conflicts. This adds a check for that.
Siddharth Agarwal <sid0@fb.com> [Sun, 15 Nov 2015 21:40:15 -0800] rev 27039
filemerge._picktool: only pick from nomerge tools for change/delete conflicts
For --tool or HGMERGE, we could have either:
(a) proceeded with the particular tool, then failed the merge.
(b) chosen to prompt regardless.
We're explicitly choosing (b) here, because it's effectively what we've been
doing so far and helps maintain an easier-to-use interface.
However, in future patches we're going to change the default selection from
'pick changed version' to 'leave unresolved'. That fixes most of the brokenness
involved with choice (b).
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 23:52:26 -0800] rev 27038
filemerge: add support for change/delete conflicts to the ':prompt' tool
We haven't added the 'leave unresolved' option yet -- that will come in a
future patch.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 15:41:50 -0800] rev 27037
filemerge: add support for change/delete conflicts to the ':other' merge tool
This, along with the previous patch to the :local merge tool, covers the full
matrix of change/delete conflicts.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 15:40:28 -0800] rev 27036
filemerge: add support for change/delete conflicts to the ':local' merge tool
This covers two of the four cases of change/delete conflicts -- in an upcoming
patch we'll make :other cover the other two.
Siddharth Agarwal <sid0@fb.com> [Thu, 19 Nov 2015 10:50:02 -0800] rev 27035
merge.mergestate: compute dirstate action
In upcoming patches we're going to queue these actions up to be applied to the
dirstate at the end.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 14:22:52 -0800] rev 27034
filemerge: return whether the file was deleted
This is required for change/delete conflict resolution -- see previous patches
for more details.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 13:55:31 -0800] rev 27033
filemerge: return whether the file is deleted from all other merge tools
This is required for change/delete conflicts -- see the previous patch for more
information.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 13:52:28 -0800] rev 27032
filemerge: return whether the file is deleted for nomerge internal tools
We're going to support the filemerge code resolving change/delete conflicts in
upcoming patches. Some of these resolutions require that the dirstate be
modified. Modifying the dirstate directly from in here would be (a) a pretty
bad layering violation and (b) wrong because all dirstate removals should
happen before adds. So in this and upcoming patches we're instead going to pass
whether the file is deleted up to merge.mergestate, then in there figure out
what dirstate action needs to be taken.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 15:46:45 -0800] rev 27031
mergestate: allow storing and retrieving change/delete conflicts
We introduce a new record type, 'C', to indicate change/delete conflicts. This
is a separate record type because older versions of Mercurial will not be able
to handle these conflicts.
We aren't actually storing any change/delete conflicts yet -- that will come in
future patches.
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Thu, 19 Nov 2015 12:50:10 +0530] rev 27030
strip: changing bookmark argument to be a list
Currently strip works with a single bookmark,
the changes in this patch modifies the strip
extension to accept a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Sun, 15 Nov 2015 21:03:44 +0530] rev 27029
strip: strip a list of bookmarks
Currently strip works with a single bookmark,
the changes in this patch modifies the strip module
to work with a list of bookmarks
Building on this we can take a list of bookmarks as input
and remove all of them in a single go
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 18 Nov 2015 23:23:03 -0800] rev 27028
revset: speed up '_matchfiles'
File matching is done by applying the matcher to all elements in the 'file'
field of all changesets in the repository. This requires to read/parse all
changesets in the repository and do a lot of matching. However about 1/3 of the
time of the function is used to create 'changectx' object and retrieve their
'file' field.
This is far too much overhead so we are skipping the changectx layer and
directly access the data from the changelog. This provide use significant speed
up:
repository: mozilla central 252524 revisions
command: hg perfrevset '_matchfiles("p:browser")'
Before: 15.899687s
After: 10.011705s
Slowdown is even more significant if you have a lot of namespace that slowdown
lookup.
The time is now spent with this approximate repartition:
Matcher: 20%
regexp matching: 10%
changelog.read: 80%
reading revision: 60%
checking hash: 15%
decompression: 15%
reading chunk: 30%
changelog parsing: 20%
decoding to local: 10%
The next easy win is probably to have more of the changelog stack implemented
using the CPython api.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 15:46:45 -0800] rev 27027
mergestate: handle additional record types specially
This works around a bug in older Mercurial versions' handling of the v2 merge
state.
We also add a bunch of tests that make sure that
(1) we correctly abort when the merge state has an unsupported record type
(2) aborting the merge, rebase or histedit continues to work and clears out the
merge state.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 23:42:32 -0800] rev 27026
test-resolve.t: remove completely unnecessary line
I have no idea what I was thinking when I wrote this.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 23:43:18 -0800] rev 27025
resolve: fix incorrect merge
The merge from stable into default was semantically incomplete -- a couple of
changes in preceding code had to be rewritten here.
This code only triggers for change/delete conflicts, so we can't test it yet.
We will soon be able to do it, though.
liscju <piotr.listkiewicz@gmail.com> [Wed, 18 Nov 2015 20:55:32 +0100] rev 27024
fileset: add missing() predicate (issue4925)
Help of status cmd defines status file of 'missing', what is
called in fileset 'deleted'. To stay consistent this patch
introduces missing() predicate which in fact is alias to
'deleted'.
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Nov 2015 17:22:40 +0800] rev 27023
webutil: make _siblings into an object with __iter__ and __len__
_siblings is a helper that is used for displaying changeset parents and
children in hgweb. Before, when it was a simple generator, it couldn't tell its
length without being consumed, and that required a special case when preparing
data for changeset template (see 9e1f4c65f5f5).
Let's make it into a class (similar to templatekw._hybrid) that allows len(...)
without side-effects.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 16:39:30 -0800] rev 27022
mergestate: move binary format documentation into _readrecordsv2
This is too low-level to be the top-level documentation for mergestate. We're
restricting the top-level documentation to only be about what consumers of the
mergestate and anyone extending it need to care about.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 15:11:23 -0800] rev 27021
unshelve: add support for custom merge tools
For parity with merge --tool, rebase --tool etc.
rebase.rebase overwrites the tool in repo.ui, so we need to explicitly pass it
down there too.
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 15:18:16 -0800] rev 27020
unshelve: shed spurious space
Siddharth Agarwal <sid0@fb.com> [Wed, 18 Nov 2015 15:04:03 -0800] rev 27019
unshelve: add -k as short form of --keep
For parity with strip -k, rebase -k, etc.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 13:55:21 +0900] rev 27018
import-checker: allow symbol imports from hgweb.common and .request
This seems the convention of hgweb.
Matt Mackall <mpm@selenic.com> [Thu, 19 Nov 2015 15:02:27 -0600] rev 27017
perf: un-bitrot perfstatus
Matt Mackall <mpm@selenic.com> [Thu, 19 Nov 2015 13:15:17 -0600] rev 27016
util: drop statmtimesec
We've globablly forced stat to return integer times which agrees with
our extension code, so this is no longer needed.
This speeds up status on mozilla-central substantially:
$ hg perfstatus
! wall 0.190179 comb 0.180000 user 0.120000 sys 0.060000 (best of 53)
$ hg perfstatus
! wall 0.275729 comb 0.270000 user 0.210000 sys 0.060000 (best of 36)
Matt Mackall <mpm@selenic.com> [Thu, 19 Nov 2015 13:21:24 -0600] rev 27015
util: disable floating point stat times (issue4836)
Alternate fix for this issue which avoids putting extra function calls
and exception handling in the fast path.
For almost all purposes, integer timestamps are preferable to
Mercurial. It stores integer timestamps in the dirstate and would thus
like to avoid doing any float/int comparisons or conversions. We will
continue to have to deal with 1-second granularity on filesystems for
quite some time, so this won't significantly hinder our capabilities.
This has some impact on our file cache validation code in that it
lowers timestamp resolution. But as we still have to deal with
low-resolution filesystems, we're not relying on this anyway.
An alternate approach is to use stat[ST_MTIME], which is guaranteed to
be an integer. But since this support isn't already in our extension,
we can't depend on it being available without adding a hard Python->C
API dependency that's painful for people like yours truly who have
bisect regularly and people without compilers.
Laurent Charignon <lcharignon@fb.com> [Wed, 18 Nov 2015 15:58:06 -0800] rev 27014
rebase: refactoring to avoid repetition of expression
This patch removes the repetition of "(revignored, revprecursor, revpruned)"
and replaces its occurences with the more legible "revskipped".
Laurent Charignon <lcharignon@fb.com> [Wed, 18 Nov 2015 16:06:00 -0800] rev 27013
rebase: remove an unused todo
Since we handled skipping obsolete revs when it is relevant, this todo is no
longer useful. We replace the comment with two useful comments.
Laurent Charignon <lcharignon@fb.com> [Wed, 18 Nov 2015 13:44:29 -0800] rev 27012
rebase: don't rebase obsolete commits with no successor
This patch avoids unnecessary conflicts to resolve during rebase for the users
of changeset evolution.
This patch modifies rebase to skip obsolete commits with no successor.
It introduces a new rebase state 'revpruned' for these revisions that are
being skipped and a new message to inform the user of what is happening.
This feature is gated behind the config flag experimental.rebaseskipobsolete
When an obsolete commit is skipped, the output is:
note: not rebasing 7:360bbaa7d3ce "O", it has no successor
Laurent Charignon <lcharignon@fb.com> [Wed, 18 Nov 2015 13:46:42 -0800] rev 27011
rebase: fix a typo in test-rebase-obsolete
We had left a lonely single quote where it shouldn't be!
Matt Mackall <mpm@selenic.com> [Wed, 18 Nov 2015 20:59:17 -0600] rev 27010
merge with stable
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 14:43:25 +0900] rev 27009
hgweb: unify import style of error classes
It will be enforced by the import checker.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 14:00:14 +0900] rev 27008
hgweb: do not import templatefilters.revescape and websub as symbol
It will be enforced by the import checker.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 13:58:32 +0900] rev 27007
hgweb: alias ui module as uimod
It will be enforced by the import checker.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:23:26 -0800] rev 27006
mergestate.commit: factor out making the list of records
Will aid in testing.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:04:56 -0800] rev 27005
mergestate: move _read() call to read constructor
With this patch, mergestate.clean() will no longer abort when it encounters an
unsupported merge type. However we hold off on testing it until backwards
compatibility is in place.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:22:30 -0800] rev 27004
debugmergestate: explain why we create mergestate objects directly
We would normally use the read() constructor, but in this case it's fine
because
- we implement our own reading layer, so the extra parsing done by
read() is unnecessary
- read() can raise an exception for unsupported merge state records,
but here we'd like to handle that separately
- debugmergestate needs to be privy to mergestate internals anyway
Christian Delahousse <cdelahousse@fb.com> [Wed, 11 Nov 2015 13:28:00 -0800] rev 27003
debugdirstate: convert keyword parameters to **opts
Removes the named arguments and replaces them by accessing opts. This will be
used in the next patch in the series because we'll be adding more flags to
debugdirstate
Christian Delahousse <cdelahousse@fb.com> [Tue, 17 Nov 2015 18:01:21 -0800] rev 27002
convert: changed test's progress output format to ignore estimate
On my machine, whenever I run all test with a high -j value, test-convert-git.t
would consistently fail by displaying an estimate. This patch removes that value
from the output.
Laurent Charignon <lcharignon@fb.com> [Tue, 17 Nov 2015 13:12:33 -0800] rev 27001
mq: use repo._bookmarks.recordchange instead of repo._bookmarks.write
Before this patch, mq was using repo._bookmarks.write.
This patch replaces this code with the recommended way of saving bookmarks
changes: repo._bookmarks.recordchange.
Laurent Charignon <lcharignon@fb.com> [Tue, 17 Nov 2015 13:12:46 -0800] rev 27000
mq: indentation change to make the next patch more legible
We put the code to be indented in the next patch in a "if True:" block to make
it easier to review.
Laurent Charignon <lcharignon@fb.com> [Tue, 17 Nov 2015 12:49:57 -0800] rev 26999
bookmarks: use repo._bookmarks.recordchange instead of repo._bookmarks.write
We move from the old api repo._bookmarks.write to the new api
repo._bookmarks.recordchange.
Laurent Charignon <lcharignon@fb.com> [Wed, 18 Nov 2015 01:36:58 -0800] rev 26998
localrepo: put bookmark move following commit in one transaction
Before this patch, making a commit on a local repo could move a bookmark and
both operations would not be grouped as one transaction. This patch makes both
operations part of one transaction. This is necessary to switch to the new api
to save bookmarks repo._bookmarks.recordchange if we don't want to change the
current behavior of rollback.
Dirstate change happening after the commit is done is now part of the
transaction mentioned above. This leads to a change in the expected output of
several tests.
The change to test-fncache happens because both lock are now released in the
same finally clause. The lock release is made explicitly buggy in this test.
Previously releasing lock would crash triggering release of wlock that crashes
too. Now lock release crash does not directly result in the release of wlock.
Instead wlock is released at garbage collection time and the error raised at
that time "confuses" python.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 15:43:21 -0800] rev 26997
test-resolve.t: switch to mergestate.read()
See previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 13:58:50 -0800] rev 26996
localrepo.commit: switch to mergestate.read()
See previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 13:57:38 -0800] rev 26995
fileset: switch to mergestate.read()
See previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:20:55 -0800] rev 26994
commands.summary: switch to mergestate.read()
See previous patch for why we're doing this.
We do this with a bit of care -- it would be bad form for 'hg summary' to abort
completely if we encounter an unsupported merge record. Instead just warn about
that and continue with the rest of the summary.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 13:56:46 -0800] rev 26993
commands.resolve: switch to mergestate.read()
See previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 13:56:10 -0800] rev 26992
shelve: switch to mergestate.read()
See previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 13:55:30 -0800] rev 26991
mergestate: add a constructor that reads state from disk
At the moment it's the same as just creating a new mergestate, but we'll soon
move the _read call out of __init__ and in here.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 17:04:53 -0800] rev 26990
merge.applyupdates: switch to mergestate.clean()
See the previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 17:04:32 -0800] rev 26989
localrepo: switch to mergestate.clean()
See the previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 17:02:35 -0800] rev 26988
strip: switch to mergestate.clean()
See the previous patches for why we're doing this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 17:00:54 -0800] rev 26987
mergestate: add a constructor that sets up a clean merge state
Eventually, we'll move the read call out of the constructor. This will:
- avoid unnecessary reads when we're going to nuke the merge state anyway
- avoid raising an exception if there's an unsupported merge record
'clean' seems like a good name for it because I wanted to avoid anything with
the word 'new' in it, and 'reset' is more an action performed on a merge state
than a way to get a new merge state.
Thanks to Martin von Zweigbergk for feedback about naming this.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:11:52 -0800] rev 26986
mergestate: raise structured exception for unsupported merge records
We're going to catch this exception in 'hg summary' to print a better error
message.
This code is pretty untested, so there are no changes to test output. In
upcoming patches we're going to test the output more thoroughly.
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:10:12 -0800] rev 26985
error: add a structured exception for unsupported merge records
We're going to use this in summary to print a better error message.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 17 Nov 2015 13:47:16 -0800] rev 26984
dirstate: back out 502b56a9e897
Superseded by the parent of this commit.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 17 Nov 2015 13:47:14 -0800] rev 26983
osutil: make statfiles check for interrupts periodically
This is a simpler and faster fix for issue4878 than the contortions
performed in 502b56a9e897.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 17 Nov 2015 13:43:09 -0800] rev 26982
osutil: don't leak on statfiles error
Found using the power of the mighty eyeball.
liscju <piotr.listkiewicz@gmail.com> [Thu, 12 Nov 2015 12:44:15 +0100] rev 26981
histedit: extracts _isdirtywc function
Checking if working copy is dirty was done in few places, this
patch extracts it in _isdirtywc procedure.
Siddharth Agarwal <sid0@fb.com> [Mon, 16 Nov 2015 11:23:32 -0800] rev 26980
node: add 'nullhex', hex-encoded nullid
We're going to need this for upcoming changes, because the merge state stores
nodes as hex strings.
Siddharth Agarwal <sid0@fb.com> [Mon, 16 Nov 2015 11:45:35 -0800] rev 26979
filemerge: introduce class whose objects represent files not in a context
Most code is going to barf at the return values here (particularly from data
and size), so we restrict it to the filemerge code.
This is already somewhat supported via:
ctx.filectx(f, fileid=nullid)
Indeed, for add/add conflicts (ancestor doesn't have the file) we use precisely
that. However, that is broken in subtle ways:
- The cmp() function in filectx returns False (identical) for such a filectx
when compared to a zero-length file.
- size() returns 0 rather than some sort of value indicating that the file isn't
present.
- data() returns '' rather than some sort of value indicating that the file isn't
present.
Given the relatively niche use of such filectxes, this seems to be the simplest
way to fix all these issues.
Siddharth Agarwal <sid0@fb.com> [Mon, 16 Nov 2015 11:27:27 -0800] rev 26978
filectx: add isabsent method
This will indicate whether this filectx represents a file that is *not* in a
changectx. This will be used by merge and filemerge code to know about when a
conflict is a change/delete conflict.
While this is kind of hacky, it is the least bad of all the alternatives. Other
options considered but rejected include:
- isinstance(fctx, ...) -- not very Pythonic, doesn't support duck typing
- fctx.size() is None -- the 'size()' call on workingfilectxes causes a disk stat
- fctx.filenode() == nullid -- the semantics around filenode are incredibly
confusing. In particular, for workingfilectxes, filenode() is always None no
matter whether the file is present on disk or in either parent. Having different
behavior for None versus nullid in the merge code is just asking for pain.
Thanks to Pierre-Yves David for early review feedback here.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 22:37:51 -0800] rev 26977
filectx: allow custom comparators
We're going to introduce other sorts of filectxes very soon, and we'd like the
cmp method to function properly (i.e. commutatively) for them. The only way to
make that happen is for this cmp method to call into that specialized one if
that defines a custom comparator.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 23:01:36 -0800] rev 26976
debugmergestate: print out record type for files
We're going to add a separate record type for change/delete conflicts soon. We
need to make sure they get stored with the correct record type so that older
versions of Mercurial correctly abort when they see change/delete records.
Siddharth Agarwal <sid0@fb.com> [Sun, 15 Nov 2015 22:45:20 -0800] rev 26975
merge.applyupdates: don't return early if merge driver's conclude failed
Somewhat silly oversight -- this prevented the progress bar from being reset.
Laurent Charignon <lcharignon@fb.com> [Mon, 16 Nov 2015 17:15:36 -0800] rev 26974
convert: use repo._bookmarks.recordchange instead of repo._bookmarks.write
Before this patch, convert was using repo._bookmarks.write, a deprecated API
for saving bookmarks.
This patch changes the use of repo._bookmarks.write to
repo._bookmarks.recordchange.
Laurent Charignon <lcharignon@fb.com> [Mon, 16 Nov 2015 17:14:15 -0800] rev 26973
convert: indentation change to make the next patch more legible
We put the code to be indented in the next patch in a "if True:" block to make
it easier to review.
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Sun, 15 Nov 2015 20:27:27 +0530] rev 26972
strip: renaming local variables
Renaming local variables to be more precise, i want to store
a different list of bookmarks and it would be hard to
understand what marks represents in that change therefore
renaming it to repomarks. Renamed bookmarks(module)
to bookmarksmod as to free up bookmarks which will be
used when pluralizing bookmark.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Feb 2015 22:22:29 -0800] rev 26971
test-rename-merge2: make selected output less arbitrary
It's unclear why everything from the first 'updating:' line should be
ignored. The arbitrariness makes it confusing that changing the code
so e.g. the 'getting 8/f' line is printed later makes it disappear
completely from the ouput. The list of 'preserving x for resolve of y'
seems convered by the subsequent for loop in the test case. Perhaps
it's only copies that are of interests, so let's keep only that part.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Nov 2015 22:11:23 -0500] rev 26970
test-convert-git: drop a git warning that doesn't occur on Windows
I do see this on Linux with 1.7.7.6, but not on Windows with 1.9.5.msysgit.0.
Adding a (?) didn't work to conditionally ignore the line; I'm not sure if the
(glob) interferes with that.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Nov 2015 21:12:13 -0500] rev 26969
tests: fix globs for Windows
liscju <piotr.listkiewicz@gmail.com> [Sun, 15 Nov 2015 22:58:28 +0100] rev 26968
pull: return 255 value on update failure (issue4948) (BC)
Before this patch hg pull -u on UpdateAbort error returned
0 value to the system. This patch fixes this by reraising
UpdateAbort with updated error msg.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Nov 2015 10:19:11 -0800] rev 26967
filemerge: remove leading space from " no tool found..."
I could not find or see a reason for the unusual formatting. The lines
following it in the test cases are not indented.
Yuya Nishihara <yuya@tcha.org> [Mon, 09 Nov 2015 22:31:01 +0900] rev 26966
test-encoding: enable fuzz testing of utf8b roundtrip
This test was written by David R. MacIver <david@drmaciver.com> at the London
sprint. We can enable it as the bug in utf8b encoder/decoder has been fixed.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 17:42:03 +0900] rev 26965
import-checker: reset context to verify convention in function scope
I got the following error by rewriting hgweb/webcommands.py to use
absolute_import. It is false-positive because the import line appears in
"help" function:
hgweb/webcommands.py:1297: higher-level import should come first: mercurial
This patch makes the import checker aware of the function scope and apply
rules recursively.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 00:37:22 +0900] rev 26964
import-checker: allow import of child modules from package root
I got the following error by rewriting hgweb/__init__.py to use
absolute_import, which is obviously wrong:
Import cycle: mercurial.hgweb.__init__ -> mercurial.hgweb.__init__
"from foo import bar" should not make a cycle if "foo" is a package and
if "bar" is a module or a package. On the other hand, it should be detected
as a cycle if "bar" is a non-module name. Both cases are doc-tested already,
so this patch does not add new doctest.
Matt Mackall <mpm@selenic.com> [Mon, 02 Nov 2015 17:17:33 -0600] rev 26963
encoding: extend test cases for utf8b
This adds a round-trip helper and a few tests of streams that could
cause synchronization problems in the encoder.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 22:43:09 -0800] rev 26962
merge: make 'cd' and 'dc' actions store the same arguments as 'm'
We're going to treat these conflicts similarly to merge conflicts, and this
change to the way we store things in memory makes future code a lot simpler.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 14:24:22 -0800] rev 26961
merge: stop emptying out 'cd' and 'dc' actions
(1) These aren't currently read from anywhere, so emptying this out is
pointless.
(2) These *will* be read from later in upcoming patches, and not emptying
them out will be important then.
liscju <piotr.listkiewicz@gmail.com> [Sun, 15 Nov 2015 22:18:48 +0100] rev 26960
rebase: add returning value from pullrebase function
So far pullrebase function has always returned None value, no matter
what orig function returned. This behaviour made impossible for
pull to change returned value from mercurial process (it has always
ended with 0 value by default). This patch makes pullrebase returning
with returned value from orig.
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 15:56:02 -0800] rev 26959
resolve: restore .orig only after merge is fully complete (issue4952)
Previously, we'd restore the .orig file after the premerge is complete but
before the merge was complete. This would lead to the .orig file potentially
containing merge conflict markers in it, as a leftover from the last merge
attempt.
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Nov 2015 22:32:00 +0800] rev 26958
monoblue: add a space to separate navigation links in file log footer
Before: '(0)-60tip', after: '(0) -60 tip'.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Nov 2015 13:14:03 -0800] rev 26957
merge: move messages about possible conflicts a litte earlier
I actually wanted to reduce the amount of code around the call to
applyupdates(), so I tried moving these warnings a little earlier, and
I think it makes the output make a little more sense (see changes to
test cases).
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 15:46:06 +0900] rev 26956
import-checker: include lineno in warning message
This makes it easy to look for imports in function scope.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 15:39:25 +0900] rev 26955
import-checker: extract function to generate a formatted warning
This is the stub to embed lineno. See the next patch for details.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 13:53:05 +0900] rev 26954
import-checker: make it executable for convenience
Matt Harbison <matt_harbison@yahoo.com> [Mon, 09 Nov 2015 17:20:50 -0500] rev 26953
test-fileset: glob the updated file count for Windows stability
Some of the prior changes are platform dependent, involving symlinks, exec bits
and non portable names. An update 10 lines above also globbed this value to
avoid differences, since this line isn't of particular interest- the filesets
are.