我的git bare repo上有一个post-receive hook,它执行这个fabfile.py:
def deploy():
print(cyan('Pulling changes to local server'))
with cd('/var/www')
local('git pull')
它执行正常,但它在打印之前显示本地命令的输出,如下所示:
remote: From /media/projetos/repositorios/test
remote: b057a4b..02d85b3 master -> origin/master
remote: Updating b057a4b..02d85b3
remote: Fast-forward
remote: .../test/template/catalog/product/list.phtml | 98 +++++++++++-----------
remote: 1 file changed, 47 insertions(+), 51 deletions(-)
remote: Pulling changes to local server
如果我只是在服务器上运行并运行fab deploy,它就能正常工作。
答案 0 :(得分:1)
在sys.stdout.flush()
之后添加print
调用,这样即使输出完全缓冲(因为它在管道上,在git挂钩下运行时也是如此),它会被发送在运行另一个命令之前,在该点输出流。