2015-09-10 5 views
-1

Я собираюсь попытаться как можно скорее сообщить о своей проблеме.Нужна помощь [шаг за шагом] при настройке и тестировании привязки pre-commit в SVN, запущенной на машине Linux, на которой я получаю доступ удаленно

Я на компьютере с ОС Windows. Репозиторий SVN находится на машине Linux.

Я обращаюсь к машине Linux удаленно, используя Putty и регистрируюсь как root. Все делается через командную строку.

Теперь я должен установить крюк предварительной фиксации, который не позволит использовать специальные символы, такие как [éáú] в файлах исходного кода. Чтобы сделать это, я решил выяснить, как настроить привязку до фиксации.

Вот что я сделал:

  1. нашел сценарий,
  2. Пошел в папку крючков в хранилище. Удалены расширение файла предварительно commit.tmpl
  3. Pasted сценарий там и спас
  4. Ран команду CHMOD на файл предварительно commit.tmpl

Затем я попытался изменить совершали в хранилище, и я получил:

Commit блокирован перед фиксацией ловушкой (выход кода 255) без выхода

Хорошо, я понял, что что-то не так в том, как я настроил файл предварительной фиксации, поэтому я удалил скрипт и добавил простое эхо «hello world».

Теперь фиксация проходит, но эхо-сообщение вообще не появляется. Если я положил выход 1 в конце скрипта, я получу код ошибки 1, и эхо-сообщение все еще не отображается.

Я буквально искал высоко и низко в Интернете и не нашел решения для моей проблемы.

Что мне нужно:

  • объяснение, почему эхо-сообщения не отображаются
  • Если возможно, шаг за шагом о том, как создать и протестировать простой скрипт

Например, я видел много сценариев, где есть что-то вроде этого:

#!/bin/bash
REPOS="$1"
TXN="$2"

Что я должен поставить в REPOS и в TXN? Я предполагаю, что в REPOS я должен поставить путь репозитория? Как насчет TXN?

Любая помощь приветствуется.

Приветствия

+0

'$ 1' и' $ 2' является переменными, представляющим первыми и вторыми аргументами сценария. Предположительно SVN правильно запускает ваш скрипт. Вам больше не нужно ничего делать. То, что эти * означает *, зависит от крючка, а документация по подключению SVN должна вам сообщать. –

+0

http://svnbook.red-bean.com/en/1.7/svn.ref.reposhooks.pre-commit.html –

+0

Я уже читал, что этан, это не помогло. На самом деле, даже не так просто, как echo "hello world" exit 1 работает – tyranius

ответ

1

заготовок из предварительно совершить крюк (* Никс-принят)

Всегда неудачу

#!/bin/bash 
echo You failed 1>&2 
exit 1 

фиксации Sample

>svn commit -m "Changes" 
Sending  Folder1\Folder2\Folder3 
Sending  Folder4 
svn: E165001: Commit failed (details follow): 
svn: E165001: Commit blocked by pre-commit hook (exit code 1) with output: 
You failed 

Примечания правильно Перенаправление вывода в echo

О $ РЬИХ и $ TXN (уже связанно) СВНЫ Книга главы есть полное объяснение

В аргументах командной строки, передаваемые в программу крючков, для того, , являются:

  1. путь Repository
  2. Commit имя транзакции

, потому что нужны эти параметры для наиболее часто используется в предварительной фиксации крюков команд, как svnlook