Julian Foad <julianfoad_at_btopenworld.com> writes:
> Branko Čibej wrote:
>
>> Can we please stop arguing about API semantics in terms of wc.db
>> implementation details? They bring nothing useful into the discussion.
>> Design the API first, /then/ worry about how to implement it.
>
> While you and I are among those who prefer to discuss the design in
> terms of semantic models, I defend Philip's right to present arguments
> in the form of quasi-concrete implementation questions. These should
> then be analyzed to determine what semantic model issues they bring to
> light.
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?
We could split move in two and make the parts more like delete and
add. We could also make copy more like add:
add_file(path, properties, content, replaces_rev)
add_dir(path, properties, children, replaces_rev)
alter_file(path, properties, content, replaces_rev)
alter_dir(path, properties, children, replaces_rev)
delete(path, revision)
move_away(src_path, dst_path, revision)
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)
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2013-09-09 17:41:25 CEST