Вопрос : SVN: Сценарий крюка для избежания Filenames с космосами и чарсами экстренный выпуск

Здравствулте!,

Is там любой сценарий крюка SVN для Linux для избежания потребителей поручая filenames с космосами и чарсами экстренный выпуск?

Thanks!

 
class=

Ответ : SVN: Сценарий крюка для избежания Filenames с космосами и чарсами экстренный выпуск

Здесь быстро грубая редактирует к Кодему в вышеуказанном соединении. Это должно работать для вас. Бедный человек iий испытал его однако (я не имею repo SVN, котор нужно испытать его теперь).

#! питон /bin/env
«Диверсия примера pre-commit крюк. »

command_output def (cmd):
  «Захватите выход команды стандартный. »
  импортируйте подпроцесс
  возвратите подпроцесс. Popen (
      cmd.split (), stdout=subprocess.PIPE) .communicate () [0]

def files_changed (look_cmd):
  Список """, котор архивы добавили или обновлено этими трудыами.

«измененное svnlook» дает выход как:
  Хобот u/file1.cpp
  Хобот/file2.cpp
  """
  filename def (линия):
      очередь возврата [4:]
  def added_or_updated (линия):
      очередь возврата и линия [0] в («a», «u»)
  возвратите [
      filename (линия)
      для линии в command_output (look_cmd «измененном» %) .split (» \ n ")
      если added_or_updated, то (линия)]

check_filesname def (look_cmd):
  «Проверите для инвалидных filenames. \
  Оно позволяет алфавиты, номера, черточки (-), подчёркивати (_) и многоточия (.) «
  allowedRegex=re.compile («^ [a-zA-Z0-9 \ - _ \.]*$")
  invalid_files = [
      ff для ff в после того как я files_changed (look_cmd)
      если не allowedRegex.match, то (ff)]
  если len (invalid_files) > 0:, то
      sys.stderr.write («следующий архивы имеют инвалидный filename: \ n%s \ n»
                       % «\ n» .join (invalid_files))
  возвратите len (invalid_files)

основа def ():
  использование = использование """: %PROG REPOS TXN

Побегите pre-commit варианты на трудыах архива. """
  от ввоза OptionParser optparse
  парсер = OptionParser (usage=usage)
  parser.add_option («- r»,»--изменение ",
                    испытательный режим help= ". TXN фактическ ссылается к изменению. «,
                    action= " store_true ", default=False)
  ошибки = 0
  попытка:
      (выбирает, (repos, txn_or_rvn)) = parser.parse_args ()
      look_opt = ("--трудыы»,»--изменение ") [opts.revision]
      look_cmd = «svnlook %s %s %s %s» % (
          «%s», repos, look_opt, txn_or_rvn)
      check_filesname ошибок += (look_cmd)
  за исключением:
      parser.print_help ()
      ошибки += 1
  возвращенные ошибки

если == «__main» __name:, то
  sys ввоза
  sys.exit (главным образом ())
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us