Derek Scherger wrote:
The idea I had in mind would be something like, commit the current
revision to your local db *without* a branch cert, but perhaps with some
other paused cert that gives a name to each paused revision. This commit
would be done by the pause command. After committing the paused
revision, *don't* update _MTN/revision to the new rev, but rather revert
the pending changes, which are now safely in the database and go back to
the base revision. From here you can make some other, unrelated change,
commit that and then resume the previously suspended change. Resume
would work something like update or pluck, but again, without making
changes to _MTN/revision so that the workspace continues to be based off
of whatever revision it is currently at.
The paused revisions would never have children and would not have branch
certs and would not be synced via netsync. Ideally, the resume command
would remove the paused revision from the database entirely, but this is
a bit finicky.
Others have a mentioned that such a feature would be useful with really
big workspaces as well. Rather than checking out another workspace to
make an unrelated change, suspend the current one, make the other change
and then resume where you left off.
GNU arch has this functionality:
undo : undo and save changes in a project tree
redo : redo changes in project tree
It would calculate the diff and store it in a temporary directory, and
later apply the stored diff back with redo. It could even do this
multiple times.
I used it a couple of times and found it fairly nice.
-- Ulf
_______________________________________________
Monotone-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/monotone-devel