问题标签 [post-update]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Git:运行需要访问存储库中所有文件的脚本的更新后挂钩
我现在遇到了一些困境,因为我需要一个脚本来在远程存储库更新时运行(即,每当有人运行 git push 时),它从存储库中的文件构建包。然后将这些包放置到 git 服务器上的目录中,该目录通过 HTTP 向客户端公开以供将来使用。
问题是,我不确定如何在更新后挂钩中访问存储库中的文件。
如果有人可以提供一些见解,将不胜感激。
git - 使用 gitosis 管理对 git 存储库的 http 访问
[2010 年 9 月 16 日更新]
昨晚看了这个之后,我意识到我最初的问题实际上是在问两个不同的问题:
1)是否可以为 gitosis 创建的所有远程存储库设置更新后挂钩(即mv hooks/post-update.sample hooks/post-update
在 gitosis 创建存储库后不必手动执行)这是通过 HTTP 克隆工作所必需的(愚蠢的 HTTP 客户端依赖于git update-server-info
从更新后挂钩中调用的事实)。
2)一旦可以通过 HTTP 访问存储库,是否可以使用 gitosis.conf 中的选项打开和关闭访问(类似于daemon = no
or gitweb = yes
)
--- 问题 1 的解答 ---
事实证明,Git 使用模板通过git init
命令创建新的存储库。通过mv hooks/post-update.sample hooks/post-update
在模板目录中执行,我的服务器上的所有未来调用git init
都将正确配置更新后挂钩。(在 OSX 上,模板目录是/opt/local/share/git-core/templates/
为那些关心的人准备的)
这个工作的另一个要求是打开 Apache 重写规则,以便存储库的 HTTP 克隆 URL 看起来像http//git.example.com/repo.git
我的重写规则/etc/apache2/extra/httpd-vhosts.conf
如下所示:
--- 仍在寻找问题 2 的解决方案...帮助!:) ---
现在 HTTP 克隆适用于我所有的存储库,我想知道是否有一种方法可以使用 gitosis 来管理 HTTP 访问控制。设置daemon = no
并gitweb = no
关闭存储库的 git-daemon 和 gitweb 访问,但由于 Apache 重写规则仍处于启用状态,因此存储库仍可在http://git.example.com/repo.git
. 关于如何使用 gitosis 来管理这个的任何想法?
[我最初发布的问题]
是否可以使用 gitosis 管理对 git 存储库的 http 访问?例如,在 gitosis.conf 中,我可以使用以下命令管理 gitweb 和 git-demon 的访问:
我目前可以通过发出以下命令来克隆我的存储库:
但是,当我发出以下命令时:
我收到以下错误消息:
但是,如果我登录到我的服务器并从 repo.git 中运行以下命令:
然后通过http克隆工作正常。
有没有办法从 gitosis 中管理对存储库的 http 访问?
git - 每次 git push 完成时更新版本?
我们如何在每次推送时使用 git 更改版本(每个 +1)?
例如我有一个 2 php 文件
在每个标题上通常都有一些信息,例如
我们可以在每次推送时搜索并添加 +1 do 版本吗?
git - 按分支使用 Git 作为部署工具的问题
我正在尝试创建一个更新后脚本并将 git 用作远程服务器上的部署工具。
我的更新后脚本看起来像这样
但是,当我运行它时,会返回一个错误,上面写着:
这没有任何意义,因为我可以通过 ssh 从目录中运行 git 命令。
在我的更新后脚本中我还需要做些什么吗?
解决方案
我添加了GIT_DIR
变量,所以现在我的命令如下所示:
git - 来自更新后挂钩的 Git 推送失败 - X 不是存储库
我正在尝试设置一个中央存储库,当它从我的本地计算机推送到另一个存储库时,它将自动推送到另一个存储库。我已经用谷歌搜索了好几天了,我已经尝试了所有我能找到的命令组合,但没有运气。
设置:我首先将中央存储库创建为裸机,然后将其克隆到第二台机器作为非裸机。我将第二台机器作为遥控器添加到第一台机器上,称为“www”。我确认我可以从第一台机器手动执行“git push www master”,它将通过 SSH 更新第二台机器。然后我通过 HTTP 将存储库克隆到我的本地开发机器。我可以从本地推到中央就好了。
我当前形式的更新后挂钩:
我从各种 SO 和博客文章中拼凑出这个。从第一台机器的 CLI 手动执行时它工作正常(“cd /var/git_repos/site.git/hooks; ./post-update”)但执行时我收到错误消息“www 不是 Git 存储库”作为一个钩子。
输出:
谁能告诉我我做错了什么?
编辑:我发现我最初的问题是 site.git 上的权限没有完全正确设置。解决了这个问题后,我又遇到了一个新问题。
新输出:
我尝试将以下内容添加到我的 /etc/sudoers 文件中,但没有成功:
svn - 每个项目的 SVN 更新后挂钩?
似乎更新后挂钩适用于机器上的整个 SVN 设置,但我希望为每个项目设置单独的挂钩。据我所知,您在设置中设置了挂钩,这是全局的。
关于如何为每个项目完成更新后挂钩的任何想法?
jpa - 空实体字段使@PostUpdate 方法静默停止
我有一个从用户输入更新的 JPA 域实体。根据有关该对象的许多因素,它在更新时会执行一些操作(在这种情况下,更新是“将其标记为已完成”)。
在数据库中,两个“完成后操作配置”字段(note 和 next_workflow)可以为空,并且要么具有感兴趣的值,要么为 NULL。可能有很多,但我从这两个开始。
我在模型类中编写了以下方法:
对于具有 NULL "note" 值的实体,控制台输出为:
对于具有非空“note”值和空“nextWorkflow”值的实体,控制台输出为:
任何地方都没有错误,没有堆栈转储,什么都没有。该方法只是默默地退出,并且我在这个实体上所做的合并没有完成(数据库保持不变)。
在调试器中逐步执行此操作会到达正在测试事物的那一行,如果值为 NULL,它会弹出一个选项卡,上面写着“找不到源”,我真的不知道该怎么做。我认为这只是调试器说它不能进入某些东西,但我实际上并没有要求它...
svn - SVN 更新后挂钩
我在网上搜索了有关如何在本地机器上实现更新后挂钩的信息,但我没有找到任何东西!特别是我想在我从 PHPStorm 3.0 更新我的 svn 副本后触发那个钩子。我写了一个 phing build.xml 来处理我想在 svn 更新后自动执行的任务。任何想法 ?提早提!
PS:我们的本地机器运行Win7。
wordpress - 更新帖子时向管理员发送电子邮件通知
每当更新帖子时,我都会尝试通知管理员,但只通知修改的内容,主要是更新的元数据。
我还没有想出任何我真正喜欢的东西,但这是我现在看到的选项:
1.发布帖子时有一个钩子(我正在使用自定义帖子):
- 有功能/挂钩来获取修订,我忘了具体在哪里。因此,我可以将最近发布的版本与以前的版本进行比较,检测更改并相应地发送电子邮件。这将抓住任何已更新的通用更改。- 有没有人使用过处理后期修订的功能?
2.添加自定义按钮,抓取刚刚添加的数据(基于使用的按钮),然后激活发布帖子功能。但是,它仅限于我创建的元数据,以及连接到该按钮的内容。
以前有人用过这个吗?那里肯定有一些东西,但我见过的大多数只是发送一个没有内容的通知,只有更新的内容。
谢谢!
mercurial - 从 Windows 推送到 Bitbucket,然后拉到 Linux 服务器后权限太开放?
我在本地机器上编写代码。我将代码推送到 Bitbucket 中的 Mercurial 存储库。然后,我登录到客户端的网络服务器并从 Bitbucket 存储库“拉/更新”到服务器。
问题是他们的帐户在共享服务器上,运行 suphp,并且安全设置只允许 suphp 提供文件 chmod'ed 644 (-rw-r--r--)。但是每次我从 Bitbucket 存储库中提取时,文件权限都会更改为 664 (-rw-rw-r--)。
这不是权限过于严格的问题,因为其他人曾尝试同步 Hg 存储库。Mercurial 不复制文件权限也不是问题。(Hg 过去只复制 eXecute 位,但现在复制所有权限。)
我怀疑我可以以某种方式将我的 Windows 机器上的权限更改为更具限制性并且可以修复它,但我不确定 Windows 权限如何转换为 Linux“所有者/组/世界”设置。(我的 Windows 机器上的文件允许“完全控制”我的帐户、“管理员”组和“系统”,它们从包含文件夹继承的所有权限,该文件夹位于我的文档中。)
有没有人可以解决这个问题?我可以在 Linux 机器上对 chmod 644 做一个更新后挂钩find . -type f
吗?