LINUX.ORG.RU

Просто делает svn up в рабочей копии.

$ cat /home/svn/web/hooks/post-commit

cd /var/www/html/
svn up

post-commit должен быть исполняемым.

fjoe
()
Ответ на: комментарий от fjoe

сделал так: в директории репозитрия есть папка hooks - в ней файл исполняемый файл post-commit с таким содержанием:

#! /bin/sh
cd /home/site-user/my-site.ru/httpdocs/
svn up

у файла права 777 и у директории которую надо обновить тоже 777 (сделал для тестирования)

делаю коммит - и ничего не происходит (в смысле файл сайта не меняется). SVN работает - вижу номера коммитов.

Может логи какие-то можно посмотреть - почему не срабатывает?

Neokortex
() автор топика
Ответ на: комментарий от fjoe

Вот - это если вручную:

N:/srv/svn/repositories/my-site.ru/hooks# sh post-commit
Skipped '.'
N:/srv/svn/repositories/my-site.ru/hooks# 
А что вы имеете в виду под конфликтами? Там просто файлы сайта лежат. Может их надо каким-то образом добавить в SVN?

Neokortex
() автор топика
Ответ на: комментарий от fjoe

блин, я туплюю.

эта директория у меня не является рабочей копией, как я понял

Neokortex
() автор топика
Ответ на: комментарий от Neokortex

А что вы имеете в виду под конфликтами?

Если в рабочей копии на сервере были обновлены файлы, и не сделан commit, а потом они же приедут из SVN, то случится конфликт. Ну если все правки делать только через SVN, то такого не случится.

fjoe
()
Ответ на: комментарий от fjoe

сделал рабочую копию - теперь если вручную запускать - скрипт работает, а если коммит сделать - нет. В чем может быть проблема?

Neokortex
() автор топика
Ответ на: комментарий от Neokortex

post-commit лежит в правильном svn? У меня, например, несколько svn:

$ ls /home/svn
crons  migration  test  web
У кажого свой post-commit в свою рабочую копию.

fjoe
()
Ответ на: комментарий от fjoe

я думаю проблема в том, что когда я запускаю скрипт через консоль - у меня запрашивается логин и пароль, а как сделать, чтобы автоматом проходилоо - ума не приложу.

гуглил - понял, что надо использовать --username и --password опции, но не знаю синтаксис и как указывать логин и пароль? или прописывать путь к файлам где хранится пароль?

Neokortex
() автор топика
Ответ на: комментарий от Neokortex

SVN репозиторий на том же сервере где и рабочая копия? Если да - то можно делать:

svn checkout file:///srv/svn/repositories/my-site.ru/
при создании рабочей копии на сервере и пароль не нужен.

fjoe
()
Ответ на: комментарий от xpahos

Не совсем `svn up`. Скорее создание рабочей копии оставляет .svn везде. Допустим есть дамп ревизии:

$ svn export -r 493 file:///home/svn/crons/ /home/username/svntest
[...]
Exported revision 493.
Приходит новый коммит:
$ svn export -r 494 file:///home/svn/crons/ /home/username/svntest
svn: Destination directory exists; please remove the directory or use --force to overwrite
svn: '/home/username/svntest' already exists

Если я пользуюсь export - мне надо каждый раз вытирать рабочую копию и экспортировать всё заново? Предвижу, что без этой метаинформации export не знает что где менялось и может только делать полные дампы ревизий.

fjoe
()
Ответ на: комментарий от fjoe

Если я пользуюсь export - мне надо каждый раз вытирать рабочую копию и экспортировать всё заново?

да

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

ты видимо не слышал как исходники у Opera/Yandex итд увели?

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

ты видимо не слышал как исходники у Opera/Yandex итд увели?

Opera ? Yandex ? Не. Не слышал.

Чтобы исходники не увели вот для апача:

<locationmatch "/.svn/">
order allow,deny
deny from all
</locationmatch>

fjoe
()
Ответ на: комментарий от fjoe

блин, проблема не решилась =(

Резюмирую: из под root запускаю скрипт через терминал - все работает.

С локального компьютера делаю коммит - update не происходит, видимо не выполняется post-commit файл.

Проверяю через терминал:

N:/srv/svn/repositories/my-site.ru/hooks# su www-data
N:/srv/svn/repositories/my-site.ru/hooks$ sh post-commit
Skipped '/home/site-user/my-site.ru/httpdocs/'
т.е. если не из под root'а выполняю скрипт - какие-то непонятки возникают :(

Neokortex
() автор топика
Ответ на: комментарий от Neokortex

если не из под root'а выполняю скрипт

значит на метаинформацию .svn в рабочей копии на сервере права не те выставлены и не из под root'а с ней невозможно работать.

Какой командой была сделана рабочая копия у разработчика?

fjoe
()
Ответ на: комментарий от Neokortex

Если коммиты идут через http сервер, значит права должны быть такими, чтобы позволять ему чтение/запись метаинформации в .svn папках.

fjoe
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.