Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  SVN: välise library uuenduste mergimine oma repositooriumi märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 07.02.2009 18:21:30 SVN: välise library uuenduste mergimine oma repositooriumi vasta tsitaadiga

Mul on Subversioni repositooriumis lisaks muule koodile ka ühe välise library lähtekood (paras hunnik faile). Libraryst tuleb välja uus versioon. Tõmban uue versiooni library kodulehelt alla. Nüüd tahaks lisada selle uue library versiooni oma repositooriumisse vana versiooni asemele.

Kõige lihtsam oleks muidugi vana versioon lihtsalt ära kustutada ja uus asemele panna, kuid see oleks meeletu raiskamine - vaid väike osa library koodist on kahe versiooni vahel muutunud. Seetõttu tahaks n.ö. tõmmata vaid need muudatused oma repositooriumisse: muuta vaid faile, mis on muutunud, lisada vaid failid, mis on lisandunud, ning eemaldada vaid failid, mis on eemaldatud.

Kuna library on suur, siis käsitsi seda protsessi kindlasti ette ei võta. Mõtlesin ka mingi skripti kirjutamise peale, kuid see tundub jalgratta leiutamisena - ma ei saa olla ainuke, kes sellist asja teha tahab. Katsusin googeldada, kuid ilmselt ei osanud oma päringut õieti sõnastada.

Oskab keegi nõu anda?

_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
e-Thug
HV Guru
e-Thug

liitunud: 26.02.2005




sõnum 07.02.2009 18:33:17 vasta tsitaadiga

Ma võib olla ei lugenud õiget mõtet välja, aga kas uue versiooni failide svni dir-i kopeerimine ja svn commit, mille tagajärjel commititakse ainult praeguse versiooniga võrreldes muudetud failid, uute failide svn add+commit ning seejärel kaotatud failide repositoryst removeimine pole sobiv lahendus?

E: http://svnbook.red-bean.com/en/1.0/re16.html


viimati muutis e-Thug 07.02.2009 18:40:27, muudetud 1 kord
Kommentaarid: 230 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 205
tagasi üles
vaata kasutaja infot saada privaatsõnum
matik
HV kasutaja

liitunud: 28.05.2008




sõnum 07.02.2009 18:38:22 vasta tsitaadiga

tee diff ja merge ära, mis seal siis keerulist on? kui sa ise selle libra koodi pole muutnud oma repos, siis konflikte ei teki ju?
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 07.02.2009 18:58:32 vasta tsitaadiga

@e-Thug: selline asi töötab vaid siis kui mul on lihtsalt posu faile, aga minul on failid kataloogides ja siis veel alamkataloogides jne.

@matic: võibolla seletad täpsemalt kuidas ma seda diff'i ja merge'i teen. svn merge näikse töötavat vaid failide puhul mis juba on minu repositooriumis. Või olen ma millestki valesti aru saanud?

_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
matik
HV kasutaja

liitunud: 28.05.2008




sõnum 07.02.2009 21:57:36 vasta tsitaadiga

no kui peale kopeerimine ei sobi, võid ju vana libra tõesti ära kustutada ja uuesti importida? kui sa ise pole muutusi teinud sinna, siis pole mergemist nagunii vajagi
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 07.02.2009 22:36:42 vasta tsitaadiga

Asi on rohkem põhimõttes. Kui mingid failid on repositooriumis, siis võiks neil olla ka normaalne ajalugu. Muidugi ma võiks vana library lihtsalt ära kustutada ja uue asemele panna, aga see poleks õige.

Lisaks on selline kustutamine ja asendamine ka puhas kettapinna raiskamine. Antud juhul on library vaid mõni megabait ja see kadu on tühine, aga siiski hakkab imelik kui peale mitut sellist library versiooniuuendust moodustab nende uuendustega raisatud ruum enamuse repositooriumi mahust.

Nagu ma ütlesin, siis olen ma täiesti võimeline kirjutama skripti, mis teostaks selle mergemise. Aga mul on kangesti selline tunne, et minu probleemile on kusagil juba lahendus olemas ning sellist skripti kirjutades leiutaksin ma jalgratast.

_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
reneSharp
HV kasutaja
reneSharp

liitunud: 13.11.2005




sõnum 07.02.2009 23:20:41 vasta tsitaadiga

Kui platvorm millel töötad on windows siis on olemas väga hea subversioni ui liides: tortoisesvn
http://tortoisesvn.net/
Põhiharus on juba muudetud kood
reposse lisad kõrvalharu kus on kood uuest versioonist.

loodud harust merge põhiharusse (howto :http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html#tsvn-dug-merge-range
)
Kommentaarid: 25 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 25
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 08.02.2009 00:23:33 vasta tsitaadiga

mnjaa.. aga see teeb ju kokkuvõttes ikkagi välja selle, et ma lisan reposse terve uue versiooni koodi, mitte üksnes muudatused.
_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
reneSharp
HV kasutaja
reneSharp

liitunud: 13.11.2005




sõnum 08.02.2009 01:02:54 vasta tsitaadiga

Kui ise oleks antud probleemi ees siis mina lahendaks asja järgnevalt (puhtalt lehelt) :

Põhiharusse ülesse versioon 1 .
Ühtlasi saab see olema koht kus teen ainult omi muudatusi.
Põhiharusse ennem yhtegi muudatust ei tee kui olen loonud
kõrvalharu põhiharust
Mõte on selles et kui tuleb välja versioon 2 siis saan switchida põhiharust
ringi kõrvalharusse ning külmalt yle kopeerida failid uue versiooni omadega , kuna
kõrvalharusse omi muudatusi ei tee.
Olgu ära öeldud et branchimine ei tekita uusi faile juurde . repo browser võib sellise
mulje jätta ,kuid svn-i üks põhimõtteid on seda vältida,
jäädvustatakse vaid muudatused revisioni-te näol.
3.Peale commiti switchin tagasi põhiharusse kus merge-in muudatused
kõrvalharust põhiharusse mida sai just update-itud .


tsitaat:
mnjaa.. aga see teeb ju kokkuvõttes ikkagi välja selle, et ma lisan reposse terve uue versiooni koodi, mitte üksnes muudatused.


Kui kohe alguses luua kõrvalharu siis ülaltoodud tsenaariumi järgi haldad vaid muudatusi.

Eelnevas postituses kirjeldatu järgi peaks saama kokku panna uue versiooni ja omad muudatused ,
seejärel saab rakendada ülaltoodud lähenemisviisi.

Tegelikult saaks luua selle kõrvalharu tagantjärgi ka praegu ,kuid ainult siis kui revisionite kaupa on omad
muudatused eristatavad.
Siis on võimalus luua revisionist X (mis vastab 1-1-le algsele versioonile) see nn haru,
kus omad muudatused puuduvad .

Taganjärgi haru tegemiseks vt. joonis 5.3.3, seal on võimalus revision ajalugu vaadata ning valida sobiv revsion
millest haru luua.
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-branchtag.html

Joonis 5.3.4 illustreerib switchimist millest juttu oli.


viimati muutis reneSharp 08.02.2009 01:18:56, muudetud 4 korda
Kommentaarid: 25 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 25
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 08.02.2009 01:11:20 vasta tsitaadiga

No, ma oma projektide puhul kus enda tehtud baasraamistiku peale ehitan kasutan sellist lähenemist:
kopeerin uuendatud baasraamistiku kausta olemasoleva baasraamistiku kausta kõrvale nii et sisene struktuur on sama (näiteks base kausta kõrvale tekitan kausta base_new)
ja siis winmerge tooliga (windowsi jaoks, sobitub tortoisesvn otsa ja saab ka eraldi kasutada) syncin kaustade sisud ära, winmerge näitab ilusti ära mis failide sisud erinevad, mis fail või kaust kuskilt puudu on ja laseb shortcuttidega kiirelt faile üle kopeerida, kustutada, sisusid diff vaates võrrelda jne (endal diff vaade vajalik et üle vaadata mida muutnud olen et kõik ilusti kokku mergida) ja järjest teen kuni kaustade sisud on omavahel võrdsed.
Kui kõik sisu on omavahel sünkroniseeritud, siis kustutan base_new kausta ära ning commitin base kausta, ja tulemuseks ongi see et svn'i jõuab ainult muutus, ning ei pea kogu kremplit kustutama ja uuesti lisama.

Winmerge kasutan just seepärast et see näitab ära failide olemasolu/puudumisi et kui olen midagi kustutanud, siis saan ka kustutamise sünkroniseerida, kuid kui sul see raamistik ei ole nii tundlik selle suhtes kui paar üleliigset faili kuskil passima jääb, siis võid alati ka sisu otse üle kopeerida vana versiooni otsa ja siis commit tehes saadetakse svn'i jätkuvalt ainult muutused (sisulised muutused ja lisandunud failid siis).

Ehk on abiks...
EDIT:
Ise kasutan sellist lähenemist et vältida keerukamat branchimise ja mergimise loogikat pluss kuna mul vaja sünkroniseerida mitmeid eri versioone, siis pigem teen localis winmergega asjad jonksu ja siis alles commitin kui et jagelen branchimise ja mergemisega jne

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
reneSharp
HV kasutaja
reneSharp

liitunud: 13.11.2005




sõnum 08.02.2009 01:35:24 vasta tsitaadiga

nene kirjutas:
Asi on rohkem põhimõttes. Kui mingid failid on repositooriumis, siis võiks neil olla ka normaalne ajalugu..


Ajalugu on täiesti olemas (revisionite näol millest oli juttu)
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-showlog.html

Soovitan lugeda - põhitõed
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-basics-svn.html
Kommentaarid: 25 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 25
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 08.02.2009 02:04:24 vasta tsitaadiga

inzinz kirjutas:
ja siis winmerge tooliga...

Vovoh! Mingit sedakanti programmi ma just otsisingi.

Nüüd teades ühe sellise programmi nime on juba käkitegu leide alternatiive teistes operatsioonisüsteemides. (Hetkel küll juhtumisi Windowsi all, seega täna sai Winmerge abiga asi tehtud.)

Tänud.

reneSharp kirjutas:
Soovitan lugeda - põhitõed
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-basics-svn.html

Ma arvan, et versioonihalduse põhitõed said mulle selgeks juba mitu aastat tagasi. Toona oli küll sõbraks veel CVS. Ning hetkel meeldivad tegelikult rohkem hajutatud mudeliga versioonihaldussüsteemid.

Ning TortoiseSVN-i samuti ei himusta - saan käsurealt kõik märksa kiiremini tehtud. Aga tänud pakkumast.

_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  SVN: välise library uuenduste mergimine oma repositooriumi
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.