On Mon, Sep 9, 2013 at 11:29 AM, Julian Foad <julianf...@btopenworld.com> wrote: > Philip Martin wrote: >> The current Ev2 has atomic add for files and directories, it doesn't >> attempt to reuse the alter operations by adding "empty" nodes and then >> altering those empty nodes. The current Ev2 also has move and copy >> operations that do attempt to resuse alter. I'm not clear why they are >> different. Why is add different from move/copy?
Combinatorics. It is striking a balance between atomicity, and combinatoric growth. The API doesn't have to be "pure"... it needs to work. (iow, we can skip the Second System Syndrome and get stuff done, rather than perfect) I don't think it poses a serious problem. But yeah... if it does, then we'd want to expand move/copy with the variants. >... >> move_here_file(src_path, dst_path, properties, content, replaces_rev) >> move_here_dir(src_path, dst_path, properties, children, replaces_rev) >> copy_file(src_path, src_rev, dst_path, properties, content, replaces_rev) >> copy_dir(src_path, src_rev, dst_path, properties, children, replaces_rev) Don't forget the symlink variants! > Yup. Alternatively, we could make 'alter' the *only* way to declare a node's > content: And now you lose much of the atomicity. Cheers, -g