Печать выполненной команды для подпроцесса Python.Popen

У меня есть сценарий, который автоматизирует перезапись автора на нескольких репозитории git.

def filter_history(old, new, name, repoPath):

command = """--env-filter '
        an="$GIT_AUTHOR_NAME"
        am="$GIT_AUTHOR_EMAIL"
        cn="$GIT_COMMITTER_NAME"
        cm="$GIT_COMMITTER_EMAIL"

        if [[ "$GIT_COMMITTER_NAME" = "|old|" ]]
        then
            cn="|name|"
            cm="|new|"
        fi

        if [[ "$GIT_AUTHOR_NAME" = "|old|" ]]
        then
            an="|name|"
            am="|new|"
        fi

        export GIT_AUTHOR_NAME="$an"
        export GIT_AUTHOR_EMAIL="$am"
        export GIT_COMMITTER_NAME="$cn"
        export GIT_COMMITTER_EMAIL="$cm"
'
"""

#DO string replace
command = command.replace("|old|", old)
command = command.replace("|new|", new)
command = command.replace("|name|", name)

print "git filter-branch -f " + command

process = subprocess.Popen(['git filter-branch -f', command],cwd=os.path.dirname(repoPath), shell=True)
process.wait()

Команда выполняется нормально, но сообщает мне, что в истории репо ничего не изменилось. Однако, если я беру распечатанную команду (которая должна быть тем, что выполняется), перетаскиваю ее в сценарий оболочки и выполняю ее, она меняет историю в порядке. Думаю, что команда как-то некорректно выполняется. Есть ли способ узнать, какую именно команду выполняет модуль подпроцесса?

5
задан Jack Slingerland 7 February 2012 в 14:11
поделиться