http://www.miikahweb.com/feed.php MiikaHweb - Blender Undo-experiments-idnames Branch http://www.miikahweb.com/ MiikaHweb - Blender Undo-experiments-idnames Branch fi Sat, 23 Oct 21 17:31:14 +0000 MiikaHweb RSS contact at miikahweb.com <![CDATA[[edc4b18]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/edc4b18c9d33a2f6db8ac6af48392251e973b3e5 edc4b18
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Fri, 24 Jan 2020 15:21:25 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/edc4b18c9d33a2f6db8ac6af48392251e973b3e5Bastien Montagne
<![CDATA[[2883179]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/2883179f4436c86572e7933c980ef491bb4ad897 2883179
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Fri, 24 Jan 2020 14:57:40 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2883179f4436c86572e7933c980ef491bb4ad897Bastien Montagne
<![CDATA[[dc41a99]: Cleanup .orig files from some merge...]]> http://www.miikahweb.com/en/blender/git-logs/commit/dc41a99a54a817a9cb6cc0dcfaae6c7bef1ab1c0 dc41a99
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Cleanup .orig files from some merge...

----------------------------------------
4 Paths Changed]]>
Tue, 14 Jan 2020 12:42:34 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/dc41a99a54a817a9cb6cc0dcfaae6c7bef1ab1c0Bastien Montagne
<![CDATA[[36e2372]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/36e23725ac94e5a93ce7010360de86f91dab264b 36e2372
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Tue, 14 Jan 2020 12:37:35 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/36e23725ac94e5a93ce7010360de86f91dab264bBastien Montagne
<![CDATA[[32d4d63]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/32d4d63122e1eb9e9096c979584adb7af7ae55cd 32d4d63
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Tue, 14 Jan 2020 12:37:19 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/32d4d63122e1eb9e9096c979584adb7af7ae55cdBastien Montagne
<![CDATA[[0fa4475]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/0fa447530f27d349d6d788f803a53d77b5a414e5 0fa4475
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Mon, 13 Jan 2020 15:52:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/0fa447530f27d349d6d788f803a53d77b5a414e5Bastien Montagne
<![CDATA[[f2f41d7]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/f2f41d7bed1bcbc0deaa3e321cd0002f07bcd63f f2f41d7
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Mon, 13 Jan 2020 15:51:56 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/f2f41d7bed1bcbc0deaa3e321cd0002f07bcd63fBastien Montagne
<![CDATA[[556bbed]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/556bbed6ce7a179330d665508afe6b44b001c380 556bbed
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

Conflicts:
source/blender/blenkernel/BKE_blender_undo.h
source/blender/blenkernel/intern/blender_undo.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/undo/memfile_undo.c

----------------------------------------
0 Paths Changed]]>
Fri, 10 Jan 2020 11:06:50 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/556bbed6ce7a179330d665508afe6b44b001c380Bastien Montagne
<![CDATA[[d0bf65e]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/d0bf65e19f0e3e22bcb9093f0f4720c6995e78da d0bf65e
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Fri, 10 Jan 2020 11:09:58 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/d0bf65e19f0e3e22bcb9093f0f4720c6995e78daBastien Montagne
<![CDATA[[d0c326c]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/d0c326cd55d9bf8031d63bf0806579bdb9acffb0 d0c326c
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Thu, 09 Jan 2020 15:58:35 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/d0c326cd55d9bf8031d63bf0806579bdb9acffb0Bastien Montagne
<![CDATA[[dceab64]: undoexp: fix for missed func signature change.]]> http://www.miikahweb.com/en/blender/git-logs/commit/dceab6418aa43486383e3763836f194feaabd657 dceab64
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: fix for missed func signature change.

----------------------------------------
1 Path Changed]]>
Fri, 10 Jan 2020 11:09:10 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/dceab6418aa43486383e3763836f194feaabd657Bastien Montagne
<![CDATA[[209b2d7]: undoexp: more cleanup of debug printf.]]> http://www.miikahweb.com/en/blender/git-logs/commit/209b2d7c64c276ef5fdb7cafe630f3442d938e3e 209b2d7
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: more cleanup of debug printf.

----------------------------------------
2 Paths Changed]]>
Thu, 09 Jan 2020 16:13:24 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/209b2d7c64c276ef5fdb7cafe630f3442d938e3eBastien Montagne
<![CDATA[[269fdc5]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/269fdc5449ceb9706b0bf2398c15898f959fdae1 269fdc5
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Fri, 10 Jan 2020 10:16:28 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/269fdc5449ceb9706b0bf2398c15898f959fdae1Bastien Montagne
<![CDATA[[6c8b356]: undoexp: Fix major flaw in general logic of unchanged data...]]> http://www.miikahweb.com/en/blender/git-logs/commit/6c8b356203ed3cb330c6f6fa8354eafe46509687 6c8b356
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: Fix major flaw in general logic of unchanged data detection.

Am not sure why it seemed to work that well so far... But using marker
saying that data did not change between n-2 and n-1 step when undoing
from n to n-1 is not really smart.

Fixed that by adding a 'is_identical_future' flag to memfile chunks,
which is set when storing the next undo step. And then using undo
direction to decide which flag to use to detect unchanged data.

This seesm to work to some extend, although for some reason very most
recent undo step seems to be evaluated when doing the first undo, not
sure why... Need to test that with actual working undo code in
undo-experiments-idnames branch anyway.

----------------------------------------
10 Paths Changed]]>
Fri, 10 Jan 2020 10:10:38 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6c8b356203ed3cb330c6f6fa8354eafe46509687Bastien Montagne
<![CDATA[[98633a9]: undoexp: Silent/remove some debug prints.]]> http://www.miikahweb.com/en/blender/git-logs/commit/98633a921314e4737942669eb378d1e2f0856937 98633a9
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: Silent/remove some debug prints.

----------------------------------------
1 Path Changed]]>
Thu, 09 Jan 2020 15:55:27 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/98633a921314e4737942669eb378d1e2f0856937Bastien Montagne
<![CDATA[[2737bcd]: Change message in case of pointer collision to always print.]]> http://www.miikahweb.com/en/blender/git-logs/commit/2737bcd47b66fd88f4ffe5811807c7b1507462f2 2737bcd
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Change message in case of pointer collision to always print.

It is very difficult to test that code, as pointer collisions are
expected to be rather rare... So for now systematically print when we
detect one, could be at least a useful hint in bug report.

And some more comments.

----------------------------------------
1 Path Changed]]>
Tue, 07 Jan 2020 14:30:16 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2737bcd47b66fd88f4ffe5811807c7b1507462f2Bastien Montagne
<![CDATA[[2abb28f]: undoexp: Tag renamed ID undo steps as 'full barrier'.]]> http://www.miikahweb.com/en/blender/git-logs/commit/2abb28f2c2f8d57f6a7042aa61a3a0496eb36e65 2abb28f
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: Tag renamed ID undo steps as 'full barrier'.

I.E. re-using data from old bmain is forbidden around an ID renaming.

This is a bit over-protective in most cases, since renaming an ID does
change its memfile data. So renamed ID should be reloaded from memfile
anyway.

But the problems might come (in some specific scenarii involving 'name
switching' between two IDs) from name-based lookup. Those could lead to
remapping some ID pointers in unchanged data-blocks to the wrong ID...

----------------------------------------
1 Path Changed]]>
Wed, 08 Jan 2020 14:51:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2abb28f2c2f8d57f6a7042aa61a3a0496eb36e65Bastien Montagne
<![CDATA[[4df786e]: undoexp: Move old-data-management code to memfile undo callbacks...]]> http://www.miikahweb.com/en/blender/git-logs/commit/4df786e34e4f5fe70e7788a540ab06801e4c5b99 4df786e
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: Move old-data-management code to memfile undo callbacks.

Does not really make any sense to do that for any other kind of undo
currently, so better keep it in dedicated undotype callbacks.

----------------------------------------
2 Paths Changed]]>
Wed, 08 Jan 2020 14:49:28 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/4df786e34e4f5fe70e7788a540ab06801e4c5b99Bastien Montagne
<![CDATA[[5a27d05]: undoexp: refine handling of 'undo barrier'.]]> http://www.miikahweb.com/en/blender/git-logs/commit/5a27d05424aa490cbc94c6e88ff29b68bc57bb22 5a27d05
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: refine handling of 'undo barrier'.

This also fixes the mesh keeping its edited shape when undoing out of
edit mode e.g.

----------------------------------------
1 Path Changed]]>
Thu, 09 Jan 2020 10:19:56 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/5a27d05424aa490cbc94c6e88ff29b68bc57bb22Bastien Montagne
<![CDATA[[6766efc]: undoexp: add a way to prevent re-using data from old bmain...]]> http://www.miikahweb.com/en/blender/git-logs/commit/6766efce4c7e201eac5ae29385d41314129df48d 6766efc
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: add a way to prevent re-using data from old bmain for memfile undo.

There are cases where we need a full 'clean' re-read of stored memfile
data. This include some (rather uncommon, but possible) ID rename
situations, and also likely some switching between memfileundo and
edit-data undo systems.

----------------------------------------
9 Paths Changed]]>
Wed, 08 Jan 2020 14:35:53 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6766efce4c7e201eac5ae29385d41314129df48dBastien Montagne
<![CDATA[[7a893ff]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/7a893ff39fe2f372073e0c7aeea873a6995c9346 7a893ff
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Mon, 06 Jan 2020 14:49:51 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/7a893ff39fe2f372073e0c7aeea873a6995c9346Bastien Montagne
<![CDATA[[bb08351]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/bb08351842571181107b34593bbb01f68a0fd06b bb08351
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Wed, 08 Jan 2020 10:05:28 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/bb08351842571181107b34593bbb01f68a0fd06bBastien Montagne
<![CDATA[[edbea7f]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/edbea7fab796f73d04a1ee445c85f802a7ac3dd6 edbea7f
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Thu, 09 Jan 2020 10:25:24 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/edbea7fab796f73d04a1ee445c85f802a7ac3dd6Bastien Montagne
<![CDATA[[b13227b]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/b13227b94b63d9ab775c7365d2e700c30cf4b73f b13227b
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Thu, 09 Jan 2020 10:21:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b13227b94b63d9ab775c7365d2e700c30cf4b73fBastien Montagne
<![CDATA[[23d5ca8]: undoexp: Fix crash on NULL depsgraph in storage/restoring code...]]> http://www.miikahweb.com/en/blender/git-logs/commit/23d5ca8740d98465f94bd025f8cd74ea823a0736 23d5ca8
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: Fix crash on NULL depsgraph in storage/restoring code.

There are some cases where a depsgraph has 'no time' to be built (like
multi-steps undo's).

Plus I guess in multi-viewlayers/scenes cases...

----------------------------------------
1 Path Changed]]>
Wed, 08 Jan 2020 10:03:03 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/23d5ca8740d98465f94bd025f8cd74ea823a0736Bastien Montagne
<![CDATA[[618c36b]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/618c36be74b4f9db5ebcac8f358c1f17f9fc46d4 618c36b
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Mon, 06 Jan 2020 14:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/618c36be74b4f9db5ebcac8f358c1f17f9fc46d4Bastien Montagne
<![CDATA[[cc7f831]: undoexp: much better handling of idname-based re-using old...]]> http://www.miikahweb.com/en/blender/git-logs/commit/cc7f8319d8aedee782ca9f51f9cf20bc52c02478 cc7f831
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: much better handling of idname-based re-using old IDs.

This commit adds obvious usage of a proper mapping to find local IDs
in old Main based on their names.

It also adds handling of potential pointer collisions between old Main
realm and read .blend memfile realm. That last part is theoritical
currently though, testing it actually works won't be easy (pointer
collisions will happen, but they are not very likely to happen...).

We are still missing some way to prevent all that new code to be ran
over an undo step that contains ID renaming (ID creation/deletion should
be safe, but idname-based search cannot work whith renaming).

----------------------------------------
3 Paths Changed]]>
Mon, 06 Jan 2020 09:38:32 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/cc7f8319d8aedee782ca9f51f9cf20bc52c02478Bastien Montagne
<![CDATA[[ff8bd65]: Merge branch 'undo-experiments' into undo-experiments-idnames...]]> http://www.miikahweb.com/en/blender/git-logs/commit/ff8bd653564ea5f180c744609cd59157768ae4a5 ff8bd65
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'undo-experiments' into undo-experiments-idnames

----------------------------------------
0 Paths Changed]]>
Sun, 05 Jan 2020 17:27:39 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ff8bd653564ea5f180c744609cd59157768ae4a5Bastien Montagne
<![CDATA[[9737ab7]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/9737ab77ea0ea37ebe8c1de15c71895497d82a49 9737ab7
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Sun, 05 Jan 2020 17:27:21 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/9737ab77ea0ea37ebe8c1de15c71895497d82a49Bastien Montagne
<![CDATA[[176a3ad]: undoexp: Initial, *VERY* basic code using ID names.]]> http://www.miikahweb.com/en/blender/git-logs/commit/176a3adcfdca7d33400e0117deaa723f8bcab368 176a3ad
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: Initial, *VERY* basic code using ID names.

This comes from the fact that we are now handling IDs from potentially
many different 'memory realms' (at the very least, two of them, those
read from memfile [new IDs], and those from previous Main [old IDs]).

The main consequence is that using pointers (aka memory addresses) as
'uids' is not working anymore: we'd need to keep some sort of 'history'
of all pointers a given data-block has had to get it working, and that
would likely lead to 'pointer collisions' [1] at some point or another.

So instead we need to use the only kind of uid we have for datablocks:
their names.

That patch is very basic, but it is enough to check undo/redo on basic
object and pose-bone-of-rigged-mesh dummies, not get it crashing, and
demonstrate huges speed-up in some artificial 'worst test case' scenario.

There are still several things to do from there:
* IDname handling:
* Obviously, use a ghash instead of dummy linear list search! Most
likely use BKE_library_idmap code to generate it.
* Check and handle pointers collisions. [1]
* Testing, testing and moar testing! These changes are highly dangerous
and can destroy a blend file completely, so we'll need to be 100% sure
they are working perfectly before puting them in master!

[1] Pointer collision: the issue here is with 'old' memory addresses
stored/used as uid in .blend file. When one read a .blend file as a
whole this is not an issue, since all old data-blocks where in a single
'memory realm' (the old Main valid at time of file writing), and all new
data-blocks are also in a single realm (the newly read file). Since we
only remap each pointer once, this is fine.

But when we start mixing those 'memory realms' by re-using IDs from old
Main in this undo project, we can end up with the same 'uuid' old
pointer value having to be remapped to two different new addresses.

----------------------------------------
1 Path Changed]]>
Thu, 02 Jan 2020 19:50:09 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/176a3adcfdca7d33400e0117deaa723f8bcab368Bastien Montagne
<![CDATA[[0c76664]: undoexp: Add new 'UNDO_OLD_ID_REUSED' ID tag.]]> http://www.miikahweb.com/en/blender/git-logs/commit/0c766646c626de6bb98b70ef5573d3a74ff4e42f 0c76664
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: Add new 'UNDO_OLD_ID_REUSED' ID tag.

We need to be able to distinguish between reused IDs and newly read
ones, and 'NEW' tag is not enough here, as it gets cleared in read code.

This will be used in next commit to inform depsgraph that some re-used
old IDs need at least a COW refresh, as they are using ID pointers to
newly read data.

----------------------------------------
2 Paths Changed]]>
Thu, 02 Jan 2020 16:00:41 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/0c766646c626de6bb98b70ef5573d3a74ff4e42fBastien Montagne
<![CDATA[[ec71992]: undoexp: fix crashes with even trivial relationships (like...]]> http://www.miikahweb.com/en/blender/git-logs/commit/ec7199242f6b361a14ac179494f2991bf9b4e1e7 ec71992
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: fix crashes with even trivial relationships (like parent ones).

Even if we re-used an old ID, it may have some pointers to other IDs
remapped to newly read data, e.g. the `parent` of an object...

So CoW/evaluated data in re-used despgraph needs to be flushed in those
cases.

----------------------------------------
1 Path Changed]]>
Thu, 02 Jan 2020 16:03:05 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ec7199242f6b361a14ac179494f2991bf9b4e1e7Bastien Montagne
<![CDATA[[c765025]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/c7650258b8073759bfd6671677c49c99e6d65ace c765025
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Thu, 02 Jan 2020 09:45:54 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/c7650258b8073759bfd6671677c49c99e6d65aceBastien Montagne
<![CDATA[[fdafa4f]: Undoexp: do not tag re-used IDs with LIB_TAG_NEW.]]> http://www.miikahweb.com/en/blender/git-logs/commit/fdafa4f5bd7ba5dee54a6556a9b4766795c4b002 fdafa4f
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Undoexp: do not tag re-used IDs with LIB_TAG_NEW.

----------------------------------------
1 Path Changed]]>
Thu, 02 Jan 2020 09:48:42 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/fdafa4f5bd7ba5dee54a6556a9b4766795c4b002Bastien Montagne
<![CDATA[[ae9d276]: undoexp: do not clear icon_id of re-used IDs.]]> http://www.miikahweb.com/en/blender/git-logs/commit/ae9d276352914b9f9f83195b84f5924eb472e50e ae9d276
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
undoexp: do not clear icon_id of re-used IDs.

Those icon_id's remain valid, and allocated in the preview system,
clearing them here will lead to asserts...

----------------------------------------
1 Path Changed]]>
Mon, 30 Dec 2019 16:58:27 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ae9d276352914b9f9f83195b84f5924eb472e50eBastien Montagne
<![CDATA[[1ea1c12]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/1ea1c1232a283b880120caae198c1b8f371b31d6 1ea1c12
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Mon, 30 Dec 2019 14:30:59 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/1ea1c1232a283b880120caae198c1b8f371b31d6Bastien Montagne
<![CDATA[[74b241b]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/74b241b6b4d0c9c6a9c238b60e41a2f465271174 74b241b
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Unknown ()
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Mon, 23 Dec 2019 16:38:43 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/74b241b6b4d0c9c6a9c238b60e41a2f465271174
<![CDATA[[0425faa]: Fix stupid misplacement of depsgraphs extraction/restoration...]]> http://www.miikahweb.com/en/blender/git-logs/commit/0425faafe272a99cba5a88fbf6c73916b14ded75 0425faa
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Fix stupid misplacement of depsgraphs extraction/restoration.

----------------------------------------
1 Path Changed]]>
Tue, 10 Dec 2019 10:58:22 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/0425faafe272a99cba5a88fbf6c73916b14ded75Bastien Montagne
<![CDATA[[cbb9a5a]: Merge branch 'master' into undo-experiments]]> http://www.miikahweb.com/en/blender/git-logs/commit/cbb9a5adaf4b0eff31702145621848988379c463 cbb9a5a
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-remap-history, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Merge branch 'master' into undo-experiments

----------------------------------------
0 Paths Changed]]>
Tue, 10 Dec 2019 10:14:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/cbb9a5adaf4b0eff31702145621848988379c463Bastien Montagne
<![CDATA[[04aa7b3]: Revert "Fully WIP code."]]> http://www.miikahweb.com/en/blender/git-logs/commit/04aa7b3f847611908a5582a116eeec830538dcda 04aa7b3
Branches : undo-experiments, undo-experiments-idnames, undo-experiments-remap-history, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks
Author : Bastien Montagne (mont29)
----------------------------------------
Revert "Fully WIP code."

This reverts commit d726305d98db6ccfb1f3b4cd9b7b75540e606faa.

Need better cleaner changes here.

----------------------------------------
4 Paths Changed]]>
Fri, 29 Nov 2019 09:34:26 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/04aa7b3f847611908a5582a116eeec830538dcdaBastien Montagne