Philip Martin <philip.mar...@wandisco.com> writes: > I'm working on a new svn_fs_lock that allows multiple paths to be > locked. This is to avoid the inefficiency of writing the large digest > files multiple times when locking multiple paths one at a time. I have > the low level file handling written but the plumbing to connect it all > up is a bit tricky.
Another bit of the API that's causing a problem: canonical paths. The existing svn_fs_path implementation calls svn_fspath__canonicalize on its input paths which means that a variety of different inputs produce the same result, e.g. "/A/f", "A/f", "/A///f", etc. all work. When svn_fs_lock supports multiple paths how should it behave when more than one input path refers to the same canonical path? Should it detect duplicates and fail up front? Should it act on the canonical path only once and produce fewer "results" than inputs? Should it act on the canonical path multiple times, perhaps locking the first time and failing subsequently, or locking every time with --force? Should it be stricter that the single path function and fail on all non-canonical paths? The repos layer runs the pre-lock hooks on each path so whatever the FS layer does probably has to duplicated in the repos layer. -- Philip Martin | Subversion Committer WANdisco // *Non-Stop Data*