2016-02-27 108 views
0

为了澄清,这个问题涉及到一个Openshift安装。确定当前分支/提交ID

我想写一个cron脚本,检查每个现在和再次对网站进行的更改(这是一个CMS,所以更改可能是数据库或文件,但我的脚本已经处理)。如果发现有变化,它应该将这些更改提交到git仓库。

这工作正常,如果我假设我在master分支。然而,能够检查开发分支并且将任何自动提交发送到这些分支而不是回显给主控并重写它,这将是很好的。

如何在cron脚本中检测哪些是当前分支以及哪些新提交应该发送?

+0

['git status'](http://git-scm.com/docs/git-status)的输出以当前分支开始。 – axiac

+0

嗯,但'repo'文件夹实际上并不是一个git repo:它只是最新提交的内容。 git repo本身存在于'〜/ git'中,但它是一个裸露的回购,iirc意味着它没有头指针 – CharlieB

+0

您的问题不清楚。您想要提交,但您没有常规存储库,只是其文件和裸存储库的快照。你想要提交什么?直接在裸仓库中? – axiac

回答

1

请尝试查看您的~/app-deployments/current目录并查看metadata.json文件的内容,您将找到以下介绍当前部署的信息。

{ 
"git_ref":"master", 
"git_sha1":"d73e396", 
"id":"ad01e23d", 
"hot_deploy":null, 
"force_clean_build":null, 
"activations":[1456247028.9351604], 
"checksum":"2d041cdb9042ac3f3e3a8f067ad8c583e2a22123" 
} 

如果您有多个部署设置(如下参考:https://developers.openshift.com/en/managing-deployments.html),那么每一个围绕保持部署应该提供同样的信息。您还需要知道,如果您正在运行缩放应用程序,则此信息可能仅在头戴式设备(运行haproxy并且托管您的git存储库的设备)上可用。

+0

这正是我所寻找的,完美的,谢谢! – CharlieB