Скрипт хука для блокировки фиксации файлов с определенной строкой - PullRequest
2 голосов
/ 18 ноября 2011

Я реализовал приведенный ниже код в моем файле сценария перехвата abc-pre-commit.bat, чтобы запретить коммит, если файлы содержат строку cod_bank

SETLOCAL
SET PATH=C:\Windows;C:\Windows\system32;D:\SCC\SVN146\ bin;C:\Program Files\VisualSVN Server\bin;
set SVNLOOK = "C:\ProgramFiles\VisualSVNServer\bin\svnlook.exe"

set REPOS=%1
set TXN=%2

%SVNLOOK% diff %REPOS% -t %TXN% | findstr /I /M /L cod_bank > nul


if %errorlevel% gtr 0 (
exit 0
) else (
echo Your commit has been blocked because it contains the keyword cod_bank. 1>&2
exit 1
)

Мой файл содержит строку cod_bank

OUTPUT: в окне фиксации отображается

commit blocked by pre-commit-hook

Также не отображается сообщение эха, как я могу сохранить o / p команды svnlook diff.Я пытался, но безуспешно.

1 Ответ

2 голосов
/ 27 июня 2012

в Linux Это работает так:

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


SVNLOOK=/usr/bin/svnlook
$SVNLOOK diff "$REPOS" -t "$TXN" | \
[[ grep "^+cod_bank">/dev/null exit 0 ]]  ||
echo "Your commit has been blocked because it contains the keyword cod_bank"  >&2
exit 1
...