uh, ez az “adatkorrupcio meg nem lepett fel, ilyen meg nem volt a bazaar torteneteben” jokis ellenpont a git “minden checksumolunk” szemleletehez kepest :)
amugy darcsnal volt ilyen, hogy siman at tudtal irni eszrevetlenul egy regi patchet es utana ha valaki frissen leszedte a repot akkor hozza mar sebzett kod erkezett. ez a bzrnel is ennyire egyszeru? (vagy csak a helyzet zavaraban mondtad ezt de azert vannak checksumok a repoban)
ja es ize, nem fikazas csak ket gondolat ehhez a merge tracking dologhoz.
1) nem tamogatja minden elosztott verziokezelo, pl darcsban nincs ilyen
2) azt mondod, hogy ez azert jo mert igy nem lesznek conflictok, de sztem nem ez a nagy elonye. sokkal inkabb az, hogy peldaul nalunk valaki elkezd dolgozni egy kulon xorg73 branchben az xorg 7.3 supporton 0.8pre1 verzional, ezzel elkeszul mondjuk 0.8 utan, es merge utan visszakeresheto, hogy ezen a feature-on o 0.8pre1nel kezdett el dolgozni (mig darcsnal csak annyit latsz, hogy 0.8 utan kerult be aztan szevasz).
ha pedig valakinek pont az a szimatikus ahogy darcs csinalja (abban az esetben ha ez az info felesleges, el akarja kerulni a merge “spam” commitokat) akkor ottvan a git rebase vagy bzrhez is van bzr-rebase plugin.
a kerdes arra vonatkozott, hogy te mint hozzaerto mennyire konnyen tudsz eszrevetlenul modositani utolag egy bzr repot :) (darcs eseten nekem konnyu volna)
gitnel (szinten mint hozzaerto) a kovetkezokeppen lehetne pl demonstralni, hogy nem lehet eszrevetlenul modositani a historyt:
$ echo bar > .git/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99
$ git fsck
mostmar irni fogja, hogy serult a repo. ilyenkor egyszeruen egy masik repobol ujra be kell szerezni a jo objectet (25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99 file) es keszenvagy. ez bzr modra hogy nez ki? :)
7 Responses to Meetup videó
vmiklos
May 10th, 2008 at 15:13
uh, ez az “adatkorrupcio meg nem lepett fel, ilyen meg nem volt a bazaar torteneteben” jokis ellenpont a git “minden checksumolunk” szemleletehez kepest :)
amugy darcsnal volt ilyen, hogy siman at tudtal irni eszrevetlenul egy regi patchet es utana ha valaki frissen leszedte a repot akkor hozza mar sebzett kod erkezett. ez a bzrnel is ennyire egyszeru? (vagy csak a helyzet zavaraban mondtad ezt de azert vannak checksumok a repoban)
vmiklos
May 10th, 2008 at 15:25
ja es ize, nem fikazas csak ket gondolat ehhez a merge tracking dologhoz.
1) nem tamogatja minden elosztott verziokezelo, pl darcsban nincs ilyen
2) azt mondod, hogy ez azert jo mert igy nem lesznek conflictok, de sztem nem ez a nagy elonye. sokkal inkabb az, hogy peldaul nalunk valaki elkezd dolgozni egy kulon xorg73 branchben az xorg 7.3 supporton 0.8pre1 verzional, ezzel elkeszul mondjuk 0.8 utan, es merge utan visszakeresheto, hogy ezen a feature-on o 0.8pre1nel kezdett el dolgozni (mig darcsnal csak annyit latsz, hogy 0.8 utan kerult be aztan szevasz).
ha pedig valakinek pont az a szimatikus ahogy darcs csinalja (abban az esetben ha ez az info felesleges, el akarja kerulni a merge “spam” commitokat) akkor ottvan a git rebase vagy bzrhez is van bzr-rebase plugin.
phanatic
May 10th, 2008 at 15:33
adatkorrupció bazaarban: próbáld meg, és szólj, ha sikerült ;)
1) tudom, sÅ‘t van olyan nem-DVCS is, ami meg támogatja. a helyes állÃtás, hogy ez leginkább a DVCS-ekre jellemzÅ‘ (meg különben is, kivétel erÅ‘sÃti a szabályt :P)
2) ez is tiszta, csak már le akartam zárni valahogy a mondandómat, és Ãgy sikerült kijönni belÅ‘le :)
phanatic
May 10th, 2008 at 15:40
a 2)-eshez: néha hajlamos vagyok szóban, de akár még Ãrásban is két egymáshoz nem igazán kapcsolódó dolgot összekapcsolni, ha stresszes vagyok. most is ez történt. mea culpa.
vmiklos
May 10th, 2008 at 21:51
a kerdes arra vonatkozott, hogy te mint hozzaerto mennyire konnyen tudsz eszrevetlenul modositani utolag egy bzr repot :) (darcs eseten nekem konnyu volna)
gitnel (szinten mint hozzaerto) a kovetkezokeppen lehetne pl demonstralni, hogy nem lehet eszrevetlenul modositani a historyt:
$ echo foo >foo.c
$ git init
$ git add foo.c
$ git commit -m init
$ git fsck
most nem fog irni semmit, tehat minden rendben.
$ chmod 644 .git/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99
$ echo bar > .git/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99
$ git fsck
mostmar irni fogja, hogy serult a repo. ilyenkor egyszeruen egy masik repobol ujra be kell szerezni a jo objectet (25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99 file) es keszenvagy. ez bzr modra hogy nez ki? :)
phanatic
May 10th, 2008 at 22:21
egy gyors ránézés után (nem igazán értek ehhez, én csak a bazaar nyilvános API-ját használom, a belsejéhez semmi közöm):
az aktuális formátum az adatokat ún. pack fájlokban tárolja, amelyek bináris formátumúak. a fájlok sha1 sumja megegyezik a pack fájl nevével, tehát ha azokat módosÃtod, már annyi is. ha jól látom, akkor a git is ugyanerre játszik.
vmiklos
May 11th, 2008 at 11:26
ah, ertem. akkor igazabol ti is kirakhatjatok a ‘cryptographic authentication of history’ szoveget amire mi annyira buszkek vagyunk ;)