Frage

Ich führe SVN auf einem Windows-Server aus und verwende Perl-Skripte, um einige Vorkommiten zu implementieren. Ich sehe die folgende Fehlermeldung von Tortoisesvn:

Fehler !! Scripterror !! Zeile nicht analysieren: _u Pfad/zu/Dateien/Trunk

Und das ist das Skript:

foreach my $line (`$svnlook changed -t "$txn" "$repos"`)
{
  chomp($line);
  if ($line !~ /([AUD]).\s\s(.+)$/)
  {
    print STDERR "!!Script Error!! Can't parse line: $line\n";
    exit(1);
  }
  else
  {
     # perform some actions 
  }
}

exit(0);

Ich habe versucht, die Regex durch Dinge wie zu ersetzen /_([AUD]).\s\s(.+)$/ ohne Erfolg - ich habe es sogar versucht /.*([AUD]).\s\s(.+)$/.

Gedanken? Anregungen?

War es hilfreich?

Lösung

Ohne einen Blick in die SVN \s\s In all Ihren Regexes.

Bearbeiten] OK, jetzt habe ich einen Blick darauf angesehen SVNLOOK -Referenz. Erstens schlägt Ihr Regex für aktuelle Versionen von SVNLOOK fehl, da der Ausgang wie folgt angegeben ist:

  • Die ersten beiden Spalten enthalten den Status
  • Der Pfad beginnt in der fünften Spalte
  • Der Status kann einer von A (hinzugefügt), u (Inhalt geändert), D (gelöscht), _u (Eigenschaftenänderungen) und UU (Inhalt + Eigenschaften geändert) sein.

Sie sollten also in der Lage sein, mit so etwas zu stimmen ^([_AUD]+)\s+(.+)$. Man kann genauer werden, aber das ist nicht notwendig.

Wenn dies nicht übereinstimmt, leiten Sie bitte die Ausgabe des Befehls in eine Datei ein und veröffentlichen Sie hier den entsprechenden Teil.

Andere Tipps

if ($line !~ /^_?([AUD])\s+(.+)$/ sollte gut funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top