相关疑难解决方法(0)

Git钩子可以自动添加文件到提交吗?

我想使用Git中的预提交或后提交挂钩将自动生成的文件添加到同一提交中,这取决于在该提交中修改的文件.我该怎么做?

我已经尝试过这个作为预先提交的钩子,但没有运气:

#!/bin/sh
files=`git diff --cached --name-status`
re="<files of importance>"
if [[ $files =~ $re ]]
then
  echo "Creating files"
  exec bundle exec create_my_files
  exec git add my_files
  exec git commit --amend -C HEAD
fi
Run Code Online (Sandbox Code Playgroud)

这会成功将它们添加到存储库,但不会将它们添加到提交中.我也尝试在post-commit钩子中使用最后两个exec行以及pre-commit检查,但也没有好处.

git pre-commit pre-commit-hook githooks

58
推荐指数
5
解决办法
2万
查看次数

Mercurial Subrepositories:防止意外的递归提交和推送

我在一个团队工作,我们在一个包含多个子库的mercurial存储库中有一个代码:

main/
main/subrepo1/
main/subrepo1/subrepo2/
Run Code Online (Sandbox Code Playgroud)

Mercurial的默认行为是,当hg commit在"main"中执行a时,子存储库"subrepo1"和"subrepo2"中的任何未完成的更改也将被提交.类似地,当按下"main"时,也会推送"subrepo1"和"subrepo2"中的任何传出提交.

我们发现人们经常无意中提交并推送其子库中的更改(因为他们忘记了他们已经进行了更改,并且hg status默认情况下不会显示递归更改).我们还发现,在我们的团队中,这样的全球提交/推送几乎总是偶然的.

Mercurial 1.7最近用hg status -S和改善了情况hg outgoing -S,显示了子库存的变化; 但是,这仍然需要人们关注.

如果子目录中的更改/提交原本会被提交/推送,那么Mercurial是否有办法制作hg commit和hg push中止?

version-control mercurial dvcs mercurial-subrepos

17
推荐指数
2
解决办法
4289
查看次数