布エラー:致命的なエラー:地域()エラーがあった(戻り値コードが2)を実行するときにgitコミットm'メッセージ'

StackOverflow https://stackoverflow.com/questions/1875306

  •  18-09-2019
  •  | 
  •  

質問

ようにしている設fabfile ーマDjangoアプリです。

いぜんこのエラー:

致命的なエラー:地域()エラーがあった(戻り値コードが2)を実行するときにgitコミット-m'の設定を変更したprodserver'

$ fab create_branch_deploy_to_prodserver
[localhost] run: git checkout prodserver_server
[localhost] run: git merge master
[localhost] run: cp settings_prodserver.py settings.py
[localhost] run: git add settings.py
[localhost] run: git commit -m 'changed settings for prodserver'

Fatal error: local() encountered an error (return code 1) while executing 'git commit -m 'changed settings for prodserver''

Aborting.

この場合の布関数:

def create_branch_deploy_to_prodserver():  
    local("git checkout prodserver_server")  
    local("git merge master")  
    local('cp settings_prodserver.py settings.py') # 
    #local('git rm fabfile.py') #This is also creating error so it's commented out
    local('git add settings.py')  
    local("git commit -m 'changed settings for prodserver'")  

によって行うことができ、gitコミットからにする

役に立ちましたか?

解決

私は宣言に偽キャプチャを=追加したときに、問題を診断することができました

local('git rm fabfile.py', capture=False)
local('git add settings.py', capture=False)

このエラーがより冗長に表示することが許可されます。

どうやら、ファブリックのメンテナは1.0で、デフォルトで捕捉していないに戻っlocalの行動を元に戻すされます。

他のヒント

このpython関連の問題のような記述 このスレッド?

主な問題はこの stdout/stderr 撮影が行/sudo呼び出しとなります。

になれば素敵なことだと思いまいを説明できることができなかったたかを収集することができた 出力エラー みの変更というファイルと fabfile_runner.py.
Idealyの生地作業自体がソうするとアップロードの工場と同じファイルとしての試験でも可能です。

チェック生地源としてのみ検査をフォルダには、具体的にはtests/utils.py.で単一のデコレータ, @mock_streams, できるラッピング機能(任意の関数を任意のPythonコードでない生地の特定として扱っていました)および替 sys.stdout および/または sys.stderr 捕獲用/検査する。

でご使用いた周りの機能、デコレータでも利用で直接変更のお fabfile_runner.py このように:

fabfile_runner.py

from StringIO import StringIO
import sys
from test_fabfile import hello_world

def execute(task):
    output = StringIO()
    error = StringIO()
    sys.stdout = output
    sys.stderr = error
    task()
    sys.stdout = sys.__stdout__
    sys.stderr = sys.__stderr__
    return (output.getvalue(), error.getvalue())

output, error = execute(hello_world)
print "output : %s" %output
print "error : %s" %error
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top