Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Односторонняя синхронизация части SVN-дерева  (Прочитано 6150 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« : 04-08-2010 12:35 » new

Исходные данные:
Есть большой SVN-репозиторий с кучей веток-проектов.
Есть какой-то удаленный colocation, в котором нужен доступ в определенный раздел этого SVN. Поскольку находится он далеко, а вытаскивает данные скрипт каждые 30-50 минут, то операция export занимает около 10 минут, что слишком медленно..
Очевидно, что самый простой вариант - сделать копию SVN и настроить одностороннюю синхронизацию, поскольку на втором не предполагается никаких коммитов - нужен только доступ к более-менее свежим файликам.
Особенность в том, что полный репозиторий там не нужен, поскольку:
* он большой
* нужна только одна ветка
* в остальные ветки коммиты происходят гораздо чаще
* colocation находится далеко и миграция всего репозитория туда связана с перекачкой кучи байтиков через небыструю сеть интернет

Синхронизация нужна не моментальная, запаздывание в 10-20 минут вполне приемлемо.

В связи с этим вопрос - кто сталкивался с такой задачей и какие готовые скрипты/решения/инструкции существуют?


Второй вариант, который приходит в голову для решения такой задачи: checkout в рабочую папку и последующие update. Но мне такое решение не нравится по той причине, что во время работы часть файлов может быть модифицирована и update их не обновит. Также в процессе работы могут появляться мусорные файлы, поэтому каждый раз перед получением вся рабочая папка грохается.

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

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 04-08-2010 13:18 » 

ИМХО мне кажется все-таки правильным update, только посмотреть какие параметры используются: может что-то типа --force обновит измененные файлы и удалит лишние?
Для разрешения конфликтов есть еще параметр --accept.
Ну и пробежаться по "лишним" файлам можно коммандой "svn status": все лишние удаляем, потом делаем update
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 04-08-2010 13:20 » 

Третий вариант верный.

Скрипты, решения и т.п. - о чем речь? Какая среда, язык, ОС и т.п.?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines