🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #152

Re: Odp: CVS off-line

#152
From: Tomasz Kłoczko
Date: Tue, 07 Sep 1999 15:16
76 lines
5781 bytes
Daniel Podlejski <underley@underley.eu.org> wrote:
> Tomasz Kłoczko napisal(a):
> [...]
> : I co najważniejsze nie jest do tego potrzebne jakiekolwiek soecjalne
> : narzędzie. Wystarczy popbrać (raz) konkretną zawartość z zewnętrznego cvs
> : serwera i wrzucić ją do włąsnego repozytorium, które można zorganizować
> : choćby via :fork: czy jakąkolwiek inną metodą.

> Ale tu nie chodzi o prywatną kopię repozytorium, tylko o dwukierunkowy
> mirror. Jestem offline - pracuje na lokalnym repozytorium, ale co
> jeśli będę chciał wprowadzić zmiany do głównego repozytorium
> dostepnego przez internet ? Czy wymyslił już ktoś sposób jak to zrobić ?

> A jesli się w którymś miejscu pomyliłem, niech mnie Dawid poprawi. ;-)

Chyba jednak nadal nie rozumiesz po co sie mirroruje cvsupem serwey CVS i
jakie możliwości ma cvs jako traki.
Otóż cvsup został przedewszystkim wymyślony na potrzeby tworzenia lokalnych
mirrorów z dostępem RO na potrzeby grup dla których robienie czegoś takiego
ma sens (słąbe łacze do cvs serwera).
Po drugie CVS nigdy nie miał i nic nie wskazuje na to żeby w najbliżeszej
przyszłości miał możliwości wymiany informacji na kilku serwerach w trybie
tranzakcyjnym w celu stworzenia grupy serwerów z dostępem do tych samych
zasobów w trybie RW.

Nie mogę zrozumieć czym istotnie może się różnić praca z lokalną kopią
ostatnich zasobół w celu zrobienia dużej grupy modyfikacji w oparciu o
własne repozytorium synchronizowane ręcznie od czasu do czasu (tak robi
choćby człowiek zajmujący się glade czy kilak osób zajmujących sie gimpem ..
mowa o tych najważniejszych osobach w tych projektach) z głównym lub bez
pomocy takoweg. Po co Ci dostęp do pełnej historii zmian wszystkich zasobów
skoro ty jesteś szeregowym developerem który chce coś konkretnie poprawić w
istniejacym kodzie ? Nie mogę zrozumieć tego, że inni którzy na CVSie
zjadają zęby mogą sobie dać radę bez możliwości jakie Ty chcesz mieć (bez
odczuwania jakiegoś dyskomfirtu z powodu braku takich możliwości), a Ty nie
i jedyne wytłumacznie jakie mi przychodzi do głowy jest takie, że zapewne z
CVSsem za dużo nie pracowałeś jednak .. poprostu. Jeżeli jest to prawdą to
poprostu rada .. pochyl głowę, udeż kilka razy czubkiem buta w ziemię i
ruszaj do przodu śmiało z założeniem, ze do zbawienia powyższe nei jest Ci
koniecznie potzrebne :)

I kolejna rzecz .. rozwiązania typu grupa serwerów z tymi samymi danymi i z
rónorzędnym dostępem dla wszystkich to nie taka prosta sprawa ponieważ wiąże
się to też z wymianą informacji potrzebnych do autentykacji osobników, co w
przypadku grupy jednostek połączonych na stałe jest do zrealizowania w
uproszczony sposób w ten sposób, że wydzielona jednostka z grupy zajmuje się
autentykacją ale jest _nie możliwe do zrealizowania_ w przypadku jednostek
łączących sie offline dla kogoś z ulicy kto postanowił postawić sobie w
domku na dialup lokalny mirror gdyż to byłaby ewidentna luka w machanizmach
bezpieczeństwa a w zasadzie precyzyjniej mówiąc ich kompletny brak. Inne
alternatywne rozwiazanie powyższego jest takie, że stawia sie kilka serwerów
w jednym miejscu nawet ale z dostępem RO i jeden z dostępem RW, i istaluje
się przed tymi nieco inteligentniejsze proxy które wyłapuje zapytania RW
(commit, tag, admin i kilka innych) i przekierowuje je do wybranej
jednostki, a pozostałe RO (update, checkout, log, status i kilka innych)
losowo rozkłada się po pozostałych jednostakach na których kopię zasobów
tworzy sie na bierzaco choćby rsyncem poprzez szybką sieć lokalną). Tego
typu rozwiazanie bazuje na spostrzeżeniu, że tylko znikomy procent
wszystkich bierzących odwołań to są odwołania RW, a reszta to RO. Taki
proxy/redirector powinno się dać napisać w kilkudzieięciu linijkach choćby i
w perlu co tylko dalej będzie zniechęcać do rozwijania tranzakcyjnej warstwy
w oprogramiowaniuklasy version control zgodnie z zasadą KISS.

I jeszcze jedno. Jak interesuje ciebie wymiana tranzakcyjna między
repozytoriami to zainteresuja sie aegisem, który wyjaśnić trzeba nic nie ma
wspólnego z cvs ale i jednocześnie nadal nie umożliwia tego co chcesz
osiągnąć. Mechanizmy wymiany tranzakcyjnej w aegisie rozwijają sie bardzo
kiepsko gdyż życie pokazuje, że pojedynczy serwer CVS jest w stanie
obsługiwać kilkanaście tysięcy developerów rozrzucownych po całym świecie.

kloczek                                                                   
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek@rudy.mif.pg.gda.pl*
Technical Details
Message-ID: <7r3a7k$k1m$3@sunrise.pg.gda.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!uw.edu.pl!news.swierk.pl!paa.gov.pl!opoka-warszawa!orion.cst.tpsa.pl!news.icm.edu.pl!news.task.gda.pl!sunrise.pg.gda.pl!not-for-mail
References: <7qu60e$4j0$1@atlantis.ssw.krakow.pl> <37d447ac@news.vogel.pl> <7r2qp7$gbf$1@sunrise.pg.gda.pl> <slrn7ta39f.50c.underley@witch.underley.eu.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!uw.edu.pl!news.swierk.pl!paa.gov.pl!opoka-warszawa!orion.cst.tpsa.pl!news.icm.edu.pl!news.task.gda.pl!sunrise.pg.gda.pl!not-for-mail
From: Tomasz Kłoczko <kloczek@rudy.mif.pg.gda.pl>
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: Odp: CVS off-line
Date: 7 Sep 1999 15:16:04 GMT
Organization: Politechnika Gdanska
Lines: 76
Message-ID: <7r3a7k$k1m$3@sunrise.pg.gda.pl>
References: <7qu60e$4j0$1@atlantis.ssw.krakow.pl> <37d447ac@news.vogel.pl> <7r2qp7$gbf$1@sunrise.pg.gda.pl> <slrn7ta39f.50c.underley@witch.underley.eu.org>
NNTP-Posting-Host: rudy.mif.pg.gda.pl
Mime-Version: 1.0
X-Comment-To: kloczek
User-Agent: tin/pre-1.4-19990216 ("Styrofoam") (UNIX) (Linux/2.2.9-ac6 (i586))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit