David Roundy wrote:
I should mention that transactional semantics in the working directory is
impossible to implement with any guarantees, because there's always the
possibility that halfway through an update someone will change permissions
of some of the working-directory files, or that disk space will be used up,
etc.  I don't believe anything bigger than a single file can be updated
atomically.  I suppose you could create a new directory and rename it over
an existing one, but you wouldn't want that behavior, since it'd mess up
any running programs with that directory as their working directory.

In some cases you can use local Operating System components to deal with that. For instance, NTFS on Windows Vista supports transactions. Having to optimize for every potential file system and operating system could be a hassle.

Interestingly enough, Vista betas had a command-line tool named "transaction" that allowed you to start/stop/rollback transactions yourself, but they apparently removed it in the final version. If it were still around you could manually do:

transaction /start
darcs pull -a
...  Some error occurs ...
transaction /rollback

--
--Max Battcher--
http://www.worldmaker.net/
_______________________________________________
darcs-devel mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-devel

Reply via email to