1
0
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:
Sergei Haller 2020-09-08 11:47:05 +02:00 committed by Pablo Santiago Blum de Aguiar
parent 799f4127ca
commit 55922e4dbe
3 changed files with 52 additions and 0 deletions

View File

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

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

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