хороший автономный клиент SVN - PullRequest
2 голосов
/ 10 июня 2009

В настоящее время я работаю с партнером над проектом PHP.

Мы оба редактируем напрямую на локальном сервере (все файлы хранятся на сервере, на котором также работает стек WAMP). Я ищу клиента SVN, который будет отслеживать и сохранять все изменения в папке htdocs и обновлять удаленный репозиторий SVN через Интернет.

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

Например, скажем, я сохраняю file1.php на сервере. Это обновит file1.php на сайте SVN. Если я вдруг обнаружу, что мои последние версии файла неверны, я могу перейти на сервер (или использовать какой-нибудь веб-интерфейс с моего компьютера) и заменить file1.php более старой версией.

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

Любые рекомендации?

Ответы [ 7 ]

7 голосов
/ 10 июня 2009

Я не знаю ни одного программного обеспечения для этого. Вероятно, было бы нетрудно написать это с помощью стандартного клиента SVN командной строки. То есть иметь скрипт batch / shell, который выполняется регулярно и проверяет все, что изменилось.

Тем не менее, я бы очень сильно посоветовал не делать этого!

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

Явная ручная регистрация гарантирует, что вы проверяете только то, что работает (как правило) и позволяет давать ценные комментарии о регистрации.

Затем сервер может быть обновлен до известной исправной версии из репозитория управления версиями.

Похоже, вы работаете в производственной системе. Я бы настоятельно рекомендовал рассмотреть возможность использования среды (ий) разработчика и описанного выше подхода.

1 голос
/ 10 июня 2009

Я не нашел ни одного (у меня тоже были такие же проблемы).

Мы делаем это в 2 этапа.

Когда мне нужно разработать часть программного обеспечения - я разветвляю магистраль и модифицирую ее, когда другие делают то же самое, чтобы выполнить свои задачи. Затем мы объединяем ветви и проверяем их. После тестирования ствол обновляется этим объединенным патчем.

И, наконец, cronjob (или вручную) запускает скрипт, который переводит ресурс в режим сопровождения, удаляет htdocs и экспортирует туда новый транк, а затем, при необходимости, chown / chmod.

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

1 голос
/ 10 июня 2009

Я еще не пробовал, но SVN-Monitor может быть полезным. Для работы с ним вам понадобится упомянутый выше клиент ToirtoiseSVN.

1 голос
/ 10 июня 2009

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

0 голосов
/ 10 июня 2009

Не знаю, может быть, хук svn post-commit может быть полезен, учитывая правильный сценарий? Вы можете автоматически внедрить изменения из текущей ревизии (то есть ревизии, только что созданной до вызова ловушки) в производственную систему. Я думаю, это то, о чем вы просите?

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

Извиняюсь, если меня неправильно поняли.

Редактировать: Перечитав вопрос, я думаю, что вы ищете автоматические коммиты в хранилище, а не автоматические развертывания из него. Поскольку это так, предложенное другими решения по расписанию сценариев является лучшим подходом, о котором я могу подумать. +1 тем, кто предложил это.

0 голосов
/ 10 июня 2009

Я не верю, что это возможно или так просто.

Когда вы помещаете папку под SVN на клиенте, создается особая структура папок, чтобы отслеживать, какие файлы заблокированы, изменены и так далее. Попытка обновить папку SVN на сервере без предварительной проверки файлов или редактирования файлов без их проверки (как вы этого хотите) - ПЛОХАЯ идея.

Запланированное задание, которое собирает вашу папку htdocs в zip-файл, записывает ее через имя файла и затем загружает ее в какое-либо удаленное хранилище, может быть более простым и быстрым способом управления этим.

0 голосов
/ 10 июня 2009

Возможно, вы захотите рассмотреть решение для управления распространением исходного кода (Bazaar, Git, Mercurial) для предлагаемого вами сценария, когда у вас есть два коммиттера, работающие с двумя кодовыми базами. После этого вы можете иметь локальные коммиты, а также выдвигать и переносить изменения в два пункта назначения в зависимости от ситуации.

Но в случае вашей непосредственной проблемы вам может понадобиться какая-то утилита, которая отслеживает изменения файлов на обоих концах и затем при необходимости вызывает команду svn client, как только обнаруживает изменения

...