LINUX.ORG.RU

svn update


0

0

Hi. Думаю сделать систему автообновлений на базе subversion. Мож кто подскажет, как сделать так, чтобы в случае неудачного svn update (связь пропала к примеру), файлы которые успели обновиться возвращались на ревизию перед началом update?

update to revision не пойдет, т.к. связь может отсутствовать.

★★

Re: svn update

Не знаю, реализована ли такая возможность в svn, но можно пойти в лоб. svn update запускать из скрипта, в случае неудачи (ненулевой код возврата) восстанавливать рабочую копию из бекапа, в случае удачи обновлять бекап для соответствия новой резизии.

И не забывать про скрытые директории .svn/

plumbum ()

Re: svn update

> Думаю сделать систему автообновлений на базе subversion.

Это прекрасный пример использования дрели для забивания гвоздей.

tailgunner ★★★★★ ()
Ответ на: Re: svn update от fghj

Re: svn update

plumbum@celerond:~$ svn help revert

...

  Note: ... However, it does not restore removed directories.
                        ^^^^^^^^^^^^^^^^    

plumbum ()
Ответ на: Re: svn update от tailgunner

Re: svn update

В лоб нехоцца.

>Это прекрасный пример использования дрели для забивания гвоздей.

Не думаю. почему бы и не использовать svn?

> svn revert -R

Не пойдет. Это не локальные изменения. :(

k0l0b0k ★★ ()
Ответ на: Re: svn update от Kpoxman

Re: svn update

Думал. Но у клиентов там гребанный виндавс

k0l0b0k ★★ ()
Ответ на: Re: svn update от k0l0b0k

Re: svn update

>>Это прекрасный пример использования дрели для забивания гвоздей.

>Не думаю. почему бы и не использовать svn?

1) Чем это лучше rsync? 2) ты учел, что в каталогах .svn лежат полные копии всех файлов?

tailgunner ★★★★★ ()
Ответ на: Re: svn update от tailgunner

Re: svn update

Да хер с ними, с копиями - это не public software. А вот про rsync +5, пошел курить доку.

k0l0b0k ★★ ()
Ответ на: Re: svn update от tailgunner

Re: svn update

Не, не то. svn в этом плане удобней - есть номер версии (ревизии), всегда можно откатится назад (если есть связь), можно делать бранчи, и многое другое. Пока решения не нашел, буду бить лбом %)

k0l0b0k ★★ ()
Ответ на: Re: svn update от k0l0b0k

Re: svn update

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

То есть релизов (сопровождающихся бинарными сборками) у этой софтины не бывает? Если бывают, то что - ты собираешься их хранить в репозитории? Или в репозитории хранятся бинарные сборки _всех_ ревизий?

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

tailgunner ★★★★★ ()
Ответ на: Re: svn update от tailgunner

Re: svn update

>Если бывают, то что - ты собираешься их хранить в репозитории

Именно так. весь срез софтины лежит в репозитории, если чего изменилось - commit его, при этом основная масса не меняется (100Мб звуков к примеру). Если все это папками зачудить, то 10 версий - гиг, нафига такое счастье? Можно отдельно хранить, но гемор возрастает в несколько раз. Да и истории не будет. Бранчи - у двух клиентов одна и та же прога, но у одного она вверхногами перевернута допустим. Вот тебе и бранч (а все остальное - модули, графика, звуки остается тем же).

k0l0b0k ★★ ()
Ответ на: Re: svn update от k0l0b0k

Re: svn update

> Если все это папками зачудить, то 10 версий - гиг

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

> Да и истории не будет.

Зачем _клиенту_ история?

tailgunner ★★★★★ ()

Re: svn update

Ээ... А Microsoft Installer чем не угодил?

Dr_ZLO ()
Ответ на: Re: svn update от tailgunner

Re: svn update

>Ну, если у вас по 10 версий в эксплуатации одновременно - тогда ой. Но ты не сказал насчет бинарных сборок - они вообще есть? И если есть - где хранятся, в репозитории с исходниками или в отдельном?

Нет, не 10. Сейчас одна, но может быть больше (бранчи?). Бинарники есть, в отдельном репозитории с которого и идет автообновление.

>Зачем _клиенту_ история?

Откатить софт на любое время назад. Это как бы требование (нахера я чесно говоря сам не доганяню. Это типа мелкософта - к фичам софтины прилеплено - "вы типа можете поиметь любую из версий страше чем у вас кже имееццо, если новая вас чем-то не устраивает". Манагеров стрелять нада)

Если взять rsync - то как на нем реализовать сабж? (типа - при обновлении обновляется либо все (до HEAD) либо ничего).

>Ээ... А Microsoft Installer чем не угодил?

А он уже умеет делать инкрементальный апдейт? о_О. Не хочу завязываться на гамноподелие. Может господа клиенты проникнуцца и перейдут на тру ОС.

ЗЫ. Какие системы автообновления вообще существуют? /me пошел гуглить

k0l0b0k ★★ ()
Ответ на: Re: svn update от k0l0b0k

Re: svn update

svn в директориях .svn хранит копии файлов. если что-то прибил, можешь из репозитария снова стянуть svn co -r <номер_нужной_ревизии> <адрес_репозитария>

не понимаю, в чём проблема

AnDoR ★★★★★ ()
Ответ на: Re: svn update от AnDoR

Re: svn update

Блин. Есть папка, в ней куча файлов. Обновляем через свн. Половина обновилась, на второй половине оборвалась связь. При такой постанове срез становится непригодным, ибо ревизия представлена не полностью (между файлами есть зависимость). Все, дальнейшие операции с свн ничего не дадут (связи нет). Вопрос - как сделать чтобы обновлялось либо все либо ничего?

>если что-то прибил, можешь из репозитария снова стянуть svn co -r

Где ты вычитал что что-то прибито? И причем тут checkout?

k0l0b0k ★★ ()
Ответ на: Re: svn update от k0l0b0k

Re: svn update

юзай mercuiral или другую подобную распределенную vcs, где операции скачивания последних изменений и апдейта рабочей копии (pull и update) отделены.

anonymous ()
Ответ на: Re: svn update от adarovsky

Re: svn update

В mercurial можно повесить хук, чтобы после выкачивания обновления автоматически делался hg up -C. Поведение будет похоже на svn.

Есть, однако, подводный камень: в распределённых системах у клиента будет лежать вся история. Так что надо запасать большие винты :)

adarovsky ★★★★ ()
Ответ на: Re: svn update от adarovsky

Re: svn update

ОООО! Огромный THANX! Завтра буду курить эту фичу. По ходу винты не проблема. Вообще.

>где операции скачивания последних изменений и апдейта рабочей копии (pull и update) отделены.

вроде cvs тоже так себя ведет?

k0l0b0k ★★ ()
Ответ на: Re: svn update от k0l0b0k

Re: svn update

>>где операции скачивания последних изменений и апдейта рабочей копии (pull и update) отделены.

>вроде cvs тоже так себя ведет?

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

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