1

当我推送到 svn 服务器时,我正在尝试为我的项目创建一个 zip 存档。我的旧设置将使用远程 git repo 上的 post-receive 挂钩来执行此操作。但是,我现在使用的是 svn,而且我不拥有 svn 服务器,所以我不能在那里放任何东西。我已经设置了以下 pre-push 钩子,但这没有运行git svn dcommit

$cat .git/hooks/pre-push
#!/bin/sh
git archive -o foo_bar.zip --prefix foo_bar/ master

关于我可以使用哪个钩子的任何想法?

谢谢!

4

2 回答 2

2

您正在使用git-svn,对吗?你没有在任何地方引用它,所以我不确定你是。这些git-hooks不适用于纯 svn,您必须使用 git!这可能很明显,但最好确定一下。

至于你的问题,你可能会使用一个post-commit钩子:一旦你完成了一个提交,你就可以把它压缩起来。这样做的缺点是您不会将 zip 文件添加到您的存储库中。

如果您需要存储库上的 zip,请使用pre-commit钩子和stash您的树。您可以轻松地归档此树,将压缩文件添加到 git 索引,然后就完成了!

这个答案可能会帮助您编写脚本:Git archive of repository with uncommitted changes

于 2013-12-19T19:25:51.320 回答
1

既然没有这样的钩子,不如创建一个别名呢?

dcm = "!f(){ git archive -o foo_bar.zip --prefix foo_bar/ master; git svn dcommit; }; f"
于 2013-12-19T19:28:57.737 回答