Mads Kiilerich <madski@unity3d.com> [Tue, 02 Dec 2014 05:12:59 +0100] rev 23461
rebase: avoid redundant repo[rev].rev() - just keep working in rev space
Mads Kiilerich <madski@unity3d.com> [Tue, 02 Dec 2014 05:12:59 +0100] rev 23460
rebase: always store rev in state, also when collapsing
Mads Kiilerich <madski@unity3d.com> [Tue, 02 Dec 2014 05:12:53 +0100] rev 23459
rebase: clarify naming of variables holding node hashes - don't call them rev
Ryan McElroy <rmcelroy@fb.com> [Thu, 27 Nov 2014 00:24:25 -0800] rev 23458
bookmarks: factor out bookmark file opening for easier extensibility
Matt Mackall <mpm@selenic.com> [Tue, 02 Dec 2014 17:19:20 -0600] rev 23457
merge with stable
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Nov 2014 22:18:05 -0800] rev 23456
diff: explicitly honor all diffopts
'hg diff' should naturally honor all diffopts.
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Nov 2014 22:16:46 -0800] rev 23455
annotate: explicitly only honor whitespace diffopts
The whitespace ones are the only ones the annotate logic cares about anyway, so
there's no visible impact.
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Nov 2014 21:47:47 -0800] rev 23454
notify: explicitly honor all diffopts
The notify output doesn't seem to be parseable anyway, what with the maxdiff
config option. Plus it is designed mainly for servers where hopefully the
admins are doing sensible things.
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Nov 2014 22:13:05 -0800] rev 23453
jsonchangeset: don't honor whitespace and format-changing diffopts
JSON is meant to be parsed by computers, and format changes can break them.
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Nov 2014 21:49:05 -0800] rev 23452
transplant: don't honor whitespace and format-changing diffopts
transplant uses diff purely internally.
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Nov 2014 21:38:19 -0800] rev 23451
hgk: don't honor whitespace and format-changing diffopts
The diff-tree command is a plumbing command in Git, which means it is expected
to have a stable output format. Ensure that our output is stable too.
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Nov 2014 17:36:24 -0800] rev 23450
patchbomb: don't honor whitespace and format-changing diffopts (BC)
The whitespace diffopts break lossless transmission, and the format-changing
ones make import harder. We expect parsers to be able to read git-style diffs,
though.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 26 Nov 2014 11:45:21 -0800] rev 23449
merge: add more thorough tests for --force
With generate-working-copy-states.py generalized to support
arbitrarily many changesets, we can use it for generating test cases
for merge: use one changeset each for base, remote and local. With the
various working copy states, this is a total of 104 cases.
The first candidate for additional testing is 'hg merge --force'. Even
though the force option is deprecated, it is convenient for testing
because it can be tested without first needing to revert any
changes. Except for the lack of checking for uncommitted changes, it
differs in only a few cases from unforced merge.
The new tests cover all the cases in the existing test-merge-force.t,
except for the unforced merge case, which is covered in several other
files anyway, so nothing remains of the file after this patch.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 26 Nov 2014 10:25:27 -0800] rev 23448
merge: display modify/delete conflict prompts in sorted order
The order is determined by manifest.diff(), which currently is not
sorted. There are currently no tests for this, but we will soon add
some that would be flaky without this patch.
Martin von Zweigbergk <martinvonz@google.com> [Sun, 09 Nov 2014 00:10:29 -0800] rev 23447
generate-working-copy-states: accept depth arguments on command line
Add a parameter to generate-working-copy-states.py that indicates
how many changesets are wanted. This number impacts all the
subcommands. The current 'filelist' subcommand becomes 'filelist 2',
the current 'base' and 'parent' subcommands become 'state 2 1' and
'state 2 2' respectively, while 'wc' becomes 'state 2 wc'.
See earlier patch for motivation.
Martin von Zweigbergk <martinvonz@google.com> [Sat, 08 Nov 2014 23:37:54 -0800] rev 23446
generate-working-copy-states: generalize for depth
The script can currently generate filenames and contents for exactly
two changesets plus the working copy. For some tests (e.g. of plain
dirstate status), only one changeset is needed, while for others
(e.g. merge), three changesets are needed. Let's prepare for such
tests by generalizing the code for any number of changesets.
Martin von Zweigbergk <martinvonz@google.com> [Sat, 29 Nov 2014 14:39:33 -0800] rev 23445
generate-working-copy-states: make 'tracked' a string
The only places the 'tracked' variable is only used is where it's
converted to a string, so let's simplify by using the string value
directly.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 02 Dec 2014 13:28:07 -0800] rev 23444
merge: demonstrate that directory renames can lose local file content
When a directory has been renamed on the local branch and a file has
been added in the old location on a remote branch, we move that new
file to the new location. Unfortunately, if there is already a file
there, we overwrite it with the contents from the remote branch. For
untracked local files, we should probably abort, and for tracked local
files, we should merge the contents. To start with, let's add a test
to demonstrate the breakage. Also note that while files merged in from
a remote branch are normally (and unintuitively) reported as modified,
these files are reported as added.
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Nov 2014 03:09:19 +0100] rev 23443
mq: drop updateheader - inserthgheader and insertplainheader is enough
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Nov 2014 03:09:06 +0100] rev 23442
mq: smarter handling of plain headers
6333412245ec and 5ccced6eab0b fixed issue4453 with a simple insertplainheader
function that fixed the regression but didn't make the implementation more
stable.
Now we introduce plain header handling similar to how we handle hg patches. The
whole header is scanned for fields to update while determining the best
position for inserting the field if it is missing. It also makes sure there is
an empty line between headers and body.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 30 Nov 2014 23:30:31 -0500] rev 23441
largefiles: drop the override for 'fetch'
The fetch extension has been calling cmdutil.bailifchanged() since a014fdc97154,
so this is redundant. Add test coverage to prevent regression. It doesn't look
like there is any testing for fetch with largefiles.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 02 Dec 2014 11:06:38 -0800] rev 23440
rebase: ignore negative state when updating back to original wc parent
The state mapping also contains some magic negative values (detached
parent, ignored revision). Blindly reading the state thus lead to
unfortunate usage of the negative value as an update destination. We
now filter them out.
We do a minor alteration of the test to catch this.
Eric Sumner <ericsumner@fb.com> [Fri, 21 Nov 2014 15:50:38 -0800] rev 23439
bundle2-push: provide transaction to reply unbundler
This patch series is intended to allow bundle2 push reply part handlers to
make changes to the local repository; it has been developed in parallel with
an extension that allows the server to rebase incoming changesets while applying
them.
This diff adds an experimental config option "bundle2.pushback" which provides
a transaction to the reply unbundler during a push operation. This behavior is
opt-in because of potential security issues: the response can contain any part
type that has a handler defined, allowing the server to make arbitrary changes
to the local repository.
Eric Sumner <ericsumner@fb.com> [Mon, 24 Nov 2014 16:04:44 -0800] rev 23438
bundle2.processbundle: let callers request default behavior
This patch series is intended to allow bundle2 push reply part handlers to
make changes to the local repository; it has been developed in parallel with
an extension that allows the server to rebase incoming changesets while applying
them.
The default transaction getter for processbundle is a private function that
raises an exception; this diff lets calling code pass None as the transaction
getter to explicitly request this default behavior.
The next diff will check a config option to determine whether to provide a
transaction to the reply bundle processor. If one shouldn't be provided, the
code needs a way to specify that the default behavior should be used.