mirror of
https://github.com/nvbn/thefuck.git
synced 2025-02-20 20:09:07 +00:00
Add git_pull
rule
This commit is contained in:
parent
051f5fcb89
commit
ce6855fd97
@ -156,6 +156,7 @@ using the matched rule and runs it. Rules enabled by default are as follows:
|
||||
* `git_checkout` – creates the branch before checking-out;
|
||||
* `git_no_command` – fixes wrong git commands like `git brnch`;
|
||||
* `git_push` – adds `--set-upstream origin $branch` to previous failed `git push`;
|
||||
* `git_pull` – sets upstream before executing previous `git pull`;
|
||||
* `git_stash` – stashes you local modifications before rebasing or switching branch;
|
||||
* `has_exists_script` – prepends `./` when script/binary exists;
|
||||
* `lein_not_task` – fixes wrong `lein` tasks like `lein rpl`;
|
||||
|
29
tests/rules/test_git_pull.py
Normal file
29
tests/rules/test_git_pull.py
Normal file
@ -0,0 +1,29 @@
|
||||
import pytest
|
||||
from thefuck.rules.git_pull import match, get_new_command
|
||||
from tests.utils import Command
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def stderr():
|
||||
return '''There is no tracking information for the current branch.
|
||||
Please specify which branch you want to merge with.
|
||||
See git-pull(1) for details
|
||||
|
||||
git pull <remote> <branch>
|
||||
|
||||
If you wish to set tracking information for this branch you can do so with:
|
||||
|
||||
git branch --set-upstream-to=<remote>/<branch> master
|
||||
|
||||
'''
|
||||
|
||||
|
||||
def test_match(stderr):
|
||||
assert match(Command('git pull', stderr=stderr), None)
|
||||
assert not match(Command('git pull'), None)
|
||||
assert not match(Command('ls', stderr=stderr), None)
|
||||
|
||||
|
||||
def test_get_new_command(stderr):
|
||||
assert get_new_command(Command('git pull', stderr=stderr), None) \
|
||||
== "git branch --set-upstream-to=origin/master master && git pull"
|
12
thefuck/rules/git_pull.py
Normal file
12
thefuck/rules/git_pull.py
Normal file
@ -0,0 +1,12 @@
|
||||
def match(command, settings):
|
||||
return ('git' in command.script
|
||||
and 'pull' in command.script
|
||||
and 'set-upstream' in command.stderr)
|
||||
|
||||
|
||||
def get_new_command(command, settings):
|
||||
line = command.stderr.split('\n')[-3].strip()
|
||||
branch = line.split(' ')[-1]
|
||||
set_upstream = line.replace('<remote>', 'origin')\
|
||||
.replace('<branch>', branch)
|
||||
return u'{} && {}'.format(set_upstream, command.script)
|
Loading…
x
Reference in New Issue
Block a user