我的设置是一个Windows XAMPP服务器,启用了cURL,并安装了Git和Hudson.Hudson每分钟都会调查Git来查找更改,如果找到它们,它会创建一个构建版本.我使用这个版本作为我的测试服务器.这很好用.
我想在我的中央远程存储库上设置一个post-receive hook,它运行Hudson的force build功能.
我在我的中央Git存储库的hooks目录中创建了一个名为"post-receive"的post-receive文件,该文件是从开发人员的本地分支推送到的.他们每个都推送到中央存储库中的自己的分支.我想在每次推送后立即运行post-receive构建,而不是每分钟都有Hudson轮询Git.
当我打开一个shell到远程服务器并在hooks文件夹中运行"post-receive"时,它会运行.当人们从本地存储库副本推送到中央存储库副本时,它就不会被调用.
也许我不是在解释这个问题,但这就是我对Git的理解.
收到后代码是两行:
#!/bin/sh
curl http://myserver.com:8080/hudson/job/myjobname/build?token=mytoken
Run Code Online (Sandbox Code Playgroud)
再一次,当我打开一个shell并运行它时,它可以工作,但是当有人推动它时,没有任何反应,直到一分钟或更短的时间过去,Hudson意识到Git已经改变,然后它就会构建.
我很乐意澄清是否需要.任何帮助是极大的赞赏.
编辑:玩了之后,我觉得也许后续接收没有执行,因为参考没有被更新的东西?git文档说
在更新所有引用后,它将在远程存储库上执行一次.
这是否意味着如果没有更新,它将不会执行?如果是这样,我很确定事情正在更新,所以它不应该适用.
这是我的过程:在本地进行编辑.提交编辑.从我的HEAD推送到名为'mybranch'的远程分支(不是主分支,已检出)这是我希望我的钩子执行的点.
我可以使用git专家的一些指导来确保对非裸存储库的推送操作安全.基本上我有一个关于如何做到这一点的计划,并且可以使用关于该计划是否合理的一些建议:)
通常,当您在git中推送到非裸存储库时,其工作副本和索引不会更新.正如我所发现的,如果您忘记以后手动更新它们,这可能会导致严重的问题!
在我们的小组中,我们有一些"中心"存储库,人们克隆并推回,但许多人也希望能够克隆他们的克隆,并按照真正的分布式方式在他们之间推/拉.为了使这个安全,我想确保通过"clone"或"init"创建的每个存储库都有一个自动安装的post-receive挂钩,它将在推送操作后更新工作目录和索引,以便与新HEAD.
我发现我可以通过在hooks子目录中使用post-receive hook创建一个模板目录来实现这一点,然后让我的组中的每个人都执行:
git config --global init.templatedir /path/to/template/dir
Run Code Online (Sandbox Code Playgroud)
目前我的post-receive挂钩看起来像这样:
export GIT_WORK_TREE=..
git checkout -f HEAD
Run Code Online (Sandbox Code Playgroud)
这个SEEMS按照需要工作,但我对checkout命令有一些不确定性.为了将工作目录和索引与HEAD中的状态同步,"git checkout -f HEAD"和"git reset --hard HEAD"是否相同?
我问,因为虽然我知道"git reset --hard HEAD"会做我想要的,但是在我的测试中使用它在后接收钩子中大大减慢了推送操作(它似乎重新检查了所有文件,无论工作目录中的文件是脏还是干净)."git checkout -f HEAD"SEEMS更快地做同样的事情(给我一个干净的工作目录和索引与HEAD同步),但我有点紧张,因为checkout命令倾向于在飞行中做与未提交的工作目录更改合并.这个命令真的会给我一个工作目录和索引,它在所有情况下都与HEAD中的状态完全匹配(包括,例如,文件删除,重命名等)?
提前感谢任何建议!
无法让角色访问两个表。template.yaml 的 YAML 示例:
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: path/to/something
Handler: index.handler
Runtime: nodejs10.x
Events:
Get:
Type: Api
Properties:
RestApiId: !Ref MyApi
Path: /path/to/other/thing
Method: post
Policies:
DynamoDBCrudPolicy:
TableName:
table1
table2
Run Code Online (Sandbox Code Playgroud)
我需要这个函数能够在 table1 和 table2 上读/写,但这不起作用。我试过:
- table1
- table2
Run Code Online (Sandbox Code Playgroud)
但这也行不通。还尝试过:
Policies:
- DynamoDBCrudPolicy:
TableName:
table1
- DynamoDBCrudPolicy:
TableName:
table2
Run Code Online (Sandbox Code Playgroud)
但这也会出错。我该如何正确地做到这一点?
yaml amazon-web-services aws-cloudformation aws-lambda aws-sam
我把它放在.js文件中......
window.onbeforeunload = alert('onbeforeunload');
Run Code Online (Sandbox Code Playgroud)
但是在加载页面时会触发,而不是在卸载页面时触发.
有谁知道为什么?
git ×2
aws-lambda ×1
aws-sam ×1
curl ×1
githooks ×1
hudson ×1
javascript ×1
onunload ×1
yaml ×1