Python Can';无法从GitHub的结构脚本提交
我正在使用Fabric运行一个ANT任务,然后上传到GitHub。剧本已经成功了,但并不始终如一,所以很难理解为什么 我在这里读到,织物的加工过程是Python Can';无法从GitHub的结构脚本提交,python,github,fabric,Python,Github,Fabric,我正在使用Fabric运行一个ANT任务,然后上传到GitHub。剧本已经成功了,但并不始终如一,所以很难理解为什么 我在这里读到,织物的加工过程是 git add git提交 git推送 但我一直看到这种输出 # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # nothing to commit (working directory clean) Fatal error: local() en
git add
git提交
git推送
# 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')
我的承诺中遗漏了什么导致了这里的问题?是否有另一个标志来组合已排队的提交?没有要提交的文件,因此git返回一个非零错误代码。这使fabric认为前一个命令失败,因此它中止 老实说,除非您完全确定git是错的,并且有更改要提交,否则我很容易相信您的脚本实际上根本没有出现故障 如果确定存在要提交的文件,则应调查更改未被拾取的原因 如果您希望fabric以更友好的方式退出,可以尝试以下方法: from fabric.api import settings import sys def deploy(): process = test() os.chdir('\\Documents and Settings\markw\GitTest') with cd('\\Documents and Settings\markw\GitTest'): with settings(warn_only=True): local('git reset --soft HEAD') local('git pull origin master') local('git add -A') commit = local('git commit -a -m "Latest Selenium screenshots for %s"' % (process)) if commit.failed: print 'Nothing to commit, exiting...' sys.exit(0) else: local('git push -u origin master') 从fabric.api导入设置 导入系统 def deploy(): 过程=测试() os.chdir('\\Documents and Settings\markw\GitTest') 使用cd('\\Documents and Settings\markw\GitTest'): 使用设置(仅警告=真): 本地('git reset--soft HEAD') 本地('git pull origin master') 本地('git add-A') commit=local('git commit-a-m“针对%s的最新Selenium屏幕截图”'%(进程)) 如果提交失败: 打印“无需提交,正在退出…” 系统出口(0) 其他: 本地('git push-u原始主机') 我还向git提交行添加了一个
-a
,因此它还提交了更改和添加的文件
另外,我不确定os.chdir()行的意义。您的路径看起来很奇怪:更好的r'\docs'或'\\docs'谢谢。我仍在努力理解Git和tortoise SVN之间的区别,因此我认为它应该跟踪更新。首先运行的进程在路径
images\253\View\u Employee\u Use\u Case\1.png
中生成图像,其中文件夹编号为修订版。这些文件可能会更新,因此如果名称不变,更新的版本会被忽略吗?这是我能想到的唯一问题。with cd()
不会更改目录,因此我得到了os.chdir()
。我本来打算用cd()删除,但还没来得及去做。反应很晚,但正如你所知,cd
上下文管理器用于更改远程计算机上的目录。它对您不起作用的原因是您将它与local
一起使用,而不是run
或sudo
。