mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-18 20:11:17 +00:00
#1131: Add rule for Git commit with no added files
This commit is contained in:
parent
799f4127ca
commit
55922e4dbe
@ -234,6 +234,7 @@ following rules are enabled by default:
|
||||
* `git_branch_0flag` – fixes commands such as `git branch 0v` and `git branch 0r` removing the created branch;
|
||||
* `git_checkout` – fixes branch name or creates new branch;
|
||||
* `git_clone_git_clone` – replaces `git clone git clone ...` with `git clone ...`
|
||||
* `git_commit_add` – offers `git commit -a ...` after previous commit if it failed because nothing was staged;
|
||||
* `git_commit_amend` – offers `git commit --amend` after previous commit;
|
||||
* `git_commit_reset` – offers `git reset HEAD~` after previous commit;
|
||||
* `git_diff_no_index` – adds `--no-index` to previous `git diff` on untracked files;
|
||||
|
36
tests/rules/test_git_commit_add.py
Normal file
36
tests/rules/test_git_commit_add.py
Normal file
@ -0,0 +1,36 @@
|
||||
import pytest
|
||||
from thefuck.rules.git_commit_add import match, get_new_command
|
||||
from thefuck.types import Command
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script, output', [
|
||||
('git commit -m "test"', 'no changes added to commit'),
|
||||
('git commit', 'no changes added to commit')])
|
||||
def test_match(output, script):
|
||||
assert match(Command(script, output))
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script, output', [
|
||||
('git commit -m "test"', ' 1 file changed, 15 insertions(+), 14 deletions(-)')])
|
||||
def test_not_match(output, script):
|
||||
assert not match(Command(script, output))
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script', [
|
||||
'git branch foo',
|
||||
'git checkout feature/test_commit',
|
||||
'git push'])
|
||||
def test_not_match_either(script):
|
||||
assert not match(Command(script, ''))
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script', [
|
||||
('git commit')])
|
||||
def test_get_new_command_one(script):
|
||||
assert get_new_command(Command(script, '')) == 'git commit -a'
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script', [
|
||||
('git commit -m "test commit"')])
|
||||
def test_get_new_command_two(script):
|
||||
assert get_new_command(Command(script, '')) == 'git commit -a -m "test commit"'
|
15
thefuck/rules/git_commit_add.py
Normal file
15
thefuck/rules/git_commit_add.py
Normal file
@ -0,0 +1,15 @@
|
||||
from thefuck.utils import replace_argument
|
||||
from thefuck.specific.git import git_support
|
||||
|
||||
priority = 900 # Lower first, default is 1000
|
||||
|
||||
|
||||
@git_support
|
||||
def match(command):
|
||||
return ('commit' in command.script_parts
|
||||
and 'no changes added to commit' in command.output)
|
||||
|
||||
|
||||
@git_support
|
||||
def get_new_command(command):
|
||||
return replace_argument(command.script, 'commit', 'commit -a')
|
Loading…
x
Reference in New Issue
Block a user