1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-19 04:21:14 +00:00

Add a new rule git_rebase_no_changes.

This commit is contained in:
Jake 2016-06-11 19:16:28 -04:00
parent b8c5433dc4
commit 4bd4c0f731
3 changed files with 44 additions and 0 deletions

View File

@ -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;

View 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')

View File

@ -0,0 +1,15 @@
from thefuck.specific.git import git_support
#@git_support
def match(command):
return (command.script == 'git rebase --continue' 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