Commit Graph

593 Commits

Author SHA1 Message Date
Christian Delahousse
165bf7ee63 morestatus: make morestatus not rely on mergestate for merge state
Summary:
The extra check for clean merge vs conflicted merge isn't needed. They both have
two parents

Test Plan: Ran the tests.

Reviewers: rmcelroy, #sourcecontrol, durham

Reviewed By: durham

Subscribers: michalburger1

Differential Revision: https://phabricator.fb.com/D2587459

Tasks: 8867673

Signature: t1:2587459:1445982486:0b7515558e2d57d4f0a949641b846036f82ec1e0
2015-10-27 14:48:34 -07:00
Christian Delahousse
6c94249d6f fbamend: fix --logfile for hg amend
Summary:
Fbamend broke logfile. fbamend tends to write state to opts['message'] even
if -m or --message was not used at the cmdline. If you inputted a logfile
cmd arg, cmdutil.logmessage would see both opts['message'] and opts['logfile']
as populated and throw an abort exception. This is a workaround.

Test Plan: See test.

Reviewers: rmcelroy

Differential Revision: https://phabricator.fb.com/D2586779

Tasks: 7434543
2015-10-27 14:37:20 -07:00
Christian Delahousse
9f711482fb fbamend: prevent hg commit --rebase/--fixup without --amend
Summary: Nuff said

Test Plan: Test.

Reviewers: durham, #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2583425

Tasks: 8854516
2015-10-26 16:19:40 -07:00
Christian Delahousse
60dabbf5ef fbamend: enable interactive mode
Summary: fbamend did not enable interactive mode for hg commit --amend -i and hg amend -i.

Test Plan: See the tests.

Reviewers: #sourcecontrol, rmcelroy, durham

Reviewed By: durham

Subscribers: durham, rmcelroy

Differential Revision: https://phabricator.fb.com/D2578231

Tasks: 7695310

Signature: t1:2578231:1445894542:4b633377b0b2157cc4e5244dc07c0785ccca73c1
2015-10-23 17:00:56 -07:00
Durham Goode
410ca5052a reflog: fix devel-warn abotu dirstate.write 2015-10-26 17:51:36 -07:00
Durham Goode
4cecb62eb2 Update tests 2015-10-26 15:10:59 -07:00
stash
26e3ddbdb0 Make commit --amend and amend set current date by default
Summary:
Previously commit --amend and amend retained the commit date from the original. Now it uses current time.
Added config option 'tweakdefaults.amendkeepdate' to save original date in graft.

Test Plan:
1) ./run-tests.py test-tweakdefaults.t

2) Add the following to ~/.hgrc


  [extensions]
  tweakdefaults = PATH_TO_tweakdefaults.py
  fbamend = PATH_TO_fbamend.py


Create repo



  hg init

Make a commit with date 0


  echo 1 >> test.txt && hg add test.txt && hg commit -d "0 0" -m "initial commit"


Amend a commit via "amend" command and check the date.




  echo 1 >> test.txt && hg amend && hg log -l 1


Do the same for "commit --amend" command


3) Add the following to ~/.hgrc



  [tweakdefaults]
  amendkeepdate = True

and repeat actions from step 2) (both for "commit --amend" and "amend"). Date should stay the same.

Reviewers: rmcelroy, #sourcecontrol, durham

Reviewed By: durham

Subscribers: durham, balazsbalazs

Differential Revision: https://phabricator.fb.com/D2570763

Tasks: 8770194

Signature: t1:2570763:1445539148:66b8b00ed51d486d39203dad830f4a50cdc8060d
2015-10-22 15:50:59 -07:00
stash
f99982a12b Replace KeyError with AttributeError
Summary:
When there is no method in the module 'AttributeError' is raised (at least on python 2.6.6)

Leave them both

Test Plan:
run-tests.py test-tweakdefaults.py



Reviewers: rmcelroy, durham, prologic

Reviewed By: durham, prologic

Subscribers: balazsbalazs

Differential Revision: https://phabricator.fb.com/D2572948

Signature: t1:2572948:1445564850:59bc6f030661f51b40965ec34d396a39d6e3f9ac
2015-10-22 15:40:42 -07:00
James Mills
fabaaca807 tweakdefaults: Set default nooprebase behavior and fix config checks
Summary: Makes the default behavior of nooprebase true.

Test Plan: ~/hg/tests/run-tests.py test-tweakdefaults.t

Reviewers: rmcelroy, durham

Reviewed By: durham

Differential Revision: https://phabricator.fb.com/D2570362

Signature: t1:2570362:1445538341:f62d29530fe5516d666fd496107dd314cdd9fae7
2015-10-22 08:04:15 -07:00
James Mills
c6bf360c5c Use setuptools if available.
Summary: Because working in a virtualenv w/ setuptools makes things a little easier :)

Test Plan: workon hg && python setup.py develop

Reviewers: rmcelroy, durham

Reviewed By: durham

Differential Revision: https://phabricator.fb.com/D2570341

Signature: t1:2570341:1445542319:0f30cb4aefb7c59753decda4535ca335a4f423cc
2015-10-22 08:02:30 -07:00
stash
d5c12360a4 Make graft set current date by default
Summary:
Previously graft retained the commit date from the original. Now it uses current time.
Added config option 'tweakdefaults.graftkeepdate' to save original date in graft.

Test Plan:
1) ./run-tests.py test-tweakdefaults.t

2)
Add the following to ~/.hgrc


  [extensions]
  tweakdefaults = PATH_TO_tweakdefaults.py



Create two bookmarks: test_1 and test_2, pointing to different commits

Graft commit from test_2 to test_1

  hg up test_1 && hg graft test_2

Check the date in the log - it should be different from the date of test_2 commit


  hg log -l 1


Add the following to ~/.hgrc



  [tweakdefaults]
  graftkeepdate = True



Strip latest test_1 commit



  hg strip test_1


Again do the graft



  hg up test_1 && hg graft test_2


and verify the commit date: should be the same as in test_2 commit

Reviewers: #sourcecontrol, rmcelroy, durham

Reviewed By: durham

Subscribers: balazsbalazs

Differential Revision: https://phabricator.fb.com/D2566177

Tasks: 8770194

Signature: t1:2566177:1445539026:2cd0b6b5b04247c17942f787d8921215def8e3fe
2015-10-21 14:26:15 -07:00
Christian Delahousse
980bc5ef4f reflogs: make reflog track remotebookmarks in remotenames
Test Plan: Added tests and ran them

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: durham

Differential Revision: https://phabricator.fb.com/D2566135

Tasks: 7526543

Signature: t1:2566135:1445487237:0ffec50e7cf23c5f3e06e147c59151e485602c2a
2015-10-21 11:45:32 -07:00
Christian Delahousse
93ef580a25 morestatus: include clean merge state, refactor state detection
Summary:
I was mostly taking into consideration conflicted states when I wrote this
extension. That means that a repo could be in a clean merge state, that is,
where the working copy has two parents and no conflicted files, and morestatus
wouldn't display it's extra status output.

Test Plan: See new test

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: akushner

Differential Revision: https://phabricator.fb.com/D2567597

Tasks: 8802101

Signature: t1:2567597:1445468752:429a63dda5a7269841aee16631049b937c13360e
2015-10-21 15:20:24 -07:00
Christian Delahousse
3bdbe85126 unittest: fixing merge conflict output in tests
Summary:
Some changes in core made the output for merge conflicts change. I just made
certain tests reflect that.

Test Plan: ran the tests

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy

Differential Revision: https://phabricator.fb.com/D2566237

Tasks: 8797924

Signature: t1:2566237:1445456815:d5a1560bd3421de6b9955e44a8dd2698f0462f51
2015-10-21 12:11:44 -07:00
Cecile Berillon
37116e0862 Adding automatically 'move metadata' if a move is detected
Summary:
Looks for similar files between the removed/missing and added/unknown
		committed files

Test Plan:
Tests are done without 'commit' (testmode option)
	mv + add + rm with several thresholds of similarity
						changing the threshold of similarity
    mv alone
    mv + add + rm but not in committed files

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: durham, mitrandir, pyd, cdelahousse

Differential Revision: https://phabricator.fb.com/D2492693

Tasks: 8501037

Signature: t1:2492693:1445396857:a40d0aeb3c6592b1c8d2a93d089e4fdc46bde711
2015-09-30 09:28:40 -07:00
Christian Delahousse
987103cf0b tweakdefaults: reuse commit message flag
Summary: Added the --reuse-message/-M flag to `hg commit` via tweak defaults

Test Plan: See the tests

Reviewers: #sourcecontrol, durham, rmcelroy

Reviewed By: rmcelroy

Differential Revision: https://phabricator.fb.com/D2559541

Tasks: 8721257

Signature: t1:2559541:1445364124:db69a1b08defc0a84f314019ce1a01174e7006d3
2015-10-19 23:55:23 -07:00
James Mills
e1da7805e4 tweakdefaults: Setup a nooprebase behaviour for the rebase ext
Summary:
Adds configuration to .hgrc such that setting nooprebase = True
in the tweakdefaults section changes the behaviour of a noop
rebase such that the exit status is 0 (instead of 1).

Test Plan: See: https://phabricator.fb.com/P20083985

Reviewers: rmcelroy

Reviewed By: rmcelroy

Subscribers: dancol

Differential Revision: https://phabricator.fb.com/D2557089

Tasks: 8694501

Signature: t1:2557089:1445447745:fc35600d53f797d7242c2fcff9fac42867d7b651
2015-10-19 14:05:38 -07:00
James Mills
75ccf5a2b8 revlog: Fix a TypeError with recorddirstateparents (missing tr in signature)
Summary: revlog: Fix a TypeError with recorddirstateparents (missing tr in signature)

Test Plan: Various hg commands don't bomb out

Reviewers: rmcelroy

Reviewed By: rmcelroy

Differential Revision: https://phabricator.fb.com/D2556418

Signature: t1:2556418:1445294251:4a61a6a03895e18fbec1cb600cceefcf524f76e6
2015-10-19 12:09:18 -07:00
Durham Goode
0a0b341080 pushrebase: add option for rewriting dates
Summary:
It's a nice property to have commits have increasing timestamps. Since we're
already rewriting commits during pushrebase, we can rewrite the timestamp to the
push time.

Test Plan: Added a test

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2554422
2015-10-17 18:59:46 -07:00
Durham Goode
b94a656fd6 Backed out changeset fdf03d333887 2015-10-16 12:30:57 -07:00
Durham Goode
fd063c11c1 Backed out changeset b4a7055ecf04 2015-10-16 12:30:38 -07:00
Mateusz Kwapich
7ebb123c54 catnotate: add whole extension
Summary:
Catnotate is a version of hg cat with output annotated with file name and line
number. Such output is very useful when running hg cat on multiple files
(for example in commit hooks).

Test Plan: unit tests

Reviewers: #sourcecontrol, pyd, mpm, durham, rmcelroy

Reviewed By: rmcelroy

Differential Revision: https://phabricator.fb.com/D2497470

Signature: t1:2497470:1444842798:9192ef3ef1603d068e7f38777def81a43bed0414
2015-10-16 02:45:27 -07:00
Siddharth Agarwal
e49d9a23dc initial mergedriver implementation 2015-10-15 00:37:45 -07:00
Artur Beznosyuk
85f5b6680f Added difftool command to githelp.
Summary: Added translation for 'git difftool' command. There is no direct command enabled by default, but the user could use extdiff extension, so I added basic info about enabling it.

Test Plan: run 'hg githelp -- git difftool'. For testing on local machine follow the instructions here https://our.intern.facebook.com/intern/wiki/Mercurial/ContributingToInternalHg/

Reviewers: #sourcecontrol, rmcelroy, cdelahousse

Reviewed By: rmcelroy

Subscribers: donhusa

Differential Revision: https://phabricator.fb.com/D2542230

Tasks: 7942323

Signature: t1:2542230:1444863661:edea8d760c4a8e828966bf79a9addacc932b38d0
2015-10-14 12:25:14 -07:00
Durham Goode
5f2359cd38 writecg2: remove entry from setup.py 2015-10-13 17:12:40 -07:00
Durham Goode
60c8c6ea8b writecg2: delete the writecg2 extension
Summary:
According to pyd, Mercurial core now writes bundle2 bundles when the repo is
generaldelta, so we don't need this anymore. Plus we're using evolve now so
we're not producing many bundles anyway.

The motivation for disabling this is that the code broke due to changes from
upstream, and I was too lazy to fix it.

Test Plan: nope

Reviewers: pyd, ericsumner, #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2538749
2015-10-13 16:35:52 -07:00
Durham Goode
49e649fba6 pushrebase: add pre-lock hook
Summary:
This adds a hook before we take the lock that allows us to run some expensive
hooks without blocking the entire repo. This is useful for hooks that check the
contents of the bundle for certain info (like conflict markers), that won't be
affected by rebases.

Test Plan:
Added a test. Verified it passed when hg had lazy locks enabled for
unbundle, and failed with mercurial did not have lazy locks for unbundle.

Reviewers: pyd, #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2511561
2015-10-05 18:56:46 -07:00
qdou
befd0d1a9c typo-fix
changed reseting to resetting in reset.py and test-reset.t

Summary: changed reseting to resetting in reset.py and test-reset.t

Test Plan: checked output and run test to ensure "reseting" is changed to "resetting"

Reviewers: cdelahousse, #sourcecontrol

Subscribers: siqi

Differential Revision: https://phabricator.fb.com/D2535178

Tasks: 8581478
2015-10-12 19:53:04 -07:00
Cecile Berillon
50d5a2d718 Moved merge comment to hint
Summary: Moved merge comment to hint in Abort

Test Plan: test output

Reviewers: rmcelroy

Differential Revision: https://phabricator.fb.com/D2522817

Tasks: 8593074
2015-10-08 11:32:39 -07:00
Christian Delahousse
70b85f9c12 [morestatus] add helpful message to status when in bisect
Summary:
A continuation D2502125. Add more helpful output to hg status when the user is
in a bisect state.

Example output


  10/07 17:43 cdelahousse@dev4253 ~/local/clearmereg/testrepos/states/bisect
  $ hg status

  # The repository is in an unfinished *bisect* state.
  # To mark the commit good:       hg bisect --good
  # To mark the commit bad:        hg bisect --bad
  # To abort:                      hg bisect --reset

Test Plan: Tests have been updated

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: akushner

Differential Revision: https://phabricator.fb.com/D2520493

Tasks: 8563305

Signature: t1:2520493:1444288081:5da20016aaaaff77db24ecb01c404b0e11aeeb7a
2015-10-07 17:40:42 -07:00
Christian Delahousse
b5ee3f4aed [morestatus] messages in status for histedit, graft, unshelve, merge states
Summary:
Continuation of D2502125. Let's help people when they're in a wierd states by
displaying a helpful message below the output of `hg status`

Example output:
  10/07 16:53 cdelahousse@dev4253 ~/local/clearmereg/testrepos/states/merge
  $ hg status
  M a

  # The repository is in an unfinished *merge* state.
  # Unresolved merge conflicts:
  #
  #     a
  #
  # To mark files as resolved:  hg resolve --mark FILE
  # To continue:                hg commit
  # To abort:                   hg update --clean .

For more example output, see the tests

Test Plan: See tests: `tests/test-morestatus.t`

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: akushner

Differential Revision: https://phabricator.fb.com/D2520272

Tasks: 8563305

Signature: t1:2520272:1444287977:b90b747538754ef4f4f0f8fab3e56f3aa288d3e5
2015-10-07 17:03:17 -07:00
Cecile Berillon
89beed4ce9 Disabling rollback in tweakdefaults
Summary: Disabling rollback in tweakdefaults to replace the hook

Test Plan: testing the message

Reviewers: #sourcecontrol, rmcelroy

Differential Revision: https://phabricator.fb.com/D2515138

Tasks: 8578898
2015-10-06 16:10:24 -07:00
Christian Delahousse
4b30d6677c [morestatus] more helpful status for rebase
Summary:
If a user gets stuck in a stopped rebase, give some details to the user when
they run `hg status` about how to move forward.

Let's see if we can get some bike shedding done on one command.

Notes on behaviour:
* it there exists any unresolved conflicts, no matter, they'll be shown.
* there is no way to only show what state the user is in (and not the conflicts). You either turn more status on or off.

Example for rebase:

  10/05 19:34 cdelahousse@dev4253 ~/local/clearmereg/testrepos/states/rebasestate
  $ hg status
  M a

  # The repository is in an unfinished *rebase* state.
  # Unresolved merge conflicts:
  #
  #     a
  #
  # To mark files as resolved:  hg resolve --mark FILE
  # To continue:                hg rebase --continue
  # To abort:                   hg rebase --abort


Repo in rebase state after the all files have been resolved:

  $ hg status
  M a

  # The repository is in an unfinished *rebase* state.
  # No unresolved merge conflicts
  # To continue:                hg rebase --continue
  # To abort:                   hg rebase --abort

Test Plan: See tests

Reviewers: #sourcecontrol, rmcelroy, durham

Reviewed By: durham

Subscribers: dancol, pyd, akushner

Differential Revision: https://phabricator.fb.com/D2502125

Tasks: 8563305

Signature: t1:2502125:1444189728:d6abf28f09bcc0360628497db8d896025967827f
2015-10-01 21:24:43 -07:00
Durham Goode
c093153d86 perftweaks: fix case collision check 2015-10-07 12:29:56 -07:00
Cecile Berillon
0272f0d7ec Disabling merge in tweakdefaults
Summary: Disabling merge in tweakdefaults to replace the hook

Test Plan: enable, disabled, disabled and meaasge modified

Reviewers: #sourcecontrol, rmcelroy

Differential Revision: https://phabricator.fb.com/D2515407

Tasks: 8593074
2015-10-06 16:39:18 -07:00
Christian Delahousse
5112a69d61 adding more status to setup.py 2015-10-06 14:04:01 -07:00
Durham Goode
1bd2986d26 pushrebase: fix order manipulation
Summary:
The way pushrebase was changing the extension load order doesn't work if another
extension replaced the extension._order list. This patch fixes it.

Test Plan: Ran the tests

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.fb.com/D2493153
2015-09-29 21:32:02 -07:00
Durham Goode
a92b5a9582 pushrebase: fix tests 2015-10-05 19:20:15 -07:00
Christian Delahousse
cc9035e370 [status] Make status show what state the repo is in
Summary:
This is an MVP to give the user more information about the state of the repo. We'll grow the functionality in other diffs.

 for example, if the repo is in a state after a stalled graft, then hg status outputs a bit more

  $ hg status
   M a
   ? a.orig
   # The repository is in an unfinished graft state.

Test Plan: See the tests.

Reviewers: #sourcecontrol, durham, rmcelroy

Subscribers: akushner, rmcelroy

Differential Revision: https://phabricator.fb.com/D2495659

Tasks: 8563305
2015-10-01 20:17:28 -07:00
Cecile Berillon
388e56c896 Adding config to allow disabling the branch command
Summary: Adding config to disable the branch command and still forcing users to pass --new if it's enabled

Test Plan: Testing branch alone, branch when it's disabled and when it's enabled (with the --new options in both cases)

Reviewers: #sourcecontrol, rmcelroy

Differential Revision: https://phabricator.fb.com/D2478915

Tasks: 8500803
2015-09-24 13:09:47 -07:00
Christian Delahousse
df27ba12fe Dropped local run-tests in favour of using mercurial's own test runner
Summary:
To do so, we had to change some path variables and change the output of some
tests. Removed a few dependencies that provided by hg.

Test Plan:
Ran the tests. There was some ignorable output changed (about devel-warn) caused by other code not
related to this change.

Reviewers: #sourcecontrol, pyd, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy, durham

Differential Revision: https://phabricator.fb.com/D2499721

Signature: t1:2499721:1443745230:9d4e53e83356807f3343c8343e28d10f1b9dc35f
2015-10-01 13:03:03 -07:00
Ryan McElroy
5be993a5b8 pushrebase: fix up bad pushkey change
Summary:
Also added an additional test to show a case that fails now (and should fail),
but would have succeeded with the previous code.

Test Plan: Additional unit test

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Differential Revision: https://phabricator.fb.com/D2502396

Signature: t1:2502396:1443809922:18ec6697b7c135c37c10f7bdd9544901c4a54c99
2015-10-02 00:46:37 -07:00
Ryan McElroy
ccb4595e9e pushrebase: redo check for bookmark moving forward
Summary:
The old check moved the bookmark old node after the prepushkey hooks
had ran, bypassing the non-ff prevention logic. This moves the old node rewrite
to before the prepushkey hook and also checks that old node is moved in a
ff-only way.

Test Plan: updated unit test

Reviewers: #sourcecontrol, mitrandir

Reviewed By: mitrandir

Subscribers: durham

Differential Revision: https://phabricator.fb.com/D2499633

Signature: t1:2499633:1443733890:4c84150bd0f21adb97feb23e54727bb4e8be38cf
2015-10-01 11:57:06 -07:00
Ryan McElroy
ba64067032 pushrebase: redo check heads elision to be on the client side
Summary:
By removing the part on the pushrebase client instead of ignoring it on the
pushrebase server, the server can still run this check for non-pushrebase
pushes so it will be safer against divergent heads.

Test Plan: Updated unit tests

Reviewers: #sourcecontrol, pyd, durham

Reviewed By: pyd, durham

Differential Revision: https://phabricator.fb.com/D2499115

Signature: t1:2499115:1443736440:001ceb79a4692abbd4c6b208124f6576f10f680c
2015-10-01 11:15:37 -07:00
Cecile Berillon
412d5aaec9 Changing tag disabled by default to tag enabled by default
Summary: Changing tag disabled by default to tag enabled by default

Test Plan: tag default policy, tag when disabled with or without default message

Reviewers: rmcelroy

Differential Revision: https://phabricator.fb.com/D2486970

Tasks: 8500389
2015-09-28 14:39:56 -07:00
Durham Goode
3a1a78caff Add perftweaks to setup.py 2015-09-29 14:22:46 -07:00
Ryan McElroy
170afe7179 pushrebase: do not fail when old bookmark location does not match
Summary:
In pushrebase, we expect bookmarks to be moving after discovery but
before we grab the lock. With this patch, we rewrite the incoming bookmark
changes so that they do not fail if the bookmark moves after discovery.

Test Plan:
Wrote a new test to cover this behavior and verified that the test failed before
this change but works afterwards.

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: durham

Differential Revision: https://phabricator.fb.com/D2488675

Signature: t1:2488675:1443503039:660f88da9727a74f7c9a21f0767efb5d7379d16d
2015-09-28 18:42:18 -07:00
Ryan McElroy
f79cd49299 perftweaks: properly import merge
Summary: Tests were broken; this fixes them

Test Plan: ran the tests and they all passed

Reviewers: durham

Reviewed By: durham

Differential Revision: https://phabricator.fb.com/D2488376

Signature: t1:2488376:1443492734:89669f3b562e89e791ed7bad88d868f738d7a4ee
2015-09-28 18:42:48 -07:00
Ryan McElroy
28e4ce1306 pushrebase: turn off check:heads bundlepart during push
Summary:
This check was causing pushes to fail when heads change during a push, but that
is expected in pushrebase pushes.

Test Plan: ran existing tests

Reviewers: ericsumner, #sourcecontrol, durham

Reviewed By: #sourcecontrol, durham

Differential Revision: https://phabricator.fb.com/D2482254

Signature: t1:2482254:1443468591:23dc9ad24e1c7d3b3ec04be678d346dfed6d98a7
2015-09-27 15:45:31 -07:00
Durham Goode
6d4ea20856 perftweaks: disable case collision checking
Summary:
Case collision detection makes every hg update on OSX take an extra 3 seconds.
For rebasing a stack of commits, that's an extra 3 seconds per commit. This is a
rare enough situation that let's just disable the check. Then we can catch such
issues in a commit hook or as a post-commit hook audit.

Test Plan:
Ran hg update, it was 3s faster than before.

Tested a case conflict, it ended up modifying both files. Hopefully this would
be caught in code review, though we could also do it via pre-commit hook.
```
$ touch a && hg add a
$ hg commit -m 'lower case a'
$ hg up .^
$ touch A && hg add A
$ hg commit -m 'upper case A'
$ hg rebase -d . -s {lower case a commit}
$ hg show
diff --git a/fbandroid/A b/fbandroid/A
--- a/fbandroid/A
+++ b/fbandroid/A
@@ -1,1 +1,1 @@
-A
+a
diff --git a/fbandroid/a b/fbandroid/a
new file mode 100644
--- /dev/null
+++ b/fbandroid/a
@@ -0,0 +1,1 @@
+a
```

Reviewers: pyd, mpm, #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy

Differential Revision: https://phabricator.fb.com/D2486617

Signature: t1:2486617:1443483300:f2520c09ce9eb6d3b8e1c1a35b175f0441b10630
2015-09-28 13:54:21 -07:00