Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collaborative undo/redo model #18

Open
ekuiter opened this issue Sep 19, 2018 · 0 comments
Open

Collaborative undo/redo model #18

ekuiter opened this issue Sep 19, 2018 · 0 comments
Labels
client enhancement New feature or request server

Comments

@ekuiter
Copy link
Owner

ekuiter commented Sep 19, 2018

Right now, the editor uses a global linear undo/redo model.

This is not an ideal model for collaboration editing. There are other models described in the literature (i.e., direct selective undo) which may be more suitable. These pose new challenges (such as: when is it actually possible to undo any edit from the history? whose edits have to be rolled back as well?). Also the current implementation of state changes (more or less copied from FeatureIDE) assumes a linear undo model and has to be revised.

Other things to consider:

  • when and how to consolidate state changes into an artifact? (e.g., upper limit for undo stack size?)
  • undoing/redoing state changes in a feature model may concern referencing configurations (see Configuration editor #13)
  • give the user an appropriate UI for undoing/redoing state changes (including a list of undoable commands, or a tree, maybe even a list of commands from other users that can be undone, ... this can be arbitrarily complex)

For example, we could provide a split undo menu that undoes the last (own) state change by default, but that provides a menu in which other state changes may be chosen.

@ekuiter ekuiter added enhancement New feature or request client server labels Sep 19, 2018
@ekuiter ekuiter added this to the Basic kernel integration milestone Feb 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client enhancement New feature or request server
Projects
None yet
Development

No branches or pull requests

1 participant