Perl의 Subversion Pre-Commit Hook에서 Commited 파일에 액세스하려면 어떻게해야합니까?
-
18-09-2019 - |
문제
다음을 수행해야합니다.
Perl에 사전 커밋 후크를 작성하십시오
Hook는 일부 텍스트가 있도록 커밋 된 모든 파일을 확인하고 해당 텍스트를 찾을 수없는 경우 실패해야합니다.
기본적으로 커밋 된 파일을 읽는 Perl Hook의 예가 필요합니다.
나는 최소한의 코드로 우아한 솔루션을 찾고 있습니다.
참고 : 후크가 사용해야합니다 svnlook
또는 파일을 찾는 다른 더 나은 방법.
해결책
사전 커밋 후크 :
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
}
}
}
다른 팁
수정하기가 너무 어렵지 않아야합니다 파이썬 의이 예 당신이 원하는 것을 할 수 있습니다. 참조 hooks
일부 템플릿에 대한 저장소의 하위 디렉토리 후크 스크립트 그리고 후크 스크립트를 기여했습니다.
제휴하지 않습니다 StackOverflow