Perl의 Subversion Pre-Commit Hook에서 Commited 파일에 액세스하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1689052

  •  18-09-2019
  •  | 
  •  

문제

다음을 수행해야합니다.

  1. Perl에 사전 커밋 후크를 작성하십시오

  2. 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 일부 템플릿에 대한 저장소의 하위 디렉토리 후크 스크립트 그리고 후크 스크립트를 기여했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top