Проблема с фиксацией после коммита - PullRequest
0 голосов
/ 29 июля 2011

Я хочу обновить файлы, которые были изменены, так как мой размер SVN составляет 20 ГБ.

Мой репозиторий SVN находится по адресу: / media / disk3 / velsvn / projects
Моя папка Checkout находится по адресу: / media / disk2 / www / htdocs


(Ссылка: Использование SVN-хука post-commit для обновления только файлов, которые были зафиксированы )

Мой файл после фиксации выглядит так:

#!/bin/bash
REPOS="$1"  
REV="$2"  
cd /media/disk2/www/htdocs  
svnlook dirs-changed /media/disk3/velsvn/projects | xargs /usr/bin/svn up -N

(Я использовал REPOS и REV, но они давали ошибку, поэтому я удалил их. При использовании REV он говорил, что REV не определен. При использовании REPOS он говорил, что [REPOS] / format не является файлом или не выходит.)

Я получаю следующую ошибку при попытке выполнить этот файл -
Пропущен 'PHP / htdocs / Supporter' Пропущено «PHP / htdocs / campus»


Может ли кто-нибудь помочь мне в этом отношении. Я потратил впустую 2 дня, работая над этим, и все же не нашел никакого решения.

С уважением,

Нитин

1 Ответ

0 голосов
/ 17 августа 2011

Я мог бы решить проблему, изменив мою процедуру.Перечислите это здесь, поскольку это может помочь кому-то еще.Может быть, это не идеальное решение, но, по крайней мере, оно работает.

POST_COMMIT

#!/bin/sh
wget http://localhost/update_svn.php

update_svn.php

<code><?php
$output = shell_exec('/media/disk3/velsvn/projects/hooks/svn_update_step1.sh');
echo "<pre>$output
";?>

svn_update_step1.sh

ssh -i /media/d/mykey/id_rsa velsvnuser@localhost /media/disk3/velsvn/projects/hooks/svn_update_step2.sh

svn_update_step2.sh

#!/bin/sh
cd /media/disk3/velsvn/projects/hooks
rm -f filelist
rm -f log
whoami >> log

    svnlook dirs-changed /media/disk3/velsvn/projects/  | sed "s/^..//" | awk '{ print substr( $0, 9 ) }' >> /media/disk3/velsvn/projects/hooks/filelist; sed -i -e 's#^#/media/disk2/www/htdocs#' filelist; cat /media/disk3/velsvn/projects/hooks/filelist | xargs /usr/bin/svn up -N >> /media/disk3/velsvn/projects/hooks/log

Примечание: 1. / media / d / mykey / id_rsa - это ключ, который был сгенерирован для доступа по SSH. Это гарантирует, что система не ждет, пока пользователь предоставит пароль для подключения к SVN, а также для запуска оболочкискрипты. 2. Файл POST-COMMIT и файлы оболочки sh1 и sh2 получили + x mod, чтобы их можно было выполнять.

Пожалуйста, не стесняйтесь комментировать этот пост и предлагать более привлекательное решение.знаю прямо сейчас, это решение работает :) 1029 *

...