【问题标题】:Can't commit from Fabric script for GitHub无法从 GitHub 的 Fabric 脚本提交
【发布时间】:2012-04-23 12:36:44
【问题描述】:

我正在使用 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')

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

【问题讨论】:

  • 你的路径看起来很奇怪:更好的 r'\docs' 或 '\\docs'

标签: python github fabric


【解决方案1】:

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

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

如果您确定有要提交的文件,您应该调查为什么没有拾取更改。

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

从 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')

我还在您的 git 提交行中添加了 -a,因此它也提交更改以及添加的文件。

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

【讨论】:

  • 谢谢。我仍在尝试了解 Git 和乌龟 SVN 之间的差异,所以我认为它应该跟踪更新。首先运行的进程会在路径images\253\View_Employee_Use_Case\1.png 中生成图像,其中文件夹编号是修订版。这些文件可能会更新,所以如果名称没有改变,更新的版本会被忽略吗?这是我能想到的唯一问题。
  • with cd() 不会更改目录,所以这就是我得到os.chdir() 的原因。我打算删除with cd(),但还没有解决。
  • 延迟响应,但您知道,cd 上下文管理器用于更改远程计算机上的目录。它对您不起作用的原因是因为您将它与local 一起使用,而不是runsudo
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多