Fri, 21 Nov 2014 11:44:57 -0800 largefiles: don't clobber merge action message with user message
Martin von Zweigbergk <martinvonz@google.com> [Fri, 21 Nov 2014 11:44:57 -0800] rev 23470
largefiles: don't clobber merge action message with user message The message in the action is used for debugging and should not be the same as the question presented to the user. Use a different variable for the user message, so the 'msg' variable already in scope does not get overwritten.
Tue, 02 Dec 2014 20:31:19 -0800 bookmarks: factor out repository lookup from writing bookmarks file
Ryan McElroy <rmcelroy@fb.com> [Tue, 02 Dec 2014 20:31:19 -0800] rev 23469
bookmarks: factor out repository lookup from writing bookmarks file This will allow the share extension to extend bookmarks functionality to share bookmarks between repositories.
Thu, 04 Dec 2014 12:02:02 -0500 parsers: ensure revlog index node tree is initialized before insertion
Mike Edgar <adgar@google.com> [Thu, 04 Dec 2014 12:02:02 -0500] rev 23468
parsers: ensure revlog index node tree is initialized before insertion Currently, the revlog index C implementation assumes its node tree will be initialized before a new element is inserted by revnum. For example, revlog.py executes 'self.index.insert(-1, e)' in _addrevision(). This is only safe because the node tree has been initialized by a "node in self.nodemap" check made in addrevision(). (For context, this was discovered while developing an experimental revlog mixin which stores "elided nodes" via a separate code path from _addrevision(); that new code path segfaults without this patch.)
Wed, 03 Dec 2014 22:56:42 +0900 revset: add 'only' to DoS-safe symbols
Yuya Nishihara <yuya@tcha.org> [Wed, 03 Dec 2014 22:56:42 +0900] rev 23467
revset: add 'only' to DoS-safe symbols There is no reason to disable it in hgweb because the same query can be written without using 'only()'.
Wed, 03 Dec 2014 22:52:54 +0900 revset: move 'only' so that functions are sorted alphabetically
Yuya Nishihara <yuya@tcha.org> [Wed, 03 Dec 2014 22:52:54 +0900] rev 23466
revset: move 'only' so that functions are sorted alphabetically
Tue, 02 Dec 2014 22:42:41 -0500 tests: drop unnecessary glob that causes a warning on Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 02 Dec 2014 22:42:41 -0500] rev 23465
tests: drop unnecessary glob that causes a warning on Windows This was triggered by 3778884197f0.
Wed, 03 Dec 2014 10:01:24 -0800 merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Dec 2014 10:01:24 -0800] rev 23464
merge: add test with conflicting file and remote directory rename Changset 88629daa727b (merge: demonstrate that directory renames can lose local file content, 2014-12-02) should clearly have added the reverse version of the test: where the remote side renamed a directory, added a new file in that directory, and the local directory added a conflicting file in the source directory. Add such a test now, and also touch up the ones already added slightly (e.g. 'local' was a stupid value for content that can be on either side of a merge).
Wed, 03 Dec 2014 15:03:29 -0800 graft: use a real conflict for the tests
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Dec 2014 15:03:29 -0800] rev 23463
graft: use a real conflict for the tests One of the graft tests grafts a changeset that changes a file's content from 'a' to 'b' onto a branch that has changed the file's content from 'a', via 'b', and then back to 'a' again. To prepare for not considering this a file in need of merging, let's use 'c' as the file's new content to make sure it has to be considered conflicting. There's a second similar case further down where an ancestor is grafted. Make sure that is also considered a conflict.
Wed, 03 Dec 2014 14:33:29 -0800 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com> [Wed, 03 Dec 2014 14:33:29 -0800] rev 23462
add: use lexists so that broken symbolic links are added This restores the add behavior prior to d8cdd46f426d and matches the behavior of addremove.
Tue, 02 Dec 2014 05:12:59 +0100 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 23461
rebase: avoid redundant repo[rev].rev() - just keep working in rev space
Tue, 02 Dec 2014 05:12:59 +0100 rebase: always store rev in state, also when collapsing
Mads Kiilerich <madski@unity3d.com> [Tue, 02 Dec 2014 05:12:59 +0100] rev 23460
rebase: always store rev in state, also when collapsing
Tue, 02 Dec 2014 05:12:53 +0100 rebase: clarify naming of variables holding node hashes - don't call them rev
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
Thu, 27 Nov 2014 00:24:25 -0800 bookmarks: factor out bookmark file opening for easier extensibility
Ryan McElroy <rmcelroy@fb.com> [Thu, 27 Nov 2014 00:24:25 -0800] rev 23458
bookmarks: factor out bookmark file opening for easier extensibility
Tue, 02 Dec 2014 17:19:20 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 02 Dec 2014 17:19:20 -0600] rev 23457
merge with stable
Tue, 18 Nov 2014 22:18:05 -0800 diff: explicitly honor all diffopts
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.
Tue, 18 Nov 2014 22:16:46 -0800 annotate: explicitly only honor whitespace 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.
Tue, 18 Nov 2014 21:47:47 -0800 notify: explicitly honor all diffopts
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.
Tue, 18 Nov 2014 22:13:05 -0800 jsonchangeset: don't honor whitespace and format-changing diffopts
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.
Tue, 18 Nov 2014 21:49:05 -0800 transplant: don't honor whitespace and format-changing diffopts
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.
Tue, 18 Nov 2014 21:38:19 -0800 hgk: don't honor whitespace and format-changing diffopts
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.
Tue, 18 Nov 2014 17:36:24 -0800 patchbomb: don't honor whitespace and format-changing diffopts (BC)
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.
Wed, 26 Nov 2014 11:45:21 -0800 merge: add more thorough tests for --force
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.
Wed, 26 Nov 2014 10:25:27 -0800 merge: display modify/delete conflict prompts in sorted order
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.
Sun, 09 Nov 2014 00:10:29 -0800 generate-working-copy-states: accept depth arguments on command line
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.
Sat, 08 Nov 2014 23:37:54 -0800 generate-working-copy-states: generalize for depth
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.
Sat, 29 Nov 2014 14:39:33 -0800 generate-working-copy-states: make 'tracked' a string
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.
Tue, 02 Dec 2014 13:28:07 -0800 merge: demonstrate that directory renames can lose local file content
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.
Fri, 28 Nov 2014 03:09:19 +0100 mq: drop updateheader - inserthgheader and insertplainheader is enough
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Nov 2014 03:09:19 +0100] rev 23443
mq: drop updateheader - inserthgheader and insertplainheader is enough
Fri, 28 Nov 2014 03:09:06 +0100 mq: smarter handling of plain headers
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.
Sun, 30 Nov 2014 23:30:31 -0500 largefiles: drop the override for 'fetch'
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.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip