wireprotocol: use visibleheads as reference while unbundling (issue 3303)
The `repo` object here is *always* local. Using `repo.heads()` ensure we will
reject push if any secret changeset exists.
During discovery, `visibleheads` were sent to the peer. So we can only expect it
to send us `visibleheads` back. If any secret changeset exists::
visibleheads != repo.heads()
This fix server side part of issue 3303 when pushing over the wire.
rebase: preserve mq series order, guarded patches (
issue2849)
The previous code was rebasing an applied series like:
patch1 +guarded
patch2
patch3 +guarded
patch4
patch5 +guarded
into:
patch2
patch4
patch1 +guarded
patch3 +guarded
patch5 +guarded
Reported by Lars Westerhoff <lars.westerhoff@newtec.eu>
Also rename mq.series_dirty into mq.seriesdirty, missed by
599a72895c0d, and
without effect since mq.qimport() was setting it already.
subrepo/svn: improve error message on missing files
From:
abort: failed to commit svn changes
to:
abort: cannot commit missing svn entries
subrepo/svn: abort on commit with missing file (
issue3029)
Previous code was printing a traceback because it expected some error output
from svn. But sometimes our definition of "changed" differs with the subversion
one. For instance, subversion ignores missing files when committing. And when
there are only missing files, svn commit will be a successful no-op with no
output. Still, we should stick to our definition including missing files in
changes as doing otherwise could cause surprising behaviour for the user.
doc: flatten description of 'matching()' predicate to be formatted well
current description of 'matching()' revset predicate can't be
formatted well on "hg help revset" output.
each descriptions for revset predicates (or something like them) are
split-ed into lines, and spaces on left side of them are stripped
before minirst processing. so, bullet list can't be nested.
this patch just flattens description of 'matching()' predicate to be
formatted well.
subrepo: fix default implementation of forget() (
issue3404)
test-subrepo-svn: fix non-determinism
The test was randomly failing with:
--- /tests/test-subrepo-svn.t
+++ /test-subrepo-svn.t.err
@@ -273,10 +273,10 @@
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd t/s
$ svn status
- ? * a (glob)
- X * externals (glob)
- ? * f1 (glob)
- ? * f2 (glob)
+ ? f1
+ ? f2
+ ? a
+ X externals
Performing status on external item at 'externals'* (glob)