问题标签 [pre-commit]

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.

0 投票
2 回答
3471 浏览

svn - SVN 预提交挂钩中的用户验证

在 SVN 预提交挂钩中找到了一个有用的 SVN 预提交挂钩,用于避免 mcdon 更改标签子目录

我想在提交之前对用户添加验证检查。我可以做下面的事情吗?

上述预提交脚本失败,因为所有用户都可以提交他们的文件。此外,'echo' 命令不起作用,因为我在上面没有看到任何 echo 语句。任何人都可以帮忙吗?

0 投票
1 回答
457 浏览

eclipse - 在 Eclipse 中,如何使用一种格式进行编辑并使用另一种格式提交

我团队中的每个人都使用相同的格式化程序设置,因此 SVN 存储库中的文件不会根据格式化进行更改。我不喜欢选择的格式,我几乎无法阅读。

是否有 Eclipse 插件或 Eclipse 中的设置会在编辑时自动将文件重新格式化为我自己的样式,然后在提交之前将文件重新格式化为我的团队设置?

我已经看到在提交之前应用当前格式的提示,但我希望它在提交之前应用其他格式。

0 投票
1 回答
1182 浏览

svn - SVN 预提交钩子仅在 shell 脚本中验证子目录名称

我正在尝试添加一个预提交挂钩,以 yyyymmdd 格式验证子目录名称。它应该仅适用于特定目录而不适用于整个项目文件夹。请帮助编写挂钩脚本。

0 投票
2 回答
1118 浏览

svn - SVN Hook 脚本执行

我正在使用一个 SVN 项目。任何人都可以说明使用 Cygwin 执行 SVN 预提交钩子脚本的方法和详细过程吗?先感谢您。

0 投票
5 回答
2115 浏览

git - 运行预提交钩子后要执行什么?

对于修改暂存文件的预提交挂钩,我需要弄清楚在运行挂钩后必须暂存的内容。

预提交钩子在应该提交的文件上应用了一些漂亮的打印。该钩子执行以下任务:

  • 用空格替换制表符
  • 删除行尾的尾随空格
  • 删除双空行*)
  • 如果缺少,请在文件末尾添加一个空行*)

标有*)的操作是导致下述问题的操作。

完成这些之后,钩子将修改后的文件添加到索引中,使用git add $filename. 这样,整个文件被暂存,我不再能够只提交修改文件的一小部分(即大块)。

当然,我可以git add --no-verify绕过钩子,但是在使用git gui. 另外,我希望在文件的分段行上应用漂亮的打印,所以绕过钩子不是我的目标。

有没有办法在应用漂亮打印后找出必须添加到索引中的内容,以便我可以在运行钩子后暂存正确的内容,而不是暂存整个文件?


编辑 1:
虽然David Brigada提供的答案看起来很有希望,但它不起作用:保持分阶段的更改完好无损(这是好的部分),但是(至少在 msysgit 上)它将所有更改放入存储中(不仅是未分阶段那些)。这会在将存储弹出回 WC 时导致合并冲突,因为暂存行可能会被修改。git stash --keep-index


编辑 2:David
的更新答案也没有成功,因为 git 拒绝将 stash 合并到一个脏 WC 中。


编辑 3:来自larsks
回答指出我使用. 乍一看,这似乎是正确的,但我发现签入的版本是通过过滤器运行的,而 WC 与签入的版本不同,这很令人困惑。至少,这是我的经验,并得到Git Book中以下评论的支持:.gitattributes

如果您提交这些更改并再次签出文件,您会看到正确替换的关键字

我必须删除该文件,然后再次检查它以查看过滤器应用的更改?没门!还有更多提示吗?

0 投票
4 回答
2950 浏览

svn - 如何对 SVN 中的特定文件夹使用预提交挂钩(Windows 批处理文件)?

我想在 SVN(即 Windows 的 .bat 文件)中创建一个预提交挂钩来检查空日志消息。此外,我只想针对 SVN 中的特定文件夹进行此检查。

有人可以帮忙吗?

问候, Ruhee Jaiswal

0 投票
2 回答
6012 浏览

git - 使用预提交挂钩停止特定作者的 git 提交

我的计划是使用 git 来跟踪 /etc 中的更改,但是在提交时,我希望通过在命令行上添加 --author 选项来让进行更改的人将自己指定为作者。

所以我想以root身份停止意外提交。

我尝试创建这个预提交钩子,但它不起作用 - 即使我在提交行上指定了作者,git var 仍然返回 root。

0 投票
2 回答
10260 浏览

python - Git预提交钩子:获取已更改文件的列表

我正在开发验证和 linting 实用程序以与各种提交挂钩集成,包括 Git 一个

https://github.com/miohtama/vvv

目前,每次提交时都会针对整个项目代码库运行验证器和 linter。但是,仅针对更改的文件运行它们会更加优化。为此,我需要知道我的 Git 预提交挂钩中的更改文件列表(在 Python 中)

https://github.com/miohtama/vvv/blob/master/vvv/hooks/git.py

我必须提取哪些选项来提取更改的文件列表(如果重要的话,在 Python 中)?

0 投票
2 回答
981 浏览

python - 无法使用 Windows 服务器使 SVN 预提交脚本失败

我正在编写一个 SVN pre-commit.bat 文件,该文件调用 Python 脚本来查询我们的问题跟踪系统,以确定用户提供的问题跟踪 ID 是否处于正确状态(例如“打开”状态)并与权限相关联项目。SVN 服务器正在运行 Windows(我认为是 2003 服务器 - 如果有问题,我可以与我们的 IT 小组联系......)。

问题是我似乎无法使 SVN 提交失败*;它总是成功的。AFAIK Python 脚本正在做它应该做的事情;它调用“sys.exit(1)”表示失败(调用“sys.exit(0)”表示成功)。对于 .bat 文件,我在这个论坛中改编了一些据说可以工作的例子,但到目前为止,还没有运气。这是稍微简化的 .bat 文件,

我再次知道脚本正在运行(即不是服务器上的环境变量问题),并且sys.exit(1)代码正在被命中。此外,我很确定“err”函数正在运行,仅仅是“退出 1”返回码被 SVN 忽略了吗?

*注:不完全正确;我提交失败的唯一方法是 Python 脚本出现运行时错误。但是,在这种情况下,生成故意的运行时错误不是可接受的解决方法。

感谢您的关注。

0 投票
2 回答
4830 浏览

svn - 用于 checkstyle 的 Svn 预提交钩子

这是我当前的 checkstyle shell 脚本。如果我在 TRUNK 上提交而不是在 Branches 上提交,它工作正常。我真的不明白为什么它不起作用。有人可以帮帮我吗?

谢谢!