Vraag : SVN: Het Manuscript van de haak om Filenames met ruimten en speciale klusjes te vermijden

Hello,

Is daar om het even welk manuscript van de Haak SVN voor Linux om gebruikers begaand filenames met ruimten en speciale klusjes te vermijden?

Thanks!

 

Antwoord : SVN: Het Manuscript van de haak om Filenames met ruimten en speciale klusjes te vermijden

Hier snelle geeft ruw aan de code in de bovengenoemde verbinding uit. Dit zou voor u moeten werken. Ik heb het niet niettemin getest (ik heb geen repo SVN om het nu te testen).

#! /bin/env python
De „ontwrichting van het voorbeeld pre-commit haak. “

def command_output (cmd):
  „Vang de standaardoutput van een bevel. “
  voer subprocédé in
  keer subprocédé terug. Popen (
      cmd.split (), stdout=subprocess.PIPE) .communicate () [0]

def files_changed (look_cmd):
  """ Maak een lijst van de dossiers die door deze transactie worden toegevoegd of worden bijgewerkt.

„svnlook veranderd“ geeft output als:
  U boomstam/file1.cpp
  Een boomstam/een file2.cpp
  """
  def filename (lijn):
      terugkeer lijn [4:]
  def added_or_updated (lijn):
      terugkeer lijn en lijn [0] binnen („A“, „U“)
  terugkeer [
      filename (lijn)
      voor lijn in command_output (look_cmd „veranderde“ %) .split (“ \ n ")
      als (lijn)] added_or_updated

def check_filesname (look_cmd):
  „Controle voor ongeldige filenames. \
  Het staat Alfabetten, Aantallen toe, stormt (-), onderstreept (_) en punten (.) „
  allowedRegex=re.compile („^ [a-zA-Z0-9 \ - _ \.]*$“)
  invalid_files = [
      FF voor FF files_changed binnen (look_cmd)
      als niet allowedRegex.match (FF)]
  als len (invalid_files) > 0:
      sys.stderr.write (de „Volgende dossiers hebben ongeldige filename: \ n%s \ n“
                       % „\ n“ .join (invalid_files))
  terugkeer len (invalid_files)

def leiding ():
  gebruik = gebruik """: %PROG REPOS TXN

De looppas pre-commit opties op een bewaarplaatstransactie. """
  van de optparseinvoer OptionParser
  syntactische parser = OptionParser (usage=usage)
  parser.add_option („- r“,“--revisie ",
                    help= de " wijze van de Test. TXN verwijst eigenlijk naar een revisie. „,
                    action= " store_true ", default=False)
  fouten = 0
  probeer:
      (opteert, (repos, txn_or_rvn)) = parser.parse_args ()
      look_opt = („--transactie“,“--revisie ") [opts.revision]
      look_cmd = „svnlook %s %s %s %s“ % (
          „%s“, repos, look_opt, txn_or_rvn)
      fouten += check_filesname (look_cmd)
  behalve:
      parser.print_help ()
      fouten += 1
  terugkeer fouten

als __name == „__main“:
  de invoer sys
  hoofd sys.exit (())
Andere oplossingen  
 
programming4us programming4us