On 8/31/07, Bert Freudenberg bert@freudenbergs.de wrote:
On Aug 31, 2007, at 12:54 , Eben Eliason wrote:
The "keep" button is going to explicitly create a copy of the current state as a new entry within the Journal, so that incremental saves are supported until we have proper versions.
How does it do this? Supposedly it just creates a new entry in the datastore, which then would have a new object id. How would it inform Sugar that the running activity instance now is associated with that new object id? If I'm not mistaken then currently Sugar assumes the object id currently "bound" to an activity instance never changes.
Indeed. As we only recently realized we wouldn't land versions in time, we're just determining the details of this new approach. Right now, it has been implemented in the simplest fashion, creating a copy but dropping the activity ID and therefore its direct association. The two objects are separate.
We're experimenting to see if we can implement pseudo-versioning, so that they both retain the same activity ID but get a unique version identifier. If done properly, we might be able to properly migrate all of these files into the true versioning system later when it makes it into builds.
More directly to your question, though (after re-reading it I see your original point), I don't think we have to switch the associated ID. Each copy is identical at that point, so it doesn't really matter which one is the one that is continued forward. They will appear ordered in the Journal by the time at which they were saved, so when the first copy...the one you originally opened, finally gets saved and closed, it will appear as the most recent one.
- Eben