【发布时间】:2010-12-13 22:16:13
【问题描述】:
我需要做以下事情:
在 Perl 中编写预提交挂钩
Hook 应检查所有提交的文件是否存在某些文本,如果未找到该文本则失败
基本上,我需要一个读取提交文件的 Perl 钩子示例。
我真的在寻找一些代码最少的优雅解决方案。
注意事项:
Hook 应该使用svnlook 或其他更好的方式来查找文件。
【问题讨论】:
标签: perl svn pre-commit-hook
我需要做以下事情:
在 Perl 中编写预提交挂钩
Hook 应检查所有提交的文件是否存在某些文本,如果未找到该文本则失败
基本上,我需要一个读取提交文件的 Perl 钩子示例。
我真的在寻找一些代码最少的优雅解决方案。
注意事项:
Hook 应该使用svnlook 或其他更好的方式来查找文件。
【问题讨论】:
标签: perl svn pre-commit-hook
预提交钩子:
my $repos = shift;
my $txn = shift;
foreach my $line (`$svnlook changed -t $txn "$repos"`)
{
chomp($line);
if ($line !~ /^([AUD_]).\s\s(.+)$/)
{
print STDERR "Can't parse [$line].\n";
exit(1);
}
else
{
my $action = $1;
my $file = $2;
chomp($file);
#If path has trailing slash, then it is a folder and we want to skip folders
if($file =~ /\/$/)
{
next;
}
my $fileContent = `$svnlook cat -t $txn "$repos" "$file"`;
if ($action =~ /[AU]/)
{
my @lines = split(/\n/, $fileContent );
#Check for whatever you need in this file's content
}
}
}
【讨论】:
修改this example in Python 做你想做的应该不会太难。另请参阅存储库的hooks 子目录以获取一些模板以及hook scripts 和contributed hook scripts。
【讨论】:
【讨论】: