Re: [Aegis-developers] 4.25.D271 - aenf sets the file's UUID
Brought to you by:
pmiller
From: Walter F. <wal...@gm...> - 2010-03-27 13:29:14
|
"Pendergraft, Jerry" <JPe...@sj...> writes: > I believe you have covered most all of the concerns and scenarios. > The question I raised about how aed would change create to modify > is covered as long as the two changes aenf'd the file in the same > site/repository. But one (possibly pathalogical) case I think might > cause a problem is if the second aenf is due to an aedist -rec. > Thus you have (your) site A change 30 aenf foo.c > Then aedist -rec from site B recreates change 40 with aenf foo.c With the new code aenf will stop with a (misleading) error "duplicate uuid". I'll fix the error message since the problem is clearly different (too many uuid). > One of two things must have happened here since site A's UUID must be > different than site B's for that file. > 1) aedist -rec ignores the UUID and creates new one which matches chg > 30 You have to ask explicitly (--ignore-uuid) for this. However aedist -replay needs to be improved to accept and pass option to aedist -rec. > 2) aedist -rec honors the UUID. As I recall aedist won't do this? It is the default behaviour *if* the file has the UUID, otherwise it will not be assigned at aeipass time. Have you observed a different behaviour? > Now operations at your site A continue: > - integrate change 30. > - aed in change 40, changes create to modify. > If aenf as 1 above no problem, but if 2 above it would have to > adjust. Also adjusting the UUID is source of problems, think about 'aemv a b' followed by 'aenf a' in the same change. > - integrate change 40 > - aedist -bl back to site B > > At site B how do we resolve the (now) different UUID's for the file? We can try to attach the various UUID as file's attribute (e.g. alternate-UUID) or we can try to solve the problem at its root. We need to generate the same UUID for files with the same name. This will solve the problem also for different repositories. A way to achieve it is to use *name-based* UUID to identify files. From rfc4122: ------------------------------------------------------------------------ The requirements for these types of UUIDs are as follows: o The UUIDs generated at different times from the same name in the same namespace MUST be equal. o The UUIDs generated from two different names in the same namespace should be different (with very high probability). o The UUIDs generated from the same name in two different namespaces should be different with (very high probability). o If two UUIDs that were generated from names are equal, then they were generated from the same name in the same namespace (with very high probability). ------------------------------------------------------------------------ And since the devil's in the details: how we handle the ' aemv a b' followed by 'aenf a' case? ciao -- Walter Franzini http://aegis.stepbuild.org/ |