mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-19 04:21:14 +00:00
Merge branch 'TheJakeSchmidt-add-git_rebase_continue_no_changes'
This commit is contained in:
commit
42853f41bb
@ -175,6 +175,7 @@ using the matched rule and runs it. Rules enabled by default are as follows:
|
||||
* `git_pull_clone` – clones instead of pulling when the repo does not exist;
|
||||
* `git_push` – adds `--set-upstream origin $branch` to previous failed `git push`;
|
||||
* `git_push_pull` – runs `git pull` when `push` was rejected;
|
||||
* `git_rebase_no_changes` &ndash runs `git rebase --skip` instead of `git rebase --continue` when there are no changes;
|
||||
* `git_rm_recursive` – adds `-r` when you try to `rm` a directory;
|
||||
* `git_remote_seturl_add` – runs `git remote add` when `git remote set_url` on nonexistant remote;
|
||||
* `git_stash` – stashes you local modifications before rebasing or switching branch;
|
||||
|
28
tests/rules/test_git_rebase_no_changes.py
Normal file
28
tests/rules/test_git_rebase_no_changes.py
Normal file
@ -0,0 +1,28 @@
|
||||
import pytest
|
||||
from thefuck.rules.git_rebase_no_changes import match, get_new_command
|
||||
from tests.utils import Command
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def stdout():
|
||||
return '''Applying: Test commit
|
||||
No changes - did you forget to use 'git add'?
|
||||
If there is nothing left to stage, chances are that something else
|
||||
already introduced the same changes; you might want to skip this patch.
|
||||
|
||||
When you have resolved this problem, run "git rebase --continue".
|
||||
If you prefer to skip this patch, run "git rebase --skip" instead.
|
||||
To check out the original branch and stop rebasing, run "git rebase --abort".
|
||||
|
||||
'''
|
||||
|
||||
|
||||
def test_match(stdout):
|
||||
assert match(Command('git rebase --continue', stdout=stdout))
|
||||
assert not match(Command('git rebase --continue'))
|
||||
assert not match(Command('git rebase --skip'))
|
||||
|
||||
|
||||
def test_get_new_command(stdout):
|
||||
assert (get_new_command(Command('git rebase --continue', stdout=stdout)) ==
|
||||
'git rebase --skip')
|
15
thefuck/rules/git_rebase_no_changes.py
Normal file
15
thefuck/rules/git_rebase_no_changes.py
Normal file
@ -0,0 +1,15 @@
|
||||
from thefuck.specific.git import git_support
|
||||
|
||||
|
||||
@git_support
|
||||
def match(command):
|
||||
return ({'rebase', '--continue'}.issubset(command.script_parts) and
|
||||
'No changes - did you forget to use \'git add\'?' in command.stdout)
|
||||
|
||||
|
||||
def get_new_command(command):
|
||||
return 'git rebase --skip'
|
||||
|
||||
|
||||
enabled_by_default = True
|
||||
requires_output = True
|
Loading…
x
Reference in New Issue
Block a user