Автор Тема: Cvs mirror ?  (Прочетена 2598 пъти)

sana

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Cvs mirror ?
« -: Mar 18, 2007, 20:12 »
Здравейте,
Някой знае ли дали е възможно да се направи "огледало" на CVS сървър, така че работата с двата сървъра да е напълно прозрачна (ако commit-неш в единия, промените автоматично да се приложат в другия). При моето търсене в интернет попадах на решения с rsync, но това не е приложимо за динамична работа ...
Мерси предварително
Активен

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Cvs mirror ?
« Отговор #1 -: Mar 18, 2007, 20:34 »
Можеш да опиташ с rsync и скриптовете в CVSROOT, които се изпълняват всеки път когато се прави commit.
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

dilyan_rusev

  • Напреднали
  • *****
  • Публикации: 61
    • Профил
Cvs mirror ?
« Отговор #2 -: Mar 18, 2007, 20:36 »
може би скрипт, който да cvs commit-ва едновременно и в двата сървъра (всъчщност да повтаря комнадата във втория). поне за това се сещам - може би има по-лесно решение, но нали и аз съм новичък в cvs и не мога да се сетя '<img'>

редакция:

например:
Примерен код

#!/bin/bash

# употреба:
# [ ако се казва cvssync.sh ]
# bash cvssync аргументи
# все едно
# cvs аргументи
# ако ползваш локален cvs

# първо правим променливи за улеснение:

server1='-z3 -d :ext:my_user@my_project.cvs.sourceforge.net:/cvsroot/my_project'
server2='-z3 -d :ext:my_user@my_next_project.cvs.sourceforge.net:/cvsroot/my_next_project'

# след това четем аргументите и ги предаваме на
# cvs със $* - ако се лъжа, поправете ме

# извикваме първия сървър:
cvs $server1 $*

# извикваме втория сървър:
cvs $server2 $*


пп: още съм нов и във cvs, и в bash - така че ме поправете ако греша някъде, но попринцип не виждам дупка в логиката...



Активен

Конфигурация:
Athlonx2 5600+, ECS A780GM-A, 4гб A-Data,  Philips 170x6-series монитор; Vista + openSUSE

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Cvs mirror ?
« Отговор #3 -: Mar 19, 2007, 11:30 »
Има комерсиални решения, примерно: http://www.wandisco.com/php/product_detail.php?lname=cvs

Има и с отворен код, но там има някои изисквания към процеса на разработка (всяка група разработчици, ползваща един сървър работи в отделен клон май): http://dcvs.elegosoft.com/doc/dcvs_overview.html


dilyan_rusev, не е читаво по тоя начин. Commit-ваш да кажем в първия сървър, но през това време някой е commit-нал на втория файл, който и ти се опитваш да commit-неш. Получава се неконсистентност м/у двете машини, която трябва да се разрешава на ръка. Отделно, че трябва на всяка работна станция да подсигуриш, че винаги ще се използва въпросния скрипт, а не оригиналния cvs клиент.
Активен

dilyan_rusev

  • Напреднали
  • *****
  • Публикации: 61
    • Профил
Cvs mirror ?
« Отговор #4 -: Mar 19, 2007, 18:12 »
Цитат (Hapkoc @ Март 19 2007,11:30)
dilyan_rusev, не е читаво по тоя начин. Commit-ваш да кажем в първия сървър, но през това време някой е commit-нал на втория файл, който и ти се опитваш да commit-неш. Получава се неконсистентност м/у двете машини, която трябва да се разрешава на ръка. Отделно, че трябва на всяка работна станция да подсигуриш, че винаги ще се използва въпросния скрипт, а не оригиналния cvs клиент.

ъъ нещо не разбрах това с commit-ването. то не съществува ли попринцип този проблем и ако си го пишеш на ръка - тоест cvs commit по отделно за всеки сървър? пък това за многото копютри - аз разбрах, че sana ще работи на един и ще препраща към няколко.

не се заяждам - както казах съм нов (само от няколко месеца съм с линукс и едва от седмица ми се налага да ползвам cvs за един проект в sourceforge.net) и искам да разбера нещо ново (както и къде греша).
Активен

Конфигурация:
Athlonx2 5600+, ECS A780GM-A, 4гб A-Data,  Philips 170x6-series монитор; Vista + openSUSE

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Cvs mirror ?
« Отговор #5 -: Mar 19, 2007, 18:24 »
dilyan_rusev, абсолютно, проблема си съществува и ако на ръка commit-ваш в двете хранилища.

Идеята, доколкото разбирам, е да има две (или повече) хранилища и всеки разработчик да работи с едно от тях (update/commit/tag/etc) като промените автоматично да се разхвърлят по останалите. Ако е нужно всеки конфликт да се разрешава на ръка, при малко по-голям брой разработчици ще стане ад за поддръжка.

Търсил съм подобно решение, но единственото което намерих open source е DCVS, към което съм дал връзка. Иначе може сравнително лесно да се направи read-only CVS огледало, примерно както казва tarator - с rsync и post-commit скрипт. Проблема е именно като трябва да може да се commit-ва във всеки сървър, как да се гарантира, че няма да се замаже нечий труд.


п.п. и аз не се заяждам. дано си ме разбрал този път
Активен

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Cvs mirror ?
« Отговор #6 -: Mar 19, 2007, 18:42 »
Вероятно няма да е ужасно трудно да се направи rw копие с pre-/post-commit скриптове, но въпросът дали има смисъл? '<img'>
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

dilyan_rusev

  • Напреднали
  • *****
  • Публикации: 61
    • Профил
Cvs mirror ?
« Отговор #7 -: Mar 19, 2007, 21:17 »
ами май разбрах. само дето като се замисля, то няма начин да няма проблеми - то винаги трябва да се викне cvs update в отделна папка за да се види кой какви промени е направил. без читаво управление на проекта не виждам как cvs въобще може да помогне с нещо - номерът е всеки да си има точно определена задача, за да не се "препокрива" работата на разработчиците...

ако и сега не съм разбрал, господ да ми е на помощ '<img'> '<img'> '<img'>
Активен

Конфигурация:
Athlonx2 5600+, ECS A780GM-A, 4гб A-Data,  Philips 170x6-series монитор; Vista + openSUSE

sana

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Cvs mirror ?
« Отговор #8 -: Mar 27, 2007, 20:14 »
Благодара за отговорите !!!
Всъщност, оказа се, че проблема си е много стар и е един от многото, които просто са заложени в архитектурата на CVS. Старичка е и за това не мога да съм недоволен (през 1986 си е била съвсем наред, но днес ...). До колкото разбрах, разработчиците са са я изоставили и са стартирали "новия" проект SVN, та може би това ще е следващия ми избор. Проучвам още ...
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Ima li burzo updatevasht se Slackware BG Mirror?
Хардуерни и софтуерни проблеми
buboleck 5 2256 Последна публикация Mar 25, 2004, 14:46
от JOKe
KDE CVS mirror
Идеи и мнения
Agent_SMITH 1 2314 Последна публикация Jul 08, 2004, 02:12
от the_real_maniac
Vreme za BG Mirror na SuSE?
Идеи и мнения
KeuH 6 3059 Последна публикация Jul 28, 2004, 16:21
от Йордан
KDE 3.4 и BG Mirror
Настройка на програми
phantomlord 5 2988 Последна публикация Mar 20, 2005, 16:39
от ULTRAVIOLET
Интересен mirror :)
Хумор
draco 0 2097 Последна публикация Jun 16, 2005, 21:18
от draco