View Ticket
Not logged in
Ticket UUID: 552b3512dc7cd757534963f1cb0b81b8a3a56b49
Title: "fossil mv" will let me move a file to outside of the tree.
Status: Closed Type: Code_Defect
Severity: Important Priority:
Subsystem: Resolution: Unable_To_Reproduce
Last Modified: 2009-12-17 16:55:06
Version Found In: This is fossil version [f6790b7c3c] 2009-02-26 01:21:04 UTC
Description & Comments:
Problem: I believe there is a bug with "fossil mv": it lets me move a file outside of the change controlled tree, at which point there is nothing I can do (to the best of my knowledge) to fix this situation with other fossil commands.

I would expect: Either that fossil will prevent me from moving the file outside of the change controlled tree, or that fossil will allow me to rectify the situation afterwards.

Reproduction Steps: Running these commands will build you a sandbox, set up a repo, open it, add a file, commit the file, and then move the file out. Bung them in a file and source it with "."...

mkdir sandbox
cd sandbox
fossil new test_repo
mkdir working_copy
cd working_copy
fossil open ../test_repo
touch a_file
fossil add a_file
fossil com -m "Adding in a test file."
fossil mv a_file ..
mv a_file ..
echo "Check changes, and see that the file is outside the change controlled tree."
fossil chan
echo "Try to move the file back in to the tree (which will fail)..."
fossil mv ../a_file ./

Work around: It is possible to hack at the _FOSSIL_ sqlite db in the check out tree, but this is probably a terrible idea.


drh added on 2009-12-17 16:55:06:
When I try the recipe above, the "fossil mv a_file .." command gives an error message: "fossil: file outside of checkout tree: .."

If someone can explain to me how to reproduce this problem we will reopen the ticket...