0

我正在使用 Fabric 运行 ANT 任务,然后上传到 GitHub。该脚本有效,但并非始终如一,因此很难理解原因。

我一直在这里读到 Fabric 中的过程是;

  1. git add
  2. git commit
  3. git push

但我一直看到这个输出;

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

Fatal error: local() encountered an error (return code 1) while executing 'git commit -m "Latest Selenium screenshots for View Employee"'

Aborting.

我写的函数是这样的;

def deploy():
    process = test()
    os.chdir('\\Documents and Settings\markw\GitTest')
    with cd('\\Documents and Settings\markw\GitTest'):
        local('git reset --soft HEAD')
        local('git pull origin master')
        local('git add -A')
        local('git commit -m "Latest Selenium screenshots for %s"' % (process))
        local('git push -u origin master')

我的提交遗漏了什么导致这里出现问题?是否有另一个标志来组合已排队的提交?

4

1 回答 1

2

没有要提交的文件,因此 git 返回一个非零错误代码。这导致fabric 相信前一个命令失败,因此中止。

老实说,除非您绝对确定 git 是错误的,并且有更改要提交,否则我很容易相信您的脚本实际上根本没有出现故障。

如果您确定有要提交的文件,则应调查未获取更改的原因。

如果您希望织物以更友好的方式退出,您可以尝试以下操作:

从 fabric.api 导入设置
导入系统

定义部署():
    过程 = 测试()
    os.chdir('\\Documents and Settings\markw\GitTest')
    使用 cd('\\Documents and Settings\markw\GitTest'):
        使用设置(warn_only=True):
            本地('git reset --soft HEAD')
            local('git pull origin master')
            本地('git添加-A')
            commit = local('git commit -a -m "%s 的最新 Selenium 屏幕截图"' % (process))
            如果提交失败:
                print '没什么可提交的,正在退出......'
                系统退出(0)
            别的:
                local('git push -u origin master')

我还在-a你的 git commit 行中添加了一个,所以它也提交了更改以及添加的文件。

另外,我不确定您的 os.chdir() 行的意义。

于 2012-04-23T13:32:31.377 回答