Фон: есть сайт, который мне нужно отредактировать. Единственный способ получить доступ к файлам - это FTP. Но так как я не единственный человек, который будет редактировать его (также я хотел бы иметь возможность отката и множество других причин), нам нужна система контроля версий.

Ранее (на нашем собственном сервере, где у нас есть root) мы использовали SVN с перехватом post-commit, который обновлял файлы в каталоге сайта (сайт раньше был на том же сервере Linux).

Можно ли сделать пост-фиксацию хука, который загружает обновленные файлы через FTP на удаленный сервер? Есть ли способ обнаружить «только что обновленные» файлы? Может быть готовое решение?

1 ответ1

0

Можно ли сделать пост-фиксацию хука, который загружает обновленные файлы через FTP на удаленный сервер?

Да возможно

Есть ли способ обнаружить «только что обновленные» файлы?

Как минимум два (AFAICR):

  • svn log -v -q -r HEAD REPO-URL (из любого места)
  • svnlook changed REPO_PATH (для хоста REPO, где REPO_PATH - локальный путь на FS)

Ну, как я вижу, вы должны решить две последовательные подзадачи в ловушке после фиксации (если вы решаете правильную задачу: обновить сайт из репо, а не обратное извращение ^ обновить репо измененными файлами из некоторого независимого местоположения)

  • построить дерево файлов, затронутых ревизией
  • загрузить это дерево, используя чистый FTP, на удаленный хост

Решения для задачи 1

Любой из первых трех скриптов, упомянутых мной здесь (в дикой сети могут существовать и другие реализации)

Решение для задачи 2

Использование части клиента NcFTP (NcFTPPut) для загрузки дерева в простой однострочной команде

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .