Fossil SCM
fossil scrub --private sometimes remove private files that have been merged into public branches
5f194e2c8f475ce…
· opened 15 years, 1 month ago
- Type
- Code_Defect
- Priority
- —
- Severity
- Important
- Resolution
- Fixed
- Subsystem
- —
- Created
- March 4, 2011 11:22 a.m.
When: * A file is added in a private branch * This private branch is pushed to a remote server * This branch is locally merged to a public branch * The merge is pushed to the remote server
A fossil scrub --private executed directly on the remote server will delete the content of the file.
How to reproduce:
$ fossil new a.fossil
$ fossil clone file://a.fossil b.fossil
$ mkdir test
$ cd test
$ echo "abcd" >test.txt
$ fossil add test.txt
$ fossil commit -m"test" --private
$ cd ..
$ fossil sync -R a.fossil file://b.fossil --private
$ cd test
$ fossil checkout trunk
$ fossil merge private
$ fossil commit -m"test"
$ cd..
$ fossil sync -R a.fossil file://b.fossil --private
$ fossil scrub b.fossil --private
$ fossil ui b.fossil
Browse the files and observe that the content of test.txt is missing.
I think that the problem is that when fossil receives a non-private manifest that points to a file that was previously private, it should mark that file's content as public and it doesn't.