Portál AbcLinuxu, 3. června 2025 13:00


Dotaz: Přechod z CVS na SVN

21.4.2011 16:29 Ja
Přechod z CVS na SVN
Přečteno: 806×
Odpovědět | Admin
U cvs jsme měli zavedený postup:
vývoj na mainu
udělat větev a nasadit ji na produkční
vývoj na mainu a opravy chyb na větvi
merge oprav z větve do mainu
vývoj na mainu a opravy chyb na větvi
merge větve do mainu
udělat větev a nasadit ji na produkční
atd...
Merge jsme dělali pomocí tagování v místě vytvoření větve a po každém merge, takže následující merge se dělal od posledního mergepointu do aktuálního stavu. Doufal jsem, že nám svn práci usnadní a bez tagů se obejdeme, ale podle dokumentace to není pro svn přirozený postup - předpokládá merge z trunku do větví, merge zpět pouze pomocí --reintegrate, což ale větev pro další merge zničí. Může mi, prosím, někdo poradit jak na to?
Rádi bychom svn používali (třeba kvůli číslování revizí napříč celým projektem atd.) - prosím, neraďte mi, ať přejdeme na git :-)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.4.2011 17:05 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Odpovědět | | Sbalit | Link | Blokovat | Admin
Merge zpět není nutné dělat přes reintegrate. Můžete mergovat cokoliv s čímkoliv.

Jinak samozřejmě git je technologicky mnohem vyspělejší (pro ten samý postup), ale radit Vám to nebudu. :)
In Ada the typical infinite loop would normally be terminated by detonation.
21.4.2011 17:32 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
GIT +1 :-) ale taky už mlčim :-)
pavlix avatar 22.4.2011 12:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Taky mlčím :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.4.2011 08:37 Pev | skóre: 28
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Já jsem tenhle týden po roce používání git-svn konečně přešel na nativní git :-).
pavlix avatar 28.4.2011 07:17 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Gratuluju.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
21.4.2011 18:01 Sten
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rozdělení na větve v Subversion je jenom konvence, samotné Subversion to nijak nerozlišuje a mergovat můžete cokoliv s čímkoliv.
22.4.2011 09:56 Ja
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Já vím, ale pak musím hlídat od které revize do které - doufal jsem, že po zavedení mergeinfa to půjde automaticky - nakonec jsem to dělal vypsáním svn mergeinfo --show-revs eligible urlvětve a mergováním jednotlivých spojitých úseků revizí do pracovní kopie - ostatní možnosti házely děsivé konflikty. Je-li nějaký lepší postup, rád se poučím.
22.4.2011 15:31 Rockfire | skóre: 14 | blog: blg
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Sam jsem nekolik let SVN pouzival a momentalne prechazim na git. Nicmene mi jsme tento problem resili nasledovne:

Meli jsme 3 vetve: vyvoj - zde vsichni vyvojari commitovali, test - toto byl obraz testu u zakaznika, provoz - toto byl obraz provozniho prostredi.

Vsichni vyvojari commitovali na vyvoj. V pripade nasazeni na test se provedl merge vyvoj -> test. V pripade nasazeni na provozni prostredi se provedl merge test -> provoz. Pokud se na provoze objevila chyba, potom oprava chyby vzdy prosla pres vyvoj -> test -> provoz. Tudiz jsme mergovali vzdy jednim smerem. Problem nastaval vzdy kdyz se vyvoj zacal lisit od provozu a nechteli jsme merge celeho souboru, protoze v nem byly i nove veci. Pak to slo resit i tak ze se provedl merge pouze te jedne revize. Tzn. svn merge -c cislo_revize zdroj cil. Nebo, pokud se provoz jiz znacne lisil, jsme udelali opravu primo v provozni vëtvi a pak (protoze soubor se zmenil) jsme provedli opravu znovu na vyvoji

Pokud vzdy (vyjma opravy chyb) nasazujete cely test, pak bych videl reseni takoveto: Budete mit vetev vyvoj, kde vyvojari vyviji. V pripade normalniho nasazeni smazete provozni vetev a udelate kopii vyvojove. V pripade opravy bugu ji opravite v provozni vetvi a provedete merge do vyvoje.

22.4.2011 21:57 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Tyhle všechy elaborátní schemata větvení fungují jen v jednom případě a to že větve jsou mezi sebou více méně lineárně dosažitelné. Tzn. většina commitů jde do "vývoj" a "produkce" se téměř nehýbe. V tom př. ale není důvod nic větvit, "produkce" je prostě "vývoj" mínus několik commitů za poslední dobu.
In Ada the typical infinite loop would normally be terminated by detonation.
pavlix avatar 23.4.2011 16:42 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Produkce občas nějaký ten patch držet potřebuje a k tomu se merge hodí.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
24.4.2011 10:28 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
V takovém případě je samozřejmě nejlepší když se může "produkce" prostě posunout na to místo v trunku kde se patch aplikoval. Pokud ne tak se dá udělat mikro větev z tagu poslední verze a ten patch aplikovat dočasně tam.
In Ada the typical infinite loop would normally be terminated by detonation.
pavlix avatar 24.4.2011 10:57 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Tak ono se dá ledacos, že :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Josef Kufner avatar 22.4.2011 23:12 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Git má na tohle funkci cherry-pick. Funguje to celkem pěkně. Prosté si vybereš commit a ono ho to aplikuje znovu někam jinam.

Jinak já v podobné situaci dělal opravy na produkční větvi a pak je právě cherry-pickem přenesl do vývojové.
Hello world ! Segmentation fault (core dumped)
21.4.2011 21:13 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli chcete používat větve, tak nepřecházejte na subversion, ale na něco jiného větve opravdu umějící. Zdravé projekty již subversion řadu let opouštějí.
21.4.2011 21:18 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Jinak takovou otázku bych čekal před pěti lety :) CVS je hluboká historie, subversion nedávná. Nebojte se, vývojáři git/mercurial/bazaar snadno zvládnou.
21.4.2011 21:32 Rockfire | skóre: 14 | blog: blg
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mohu se zeptat proc ne git?
22.4.2011 09:50 Ja
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Protože o tom nerozhoduju já (nevěřil byste, kolik práce dalo prosadit svn :-)) a protože se potřebujeme soustředit na vývoj a ne na verzování. Náš způsob práce nevyžaduje distribuované úložiště a náš projekt nevyžaduje změnu způsobu práce. O verzovací systémy se zajímám asi jen já, protože já řeším vytváření a nasazování verzí, ostatní si prostě upnou, odbudou si své programování, skouknou diff, commitnou a dál je to nezajímá - kdo by řešil co kam pushnout.
Josef Kufner avatar 22.4.2011 09:54 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Git lze používat zcela stejným způsobem jako SVN. Jen tam navíc děláš push.

Přecházet z CVS na SVN je jako z bláta do louže.
Hello world ! Segmentation fault (core dumped)
22.4.2011 10:19 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Git lze používat lépe, protože narozdíl od subversion si např. zkopírování jednoho adresáře bez odmazání .svn nerozhodíš celou repozitory apod.
22.4.2011 10:35 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Náš způsob práce nevyžaduje distribuované úložiště a náš projekt nevyžaduje změnu způsobu práce.
No nevím - ten způsob práce je zřejmě založen na větvích a jejich mergování, což v SVN není moc praktické. Takže aby to nakonec neznamenalo změnu způsobu práce...
pavlix avatar 22.4.2011 12:32 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Protože o tom nerozhoduju já (nevěřil byste, kolik práce dalo prosadit svn :-))
A vy byste nevěřil, jak moc ta práce byla na hovno kontraproduktivní.
O verzovací systémy se zajímám asi jen já, protože já řeším vytváření a nasazování verzí, ostatní si prostě upnou, odbudou si své programování, skouknou diff, commitnou a dál je to nezajímá - kdo by řešil co kam pushnout.
Ono to chce vést vývoj trošku pečlivěji a rozhodování dělat na základě nějakých informací a s rozmyslem... ale jestli nemáte možnost toto dostatečně ovlivnit, nezbývá mi, než s vámi soucítit.
O verzovací systémy se zajímám asi jen já, protože já řeším vytváření a nasazování verzí, ostatní si prostě upnou, odbudou si své programování, skouknou diff, commitnou a dál je to nezajímá
Zatím kdykoli jsem s někým strávil nad Gitem trochu větší čas, tak jsem ho přesvědčil, že je na správu a používání jednodušší než subversion. A zároveň poskytuje širší možnosti. Tudíž zvolit za verzovací systém v roce 2011 SVN oproti Gitu znamená zvolit komplikovanější a zároveň slabší řešení.

kdo by řešil co kam pushnout.
Jestli to dobře chápu, tak o vydávání verzí se staráte vy, takže byste to řešil pouze vy.

Ostatní by neřešili kam pushnout. Pokud chcete alespoň zhruba zachovat způsob práce, tak všichni vývojáři dávají jenom push a neřeší kam.

Prostě... udělají samostatnou úpravu, otestují, commitují (lokálně), udělají další úpravu, otestují, commitují... pak ty změny všechny najednou pošlou (push).

Jediný rozdíl je v tom, že balíky změn se připravují lokálně, takže se nestává, že by vznikal velký sprasený commit kvůli tomu, že se zrovna domluvilo, že se nesmí nějakou chvíli commitovat. A taky se nestává, že by se zastavil vývoj, když na hoďku vypadne server nebo se překopává síť.

Navíc... Subversion neumí větve ani tagy. Tvrdit, že je umí, je jako tvrdit, že příkaz cp umí verzovat. Samozřejmě, že jde k tomu použít (například nakopíruju adresář a dám mu jako příponu datum a čas), ale není to plnohodnotný nástroj.

CVS jsem naštěstí nepoužíval a Subversion jsem používal aktivně a krátce, a bylo pro mě zklamáním, že mi například nefungoval offline (udělat více změn adresářové struktury bez konektivity). Pak jsem přecházel na Git, mimo něj lze ještě doporučit Mercurial a možná někdo něco přidá.

Mercurial by měl být na používání ještě jednodušší než Git, ale detaily neznám.

Kdyby něco, klidně napište na mail.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
22.4.2011 13:17 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
CVS jsem naštěstí nepoužíval
Já jo, a to jen pro sebe, Subversion byl velký krok, a to jen pro vlastní potřebu, dál jsem se zatím nepropracoval (dle: „když to funguje a nic tě netrápí nerýpej do toho“).
CVS −> Subversion to byl stejný skok jako ze ZIP-ovaných „přírustkových záloh“ na CVS :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
pavlix avatar 22.4.2011 18:08 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Já jo, a to jen pro sebe, Subversion byl velký krok, a to jen pro vlastní potřebu, dál jsem se zatím nepropracoval (dle: „když to funguje a nic tě netrápí nerýpej do toho“).
Jasně, pro vlastní potřebu se v SVN udělá lokální repozitář a je vystaráno. Ale dostat ho na server je strašně těžký. V Gitu uděláš lokální repozitář, a automaticky je z něj i vzdálený repozitíř po SSH. A ani donastavit další protokol není těžké.
CVS −> Subversion to byl stejný skok jako ze ZIP-ovaných „přírustkových záloh“ na CVS
Tak vzhledem k tomu, že Git umí skutečné větve, tagy a podobné věci, a je „zadarmo“ decentralizovaný, tedy pro repo-to-repo akce není potřeba nijak přiohýbat, naopak jsou standardním způsobem práce... tak od SVN ke Gitu to je z hlediska funkcionality asi podobný skok.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
23.4.2011 00:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Poznámka: Nezdá se mi zprovoznění SVN nějak těžké, za 10 min to běží a založení dalšího repozitáře je otázka minuty…
Ke skákání: „Nepochybuji o kvalitách Git-u…“ :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
pavlix avatar 23.4.2011 16:50 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Srovnej za 10 minut běží, když to umíš (SVN) versus za 0 minut běží i když to neumíš (Git). V porovnání je to těžké.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
25.4.2011 11:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Je asi zbytečné se nějak přít, ale :-) asi to nebude 0 minut je třeba něco nainstalovat a tak. A zprovoznit něco s čím nevím co mám dělat mi taky moc nepomůže - je lepší to trochu umět :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
pavlix avatar 25.4.2011 12:46 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
asi to nebude 0 minut je třeba něco nainstalovat a tak.
Zaokrouhlil jsem na celé minuty :).
$ sudo yum install git
$ git init muj-projekt
Ale máš pravdu, netřeba se přít. Já jsem vycházel z reálných (ale svých osobních) zkušeností, kdy jsem někdy před pár lety měl za úkol zprovoznit Subversion a musel jsem se prát se spojením apache, mod_dav a dál, protože to byl jediný způsob, co nám tehdy vyšel jako rozumný. Git od začátku vývojářům nasazuju přes SSH.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
26.4.2011 08:41 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Na horu nebo dolů :-)
Na zprovoznění přes Apache +20 minut, ale to už se musí vědět jak NATO, ale stejně to nestojí za moc (na slabší lince).
Takže klasické 'svn://' - a mimo přes ssh tunel a je to :-).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
22.4.2011 16:54 JS
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Nerikal jsi, ze budes uz mlcet? :-) Ale jinak mlcim taky, a to znamena souhlas. :-)
pavlix avatar 22.4.2011 18:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Nerikal jsi, ze budes uz mlcet? :-) Ale jinak mlcim taky, a to znamena souhlas. :-)
Právě, že jsem říkal, že mlčím :), a v tu chvíli jsem měl ještě pravdu :D. Ale pak jsem to nevydržel, takže nemlčím, a pravdu mám vlastně taky (na propagaci decentralizovaných SCM není co pokazit).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
22.4.2011 12:55 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Možná by bylo řešením odejít k firmě, kde jsou věci jako rozumné SCM samozřejmostí :-) Vzhledem k tvému aktivnímu přístupu bych v tom neviděl problém.

Ale možná jde o komunitní projekt.
pavlix avatar 22.4.2011 13:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Tak jako... ono to pro něj může být jedno z méně významných kritérií, nebo se mu třeba nechce měnit už jen kvůli samotné změně (nechť se vyjádří sám).

Já už tu vlastně ani nejsem. Abclinuxu umřelo.
22.4.2011 13:35 Ja
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
Nejde o komunitní projekt, jde o malou či střední firmu a myšlenka, že bych kvůli verzovacímu systému měl měnit zaměstnání mi připadá absurdní. (nepatří to sem, ale nedá mi to - když jsem nastupoval, zajímal jsem se o zhruba tyhle věci (seřazeno víceméně dle důležitosti: perspektiva firmy, mé povinnosti ve firmě, umístění firmy (dojíždění), platové hodnocení, programovací jazyk, vybavení a organizace pracovních prostor a operační systém mé pracovní stanice - používaný verzovací systém jsem opravdu neřešil.) Omlouvám se za ten výlev.
pavlix avatar 22.4.2011 18:14 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
myšlenka, že bych kvůli verzovacímu systému měl měnit zaměstnání mi připadá absurdní
Velké části místních čtenářů přijde absurdní, že by při výběru práce nezohledili co a jak se tam dělá. Je to dáno i tím, že šikovný člověk v tomhle oboru si může vybírat.
když jsem nastupoval, zajímal jsem se o zhruba tyhle věci (seřazeno víceméně dle důležitosti: perspektiva firmy, mé povinnosti ve firmě, umístění firmy (dojíždění), platové hodnocení, programovací jazyk, vybavení a organizace pracovních prostor a operační systém mé pracovní stanice - používaný verzovací systém jsem opravdu neřešil
Tak já třeba před časem vybíral podle toho, kdo tomu šéfuje... a pak jakýkoli můj dobrý nápad, který zapadal do budoucích plánů, byl vzápětí implementován. Takže... taky jsem určitě nevybíral podle VCS, to je blbost, ale vybíral jsem podle flexibility vedení, nebo spíš... nepotřeboval jsem nutně vydělávat, vzal jsem práci jen pokud mě bavila.

No a postupem času to tak nějak vykrystalizuje.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
22.4.2011 21:51 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
nevěřil byste, kolik práce dalo prosadit svn
Přesně tak, mám zkušenost, že lidé, co fungují na CVS, nejsou duševně připraveni na přechod kamkoliv jinam, a SVN je v tomto případě "nejmenší zlo".

CVS totiž trpí syndromem nepřiměřené složitosti - je tak nepoužitelné, že za tu dobu co s ním uživatelé pracují, si vytvořili spoustu obezliček a vlastních postupů jak s ním pracovat. Přechod pro ně znamená vše zahodit a začít od znova. Domnívají se, že to znamená projít si celým postupem vybudování si obezliček a postupů nanovo. Nejsou ochotni přijmout že nějaký jiný systém (např. git) všechny ty věci umí sám od sebe.
In Ada the typical infinite loop would normally be terminated by detonation.
26.4.2011 19:15 Program
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
To není pravda... Osobně jsem na CVS fungoval docela dlouho a pro osobní potřebu, nebo malou skupinu (skupinový projekt na VŠ) byla téměř ideální. Jediný problém byl s chybějící podporou verzování jmen souborů. Ale CVS má ohromnou výhodu v jednoduchosti, člověk prostě ví, jak to funguje. Na svn jsem nikdy nepřešel, protože sic některé věci řešila, někde byla naprosto stupidně navržená (hlavně nemožnost rozumně větvit).

Jinak začínat dnes s svn je holý nesmysl obzvlášť, když je možné naimportovat CVS repozitář do git/hg. Tazateli bych doporučil, jestli si na svn ještě moc nezvykli, tak okamžitě pryč ideálně ke gitu nebo mercurialu(tam je výhoda, že víc zachovává konvence zkratek a člověk si rychleji zvykne, psát checkout a commit mě na gitu vytáčí).
27.4.2011 08:49 Pev | skóre: 28
Rozbalit Rozbalit vše Re: Přechod z CVS na SVN
psát checkout a commit mě na gitu vytáčí).
git umí aliasy :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.