Как запустить сценарий оболочки в качестве сценария подключения на стороне клиента для tortoiseSVN?

Я написал сценарий оболочки, и я пытаюсь поместить этот сценарий в качестве скрипта перехвата на стороне клиента, но не получаю механизм сценария, который я должен использовать для запуска файла .sh. Обычно, как я видел .js будет использоваться в качестве скрипта ловушки для SVN, к сожалению, я мало знаю о jscript, поэтому, пожалуйста, помогите мне, как добавить и запустить скрипт в SVN в качестве скрипта ловушки на стороне клиента. Я пытался использовать WScipt и CScirpt, но оба они не работают для моего сценария оболочки.

#!/bin/bash

MAIN_DIR="/cygdrive/e/Trunk/COMMON"
FILE_NAME="/cygdrive/e/Trunk_PRE_COMMIT_HOOK/long_path.txt"



lengthy_path=`find ${MAIN_DIR} -regextype posix-extended -regex '.{500,}'| awk -F'Trunk/' '{print $2}' > ${FILE_NAME}`



if [ -f ${FILE_NAME} ]
  then
   if [ -s ${FILE_NAME} ]
    then
        echo -e "\n\n\nSorry the path of a file exceeds 256 charectors, please make it shorten and try commiting again.You can see the path in $FILE_NAME"
    else
        echo -e "\n\n\nPath is perfect code can be committed..........."
fi
    else
        echo -e "\n\n\nFile not exists............"
fi

person K.John    schedule 15.11.2016    source источник
comment
@PatrickQuirk Да, забыл упомянуть, что я использую только Tortoise SVN. Не могли бы вы сообщить мне, какой механизм сценариев необходимо использовать для запуска сценария .sh, когда разработчик пытается зафиксировать код в репозитории.!   -  person K.John    schedule 16.11.2016
comment
Разместите свой сценарий. Расширение файла по большей части не имеет значения.   -  person Patrick Quirk    schedule 16.11.2016
comment
@PatrickQuirk Я добавил код, не могли бы вы посоветовать, как мне заставить его запускаться как скрипт ловушки в SVN? Буду очень признателен, если вы дадите мне ответ.   -  person K.John    schedule 17.11.2016


Ответы (1)


Вы пытаетесь выполнить сценарий bash в Windows, что означает, что вам либо необходимо установить Cygwin, либо вы можете использовать новый функции оболочки bash в Windows 10. У меня мало опыта ни в том, ни в другом, но, надеюсь, я смогу указать вам правильное направление.

  1. Если вы используете Cygwin, используйте следующую команду в диалоговом окне настройки сценария ловушки Tortoise (рис. 4.87 в документация):

    C:\cygwin\bin\bash C:\path\to\your_script.sh
    

    (Источник из этого ответа)

  2. Если вы используете оболочку bash Windows 10, используйте эту команду:

    bash -c "/mnt/c/path/to/your_script.sh"
    

    (По материалам эта страница в разделе "Выполнение команд Linux извне Bash")

Отказ от ответственности: я не тестировал ни один из них, потому что у меня нет времени или средств. Попробуйте и оставьте отзыв в любом случае.

person Patrick Quirk    schedule 17.11.2016
comment
На самом деле я уже пробовал так, как вы предложили выше; C:\cygwin\bin\bash C:\path\to\my_script.sh Но, к сожалению, он возвращает следующую ошибку FIND: Неверный переключатель, если он будет разрешен, я думаю, что сценарий будет выполнен. Я проверил это внутри файла cygwin fInd. ехе тоже есть.. - person K.John; 18.11.2016
comment
Ваш скрипт вызывает команду Windows find вместо cygwin. Замените find на /bin/find или /usr/bin/find, в зависимости от того, что существует. - person Patrick Quirk; 18.11.2016