Как я могу улучшить производительность CVS в многосайтовом сценарии? - PullRequest
1 голос
/ 26 сентября 2008

В настоящее время я работаю в проекте с разработчиками, работающими над тремя сайтами. Один из сайтов находится в Дели, Индия, а два других находятся в Европе. Связь между европейскими офисами и офисом в Дели имеет низкую пропускную способность и довольно плохую задержку, а обновление CVS оттуда часто занимает 5-10 минут, даже если изменилось всего несколько файлов.

Существуют ли какие-либо хорошие прокси-серверы CVS или какой-либо изящный способ синхронизации отдельных серверов CVS? Есть ли у вас какие-либо другие советы о том, как можно улучшить производительность в этом сценарии?

К сожалению, мы застрянем с CVS в рамках этого проекта, поэтому в краткосрочной перспективе переключиться на что-то совершенно другое невозможно.

Ответы [ 2 ]

1 голос
/ 26 сентября 2008

Вот что я сделал давно в подобных обстоятельствах, когда пропускная способность и ненадежные сети были проблемой:

  • Сделайте копию репозитория и установите его в удаленном месте. Вы знаете, есть CVS1 и CVS2.
  • Заблокируйте одну из двух копий (CVS1), запретив фиксацию. Это достигается путем изменения 'commitinfo' в модуле CVSROOT.
  • CVS1 можно использовать только для обновлений
  • CVS2 может использоваться для обновлений и фиксации

Если вы хотите предоставить доступ в коммите к копии 1, выполните следующее:

  • Блокировка CVS2
  • Копировать CVS2 в CVS1
  • Разблокировать CVS1

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

Я написал инструмент для отслеживания того, у кого есть токен фиксации, и для автоматической передачи репозиториев с одного сайта на другой через rsync и SSH. Это работало хорошо в течение нескольких лет. Мы никогда не теряли данные, и передача токена из одного места в другое заняла около 5 минут.

Инструмент переноса был написан на Perl, и мне потребовалось около двух недель, чтобы разработать его, работая над ним все время.

Я знаю, что давным-давно разработчики FreeBSD использовали CVSup , но я никогда не использовал этот инструмент сам.

1 голос
/ 26 сентября 2008

Почему не переключается опция?

Я бы настоятельно рекомендовал вместо этого переключиться на SVN или git. И что вы делаете это преобразование как можно скорее ... как сегодня:)

Есть даже svn tools / guides и git tools / guides , которые сделают это преобразование CVS для вас.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...