- | Some d ->
- logger `Error
- ("Directory " ^ dir ^ " is already handled by development " ^ d.name);
- logger `Error
- ("Development " ^ d.name ^ " is rooted in " ^ d.root);
- logger `Error
- (dir ^ " is a subdir of " ^ d.root);
- None
+ | Some dev ->
+ if dir <> dev.root then begin
+ logger `Error
+ (sprintf ("Dir \"%s\" is already handled by development \"%s\"\n"
+ ^^ "Development \"%s\" is rooted in \"%s\"\n"
+ ^^ "Dir \"%s\" is a sub-dir of \"%s\"")
+ dir dev.name dev.name dev.root dir dev.root);
+ None
+ end else (* requirement development alreay exists, do nothing *)
+ Some dev