[Frugalware-devel] darcs conflict story - edification

VMiklos vmiklos at frugalware.org
Sat May 5 16:18:06 CEST 2007


hi,

there was a problem with the darcs tree, in fact not with darcs itself,
but the way we use it. so here is what probably you noticed:

after pulling a lot of FBs contained lines that made them invalid, like:

$ grep -m1 'v v' source/lib/glib2/FrugalBuild
v v v v v v v

this was because:
1) priyank got some conflict after a pull
this may happen but please don't do anything before resolving this
conflicts!

-> i don't want to blame priyank, but please everyone do check if there
is a conflict after each pull!

2) wrong repoman usage
he used "repoman push maxima-5.12.0-1-i686.fpm" which did something
totally different what he wanted
repoman push <foo> will do an automatic record with <foo> in the patch's
long description and it won't ask for a patch desc. in most cases you
don't need repoman push foo, just use repoman push

in fact i always use repoman rec before repoman push as that way i
always see (it runs dr what -s) what i will push. if he would do so, he
would not push as he would see he does something strange ;)

-> please run dr what -s or use repoman rec before a repoman push!

3) if there is a problem, don't push a wrong fix quickly!
Alex wanted to fix the problem, so he pushed a "fix" which in fact made
the situation even worse. here is the desciption of the problem:

when one pushes a patch to genesis, it should no longer be unpulled from
the repo as anyone may pull it and there is no way to unpull a patch
from the target repo when somebody does a 'dr pull'. that's why we use
rollback

in darcs, patches have dependencies. let's see the current case:
priyank's problematic patch -> Alex's wrong fix -> possible rollback

as you can see there is no way to rollback priyank's original wrong
patch as first we need to unpull Alex's wrong fix

let's see the case if Alex would not push a wrong fix:
dr rollback could be used and after a pull the repo would be okay
everywhere

-> if there is a problem, think before you fix ;)

workaround (as there is no way to solve the problem with a simple dr
pull):

dr unpull -p maxima-5.12.0-1-i686
dr pull -a

and your repo will be consistent again

ps: of course the names are not important, anybody else could do these
mistakes, i just wrote this letter to prevent this to happend daily ;)

thanks,
VMiklos

-- 
developer of Frugalware Linux - http://frugalware.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : /pipermail/attachments/20070505/fe706ea5/attachment.bin


More information about the Frugalware-devel mailing list