Хук SVN для копирования зафиксированных файлов и папок? - PullRequest
1 голос
/ 06 января 2012

У меня работает SVN-репозиторий на моем сервере Windows 2008. Сейчас в нем 2 приложения, назовем их App1 и App2. Я хочу скопировать зафиксированные файлы для приложений в другое место на сервере, по одному для каждого приложения. Я хочу сделать это после коммита, так что я думаю, что использовать крюк после фиксации?

Как узнать, какое приложение получило новые файлы и как будет выглядеть команда копирования? Файлы для App1 должны идти в c: \ app1, например, файлы для App2 в c: \ app2.

Спасибо за вашу помощь:).

Ответы [ 3 ]

2 голосов
/ 06 января 2012

Лучше всего, чтобы вы сохранили рабочую копию вашего хранилища на сервере по какому-то пути и в post-commit, как вы правильно упомянули, просто наберите svn update на извлеченной рабочей копии.

1 голос
/ 06 января 2012

post-commit действительно используется.

Если мы посмотрим на пример для svnnotify ..

#!/bin/sh

REPOS="$1"
REV="$2"

/usr/local/bin/svnnotify                    \
    --repos-path    "$REPOS"                \
    --revision      "$REV"                  \
    --subject-cx                            \
    --with-diff                             \
    --handler       HTML::ColorDiff         \
    --to            <your e-mail address>   \
    --from          <from e-mail address>

Похоже, что $ 1 - это путь репо, а $ 2 - это оборот. Таким образом, вы можете просто сделать регулярное выражение против $ 1, чтобы проверить, находится ли он в одном из двух интересующих вас путей, и принять соответствующие меры ( или нет)

Отобран из: Крюки пост-фиксации Subversion 101

0 голосов
/ 06 января 2012
#!/bin/bash

dir='/path/to/something/special'
dir='/path/to/other/thing'


if [[ $dir =~ "something" ]]; then
    echo "something dir"
fi

if [[ $dir =~ "other" ]]; then
    echo "other dir"
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...