¿Cómo puedo acceder al archivo comprometida de una subversión gancho pre-commit en Perl?

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

  •  18-09-2019
  •  | 
  •  

Pregunta

Necesito hacer lo siguiente:

  1. Escribir pre-commit gancho en Perl

  2. gancho debe comprobar todos los archivos que están siendo cometidos por la presencia de algún texto, y fallar si no se encuentra que el texto

Básicamente, necesito un ejemplo de Perl gancho que lee los archivos que se cometen.

Estoy muy por alguna solución elegante con la menor cantidad de código.

Notas: Gancho debe utilizar svnlook u otra forma mejor para encontrar archivos.

¿Fue útil?

Solución

gancho pre-commit:

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

    }
  }
}

Otros consejos

Parece que tiene la fundación descubierto ya:

  • obtener la lista de todos los archivos que se cometen
  • buscar cada uno de ellos a su vez de texto en particular
  • si no se encuentra el texto, rechazar cometer

Encontrará información sobre la escritura de pre-commit ganchos en el manual de .

No debería ser demasiado difícil de modificar este ejemplo en Python para hacer lo que quiera. Véase también el subdirectorio hooks de su repositorio para algunas plantillas y gancho guiones y scripts gancho contribuido .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top