Фон: есть сайт, который мне нужно отредактировать. Единственный способ получить доступ к файлам - это FTP. Но так как я не единственный человек, который будет редактировать его (также я хотел бы иметь возможность откатить и множество других причин), нам нужна система контроля версий.
Ранее (на нашем собственном сервере, где у нас есть root) мы использовали SVN с перехватом post-commit, который обновлял файлы в каталоге сайта (сайт раньше был на том же сервере Linux).
Можно ли сделать пост-фиксацию, которая загружает обновленные файлы через FTP на удаленный сервер? Есть ли способ обнаружить «только что обновленные» файлы? Может, готовое решение?
ftp
вместоcp
. Я не вижу никакой исследовательской работыОтветы:
Да возможно
Как минимум два (AFAICR):
svn log -v -q -r HEAD REPO-URL
(из любого места)svnlook changed REPO_PATH
(для хоста REPO, где REPO_PATH - локальный путь на FS)Ну, как я вижу, вы должны решить две последовательные подзадачи в ловушке после фиксации (если вы решаете правильную задачу : обновить сайт из репо, а не обратное извращение ^ обновить репо измененными файлами из некоторого независимого местоположения)
Решения для задачи 1
Любой из первых трех скриптов, упомянутых мной здесь (в дикой сети могут существовать и другие реализации)
Решение для задачи 2
Использование части клиента NcFTP ( NcFTPPut ) для загрузки дерева в простой однострочной команде
источник