<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: undo</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/undo.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-01-03T16:43:21+00:00</updated><author><name>Simon Willison</name></author><entry><title>Undo commit in subversion</title><link href="https://simonwillison.net/2008/Jan/3/undo/#atom-tag" rel="alternate"/><published>2008-01-03T16:43:21+00:00</published><updated>2008-01-03T16:43:21+00:00</updated><id>https://simonwillison.net/2008/Jan/3/undo/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://noehr.org/2007/12/undo_commit_in_subversion_svn_1.html"&gt;Undo commit in subversion&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
svn merge -r 1708:1707—I can never remember how to do this.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/merge"&gt;merge&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/subversion"&gt;subversion&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/svn"&gt;svn&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/undo"&gt;undo&lt;/a&gt;&lt;/p&gt;



</summary><category term="merge"/><category term="subversion"/><category term="svn"/><category term="undo"/></entry><entry><title>ActsAsUndoable</title><link href="https://simonwillison.net/2007/Sep/18/actsasundoable/#atom-tag" rel="alternate"/><published>2007-09-18T15:51:14+00:00</published><updated>2007-09-18T15:51:14+00:00</updated><id>https://simonwillison.net/2007/Sep/18/actsasundoable/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.nodetraveller.com/blog/javascript/actasundo/"&gt;ActsAsUndoable&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Lawrence Carvalho shows how robust undo functionality can be added to a JavaScript application through careful application of the Memento design pattern.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/actsasundoable"&gt;actsasundoable&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design-patterns"&gt;design-patterns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/lawrence-carvalho"&gt;lawrence-carvalho&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/memento"&gt;memento&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/undo"&gt;undo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="actsasundoable"/><category term="design-patterns"/><category term="javascript"/><category term="lawrence-carvalho"/><category term="memento"/><category term="undo"/><category term="yui"/></entry><entry><title>Undelete in Django</title><link href="https://simonwillison.net/2007/Jul/20/undelete/#atom-tag" rel="alternate"/><published>2007-07-20T18:54:11+00:00</published><updated>2007-07-20T18:54:11+00:00</updated><id>https://simonwillison.net/2007/Jul/20/undelete/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://nathanostgard.com/archives/2007/7/18/undelete-in-django/"&gt;Undelete in Django&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Inspired by the conversation about undo the other day, Nathan Ostgard created a simple solution based around custom managers and a trashed_at model field.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/custommanagers"&gt;custommanagers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/nathan-ostgard"&gt;nathan-ostgard&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/orm"&gt;orm&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/undelete"&gt;undelete&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/undo"&gt;undo&lt;/a&gt;&lt;/p&gt;



</summary><category term="custommanagers"/><category term="django"/><category term="nathan-ostgard"/><category term="orm"/><category term="python"/><category term="undelete"/><category term="undo"/></entry><entry><title>Never use a warning when you mean undo</title><link href="https://simonwillison.net/2007/Jul/17/undo/#atom-tag" rel="alternate"/><published>2007-07-17T11:00:24+00:00</published><updated>2007-07-17T11:00:24+00:00</updated><id>https://simonwillison.net/2007/Jul/17/undo/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.alistapart.com/articles/neveruseawarning"&gt;Never use a warning when you mean undo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The abundance of “undo” is one of my favourite things about Gmail. I wonder if there’s anything Django could do to make implementing undo functionality easier...


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/a-list-apart"&gt;a-list-apart&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/gmail"&gt;gmail&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/undo"&gt;undo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/usability"&gt;usability&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/warning"&gt;warning&lt;/a&gt;&lt;/p&gt;



</summary><category term="a-list-apart"/><category term="django"/><category term="gmail"/><category term="undo"/><category term="usability"/><category term="warning"/></entry></feed>