<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=BreadthFirstUndo</id>
	<title>BreadthFirstUndo - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=BreadthFirstUndo"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=BreadthFirstUndo&amp;action=history"/>
	<updated>2026-04-08T15:23:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=BreadthFirstUndo&amp;diff=7314&amp;oldid=prev</id>
		<title>GigaClon: Categorization</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=BreadthFirstUndo&amp;diff=7314&amp;oldid=prev"/>
		<updated>2006-06-27T00:39:22Z</updated>

		<summary type="html">&lt;p&gt;Categorization&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;ok, breadth first undo:&lt;br /&gt;
* Take a document with an oval and a square&lt;br /&gt;
* Resize the oval.&lt;br /&gt;
* Move the square.&lt;br /&gt;
* Set the oval's stroke width&lt;br /&gt;
&lt;br /&gt;
Normal undo would undo the square, then the oval.&lt;br /&gt;
&lt;br /&gt;
Breadth first undo would allow the user to undo either the square or the oval.  The edits in the document can be considered a sequence of parallel edits, the order of undo on any particular element is only defined by edits on it, or on something that affects it.  The undo history becomes:&lt;br /&gt;
&lt;br /&gt;
  New document&lt;br /&gt;
    New oval&lt;br /&gt;
      Resize oval&lt;br /&gt;
        Set stroke&lt;br /&gt;
    New square&lt;br /&gt;
      Move square&lt;br /&gt;
&lt;br /&gt;
Another way to change undo is to provide a branch in the history whenever an undo followed by an edit occurs.  For example, &lt;br /&gt;
* Take a document with an oval and a square&lt;br /&gt;
* Resize the oval.&lt;br /&gt;
* Move the square.&lt;br /&gt;
* Set the oval's stroke width&lt;br /&gt;
* undo, undo&lt;br /&gt;
* add spiral&lt;br /&gt;
&lt;br /&gt;
The history of this document could be displayed like this:&lt;br /&gt;
&lt;br /&gt;
  Resize oval&lt;br /&gt;
    Move square&lt;br /&gt;
      Set oval stroke width&lt;br /&gt;
  Add spiral&lt;br /&gt;
&lt;br /&gt;
The two concepts can be merged to give an edit tree for each object in the document, the traditional undo being threaded through the tree.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Discussion]]&lt;/div&gt;</summary>
		<author><name>GigaClon</name></author>
	</entry>
</feed>