forked from nvbn/thefuck
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add
git_merge_unrelated
rule for `git merge --allow-unrelated-histo…
…ries` (nvbn#773) From https://git-scm.com/docs/merge-options#merge-options---allow-unrelated-histories > By default, `git merge` command refuses to merge histories that do not share a common ancestor. This option can be used to override this safety when merging histories of two projects that started their lives independently.
- Loading branch information
1 parent
bc38665
commit 78f4436
Showing
3 changed files
with
38 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import pytest | ||
from thefuck.rules.git_merge_unrelated import match, get_new_command | ||
from thefuck.types import Command | ||
|
||
|
||
@pytest.fixture | ||
def output(): | ||
return 'fatal: refusing to merge unrelated histories' | ||
|
||
|
||
def test_match(output): | ||
assert match(Command('git merge test', output)) | ||
assert not match(Command('git merge master', '')) | ||
assert not match(Command('ls', output)) | ||
|
||
|
||
@pytest.mark.parametrize('command, new_command', [ | ||
(Command('git merge local', output()), | ||
'git merge local --allow-unrelated-histories'), | ||
(Command('git merge -m "test" local', output()), | ||
'git merge -m "test" local --allow-unrelated-histories'), | ||
(Command('git merge -m "test local" local', output()), | ||
'git merge -m "test local" local --allow-unrelated-histories')]) | ||
def test_get_new_command(command, new_command): | ||
assert get_new_command(command) == new_command |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
from thefuck.specific.git import git_support | ||
|
||
|
||
@git_support | ||
def match(command): | ||
return ('merge' in command.script | ||
and 'fatal: refusing to merge unrelated histories' in command.output) | ||
|
||
|
||
@git_support | ||
def get_new_command(command): | ||
return command.script + ' --allow-unrelated-histories' |