kovasb / session

repl into the clojurescript community
Eclipse Public License 1.0
459 stars 36 forks source link

Branching model #13

Open kovasb opened 11 years ago

kovasb commented 11 years ago

It is essential that the sequence of inputs and outputs in session accurately represents what happened, and is reproducible.

Currently it is possible to go back to an earlier input and modify it. This potentially makes later outputs invalid. For example you could delete a input that defined a function, and still have a later input that uses that function

However, an append-only model is no good because you end up seeing a bunch of code that is no longer relevant. You want to only see the code that you want to keep. (This is why I'm currently allowing people to do these kinds of edits. The history is still stored in datomic, so it is possible to figure out what happened, even if the current state of the session is inaccurate.)

Therefore there needs to be some kind of branch-and-merge model, that lets you edit previous inputs and then reconcile that change with the potential future.