X-CGP-ClamAV-Result: CLEAN X-VirusScanner: Niversoft's CGPClamav Helper v1.22.2a (ClamAV engine v0.102.2) X-Junk-Score: 0 [] X-KAS-Score: 0 [] From: "Jesse Tayler" Received: from mail-qt1-f170.google.com ([209.85.160.170] verified) by selbstdenker.ag (CommuniGate Pro SMTP 6.3.3) with ESMTPS id 26033396 for webobjects-dev@wocommunity.org; Wed, 16 Jun 2021 21:28:09 +0200 Received-SPF: none receiver=post.selbstdenker.com; client-ip=209.85.160.170; envelope-from=jtayler@oeinc.com Received: by mail-qt1-f170.google.com with SMTP id d9so2753683qtp.11 for ; Wed, 16 Jun 2021 12:28:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oeinc-com.20150623.gappssmtp.com; s=20150623; h=from:mime-version:subject:date:references:to:in-reply-to:message-id; bh=GcDN+DbtrcHqkBoT7Th0g86EC1JiwIhV+M+Dd2HkApk=; b=jKUS2Aoa9ErOJniRsw31kR84S28SkSlTElu9XBfoMnBV3htRy8l1HsV+0dfyDQB+ji 69cQAb+oExZr0Zisq1RA06Ekm/WKk9bXC6I9T3ZJ/2+tuy0e71E9HtgpmHtt37+X0xJB cZvs5w2vLWealhIbzhS0OPzgRBkN2jXuGddIMj9/n5iMroXopz3hSUMRQtVwzk793oHV IAi2nYdTvEckSyaHA1/qFC3D6fGZEGKcFaV71dH/SDNn2yV0vtuh4efkCKJhzAxJGA3K 6uFhairTit9UDGI8HgSLZDFbnp6zWhQQUAaoj7/lPPwCbipahv2jDNEEOzt3XDpl2G63 V2Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:date:references:to :in-reply-to:message-id; bh=GcDN+DbtrcHqkBoT7Th0g86EC1JiwIhV+M+Dd2HkApk=; b=cogs6JVkY8KaOe/EvEa+MYWvi+rkxUmGjQAmaiVyu9GIEeZXA6tk4z7tHL9tQ82s++ gvOFvPHGPHxYHVCjFXCwhr1lyzf0SklbgrrlXwEAkEYlsMj+tJDJyHPWwn8sj4FyAad5 noktrAxtP6bqDPxqcVGKyjlGzYkoz2P5GCJyaYxlNCLcgIr6GZ/7dksCP6l1azanubMh P8r0oyQGaocHJoIUVqKoZSVWanRt5feABuvUhiqhhpz15srWeRfNRNJvXDp0rr1AYUC5 sR8kuyP5JN84v9JbxrnC6bvsnXXgluoF310JVtlHfPCF8cf9WXXVsJfKCPF38zQ9KD0x MxlA== X-Gm-Message-State: AOAM533pI9O7r3YDmopLAN8Gw5JwLOM6U0lhWvZ91ywqWxR9gB1WuzfF OdMr/t22q9hh1M08Q6yFkb/5f9aSuB6dDjDY X-Google-Smtp-Source: ABdhPJyv/fDmrjmivpCITFVdOR2HaD7P6xRrqtx164uJnbAqA5FNks57XWN6ImA+tBYWDX72vOjdJg== X-Received: by 2002:a05:622a:1a83:: with SMTP id s3mr1408054qtc.347.1623871668227; Wed, 16 Jun 2021 12:27:48 -0700 (PDT) Return-Path: Received: from [192.168.1.16] ([69.169.5.176]) by smtp.gmail.com with ESMTPSA id m11sm130104qkm.74.2021.06.16.12.27.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Jun 2021 12:27:47 -0700 (PDT) Content-Type: multipart/alternative; boundary="Apple-Mail=_FCC7A874-F242-46E4-B18A-15DA22D3E66B" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.2\)) Subject: =?utf-8?Q?Re=3A_=5BWO-DEV=5D_merging_changes_upon_a_save=3A_what_?= =?utf-8?Q?are_=E2=80=9Clocally_uncommitted_changes=E2=80=9D=2C_too_many_s?= =?utf-8?Q?napshots=3F?= Date: Wed, 16 Jun 2021 15:27:47 -0400 References: To: WebObjects & WOnder Development In-Reply-To: Message-Id: <55EDED66-E271-4013-83BE-D2226FD1E664@oeinc.com> X-Mailer: Apple Mail (2.3654.60.0.2.2) --Apple-Mail=_FCC7A874-F242-46E4-B18A-15DA22D3E66B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 I know at some point in time Chuck Hill documented to the very edge of = the edgiest edge case Alas, I=E2=80=99d guess that be lost in a wiki of unknown = whereabouts=E2=80=A6I do not seem to have it myself=E2=80=A6but it = exists... > On Jun 16, 2021, at 3:23 PM, OCsite = wrote: >=20 > Hi there, >=20 > is the process of merging changes upon a save into other ECs, and all = the kinds of snapshots available, documented somewhere in detail? >=20 > My old EOEditingContextConcepts says just this: >=20 > ... However, locally uncommitted changes to objects in the = EOEditingContext are by default reapplied to the objects, in effect = preserving the uncommitted changes in the object graph. After the = update, the uncommitted changes remain uncommitted, but the committed = snapshots have been updated to reflect the values in the EOObjectStore. >=20 > and I can't see what does it actually mean =E2=80=9Clocally = uncommitted changes=E2=80=9D here. Most probably a difference from some = snapshot, but I admit I am sort of lost in the things. >=20 > So far I lived in impression that (if we ignore undo) there's only one = kind of snapshots: OSC-level shared snapshots of = what-was-just-saved-into-DB. >=20 > I've tried to research the thing a bit and there seem to be at the = very least the following snapshots: >=20 > (i) EC.committedSnapshotForObject > (ii) EC.currentEventSnapshotForObject > (iii) EODatabaseContext.snapshotForGlobalID > (iv) EODatabaseContext.localSnapshotForGlobalID >=20 > I regret to say the standard documentation does not help much. I did = some testing and it looks like >=20 > - (iii) is the one snapshot I knew: whenever save finishes, it always = contains the newly saved values > - (i) and (ii) =E2=80=94 which for me always contain same data, that's = weird! =E2=80=94 seem to contain an EC-level snapshot stored at its = (first) willChange. Also it looks like those =E2=80=9Clocally = uncommitted changes=E2=80=9D are based on (one of) these. So far though = I haven't found a case when (i) would differ from (ii)... although, = based on the name, I would actually presume (i) should be the same as = (iii). It very definitely is not. > - (iv) I don't understand at all :( >=20 > Are those things somewhere documented in detail? >=20 > Thanks and all the best, > OC >=20 --Apple-Mail=_FCC7A874-F242-46E4-B18A-15DA22D3E66B Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 I = know at some point in time Chuck Hill documented to the very edge = of the edgiest edge case

Alas, I=E2=80=99d guess that be lost in a wiki of unknown = whereabouts=E2=80=A6I do not seem to have it myself=E2=80=A6but it = exists...

On Jun 16, 2021, at 3:23 PM, OCsite <webobjects-dev@wocommunity.org> wrote:

Hi there,

is the process of merging changes upon a save into other ECs, = and all the kinds of snapshots available, documented somewhere in = detail?

My = old EOEditingContextConcepts says just this:

... However, locally uncommitted changes = to objects in the EOEditingContext are by default reapplied to the = objects, in effect preserving the uncommitted changes in the object = graph. After the update, the uncommitted changes remain uncommitted, but = the committed snapshots have been updated to reflect the values in the = EOObjectStore.

and I can't see what does it actually = mean =E2=80=9Clocally uncommitted changes=E2=80=9D here. Most probably a = difference from some snapshot, but I admit I am sort of lost in the = things.

So = far I lived in impression that (if we ignore undo) there's only one kind = of snapshots: OSC-level shared snapshots of = what-was-just-saved-into-DB.

I've tried to research the thing a bit and there seem to be = at the very least the following snapshots:

(i) = EC.committedSnapshotForObject
(ii) EC.currentEventSnapshotForObject
(iii) EODatabaseContext.snapshotForGlobalID
(iv) EODatabaseContext.localSnapshotForGlobalID

I regret to say the standard = documentation does not help much. I did some testing and it looks = like

- = (iii) is the one snapshot I knew: whenever save finishes, it always = contains the newly saved values
- (i) and (ii) =E2=80=94 which for me always contain same = data, that's weird! =E2=80=94 seem to contain an EC-level snapshot = stored at its (first) willChange. Also it looks like those =E2=80=9Clocall= y uncommitted changes=E2=80=9D are based on (one of) these. So far = though I haven't found a case when (i) would differ from (ii)... = although, based on the name, I would actually presume (i) should be the = same as (iii). It very definitely is not.
- (iv) I don't understand at all = :(

Are = those things somewhere documented in detail?

Thanks and all the best,
OC


= --Apple-Mail=_FCC7A874-F242-46E4-B18A-15DA22D3E66B--