Questione : SVN: Scritto del gancio per evitare i nomi di schedario con gli spazi ed i carboni dello special

Ciao,

Is là dello scritto del gancio di SVN affinchè Linux evitino gli utenti che commettono i nomi di schedario con gli spazi ed i carboni dello special?

Thanks!

 
class= del

Risposta : SVN: Scritto del gancio per evitare i nomi di schedario con gli spazi ed i carboni dello special

Qui un di massima rapido pubblica al codice nel collegamento di cui sopra. Ciò dovrebbe funzionare per voi. Non la ho provata comunque (non ho repo di SVN ora per provarlo).

#! pitone di /bin/env
“La sovversione di esempio pre-commit il gancio. „

command_output del def (cmd):
  “Bloccare l'uscita standard dell'ordine. „
  importare il processo secondario
  restituire il processo secondario. Popen (
      cmd.split (), stdout=subprocess.PIPE) .communicate () [0]

il def files_changed (look_cmd):
  Lista che del """ le lime hanno aggiunto o che aggiornato tramite questa transazione.

“lo svnlook variabile„ dà l'uscita come:
  Tronco/file1.cpp di U
  Un tronco/file2.cpp
  """
  nome di schedario del def (linea):
      ritraccia [4:]
  il def added_or_updated (linea):
      ritraccia e linea [0] in (“A„, “U„)
  rinviare [
      nome di schedario (linea)
      per la linea nel command_output (look_cmd % “variabile„) .split („ \ n ")
      se added_or_updated (linea)]

check_filesname del def (look_cmd):
  “Controllare per vedere se c'è nomi di schedario non validi. \
  Permette gli alfabeti, i numeri, i precipitare (-), i sottolineamenti (_) ed i puntini (.) “
  allowedRegex=re.compile (“^ [a-zA-Z0-9 \ - _ \.]*$")
  invalid_files = [
      FF per i FF in files_changed in (look_cmd)
      se non allowedRegex.match (FF)]
  se len (invalid_files) > 0:
      sys.stderr.write (“le seguenti lime hanno nome di schedario non valido: \ n%s \ n„
                       % “\ n„ .join (invalid_files))
  rinviare len (invalid_files)

conduttura del def ():
  uso = uso del """: %PROG REPOS TXN

Funzionare pre-commit le opzioni su una transazione del deposito. """
  dall'importazione OptionParser del optparse
  analizzatore = OptionParser (usage=usage)
  parser.add_option (“- r„,„--revisione ",
                    modo di prova del help= ". TXN realmente si riferisce ad una revisione. “,
                    action= " store_true ", default=False)
  errori = 0
  prova:
      (sceglie, (repos, txn_or_rvn)) = parser.parse_args ()
      look_opt = ("--transazione„,„--revisione ") [opts.revision]
      look_cmd = “svnlook %s %s %s %s„ % (
          “%s„, repos, look_opt, txn_or_rvn)
      check_filesname di errori += (look_cmd)
  tranne:
      parser.print_help ()
      errori += 1
  errori di ritorno

se == “__main„ del __name:
  sistema dell'importazione
  sys.exit (principale ())
Altre soluzioni  
 
programming4us programming4us