does anyone know resources on designing undo/redo mechanisms for software?

I'm not sure if it would be better to do it like version control by storing diffs, or by storing a stack of reversible actions performed by the user.

@raeaw A piece of commercial software I worked on stored all the old undoable-to states as a linked list of complete states (with reference counting and copy-on-write). Undoing was done just by popping off the end of the linked list (and adjusting reference counts) to reveal the previous state.

But I don’t have feels about whether this is better or worse than the ideas you mentioned.

Sign in to participate in the conversation
LGBTQIA+ Tech Mastodon

*Due to increased bot signup, manual approval is required. Please write some applicable request text on signup.*

This Mastodon instance is for tech workers, academics, students, and others interested in tech who are LGBTQIA+ or Allies.

We have a code of conduct that we adhere to. We try to be proactive in handling moderation, and respond to reports.

Abridged Code of Conduct

Discrimination & Bigotry Won’t Be Tolerated.

We're not a free speech absolutist. We're not interested in Nazis, TERFS, or hate speech.

Respect Other Users.

This instance is meant to be a friendly, welcoming space to all who are willing to reciprocate in helping to create that environment.

Consent is Important in all contexts.

If you’re ever unsure, ask first. Use CWs where required.

Listen; Don’t Make Excuses.

If you’re accused of causing harm, either take some responsibility or ask moderators for help.

Use the Report Feature.

Our moderators are here to listen and respond to reports.

For more detail, please
Review our Full Code of Conduct

This instance is funded in part by Patreon donations.