View Ticket
Not logged in
Ticket UUID: ee97701f4c5a7db691baf1cf79bc9cc39fee56e0
Title: "fossil add" broken for repos opened into "/"
Status: Open Type: Code_Defect
Severity: Minor Priority:
Subsystem: Resolution: Open
Last Modified: 2011-05-03 15:40:34
Version Found In: 9ca5bbf8a6
Description & Comments:
When a fossil repository has been opened from the root directory ("/"), the attempt to "fossil add" a file results in:

fossil: file outside of checkout tree: <filename>

Trying to add a whole subdir additionally prints out a SQL error message:

fossil: SQLITE_BUSY: statement aborts at 2: [ROLLBACK] cannot rollback transaction - SQL statements in progress

But once a file has been added (e.g. from a "mount -obind" of / to a subdir), it can be committed from / just fine.


anonymous added on 2011-05-03 15:40:34 UTC:
The issue likely comes from the use of

zPwdConv = mprintf("%/", zPwd);

in db_must_be_within_tree()->db_open_local().

This severely limits the usability of fossil for system configuration management. The mentioned workaround (mount -orebind) is only useful for Linux (FreeBSD's unionfs & nullfs do not allow such trickery with the root filesystem).