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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Summary: Moved merge comment to hint in Abort
Test Plan: test output
Reviewers: rmcelroy
Differential Revision: https://phabricator.fb.com/D2522817
Tasks: 8593074
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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