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
