I have encountered a problem which is in a way trivial, but it is also
somewhat important to me.
THE PROBLEM
After creating a new repository and opening it, 'status' displays that
it has been assigned a 'checkout' identifier; however, I am never able
to access that 'checkout'. If I create a new branch off that origin,
when I try to return to 'trunk', I receive a "not a check-in" error
(I've included a transcript of a test session at the end of this post).
MY GOAL
I wish to use Fossil to maintain a directory of scripts and I would
like to start a new branch whenever I create a new script, and to have
that branch contain only the script file. In other words, if 'root' is
the original empty check-in artifact, I want each script to be a
branch off of 'root' (the scripts would be merged back to 'trunk').
A WORK-AROUND
If I first check-in a commit to trunk that includes an ADDed file
(even an empty one), I can then use the original check-in ('root') for
starting branches -- successfully being able to merge those branches
back to trunk. I can even later delete the empty-file and remove it
from 'trunk'.
WHY WORK-AROUND IS UNSATISFACTORY
Though the above work-around completely satisfies my personal needs, I
am hoping to introduce some absolute beginners -- to both programming
and Source Configuration Management -- to using Fossil to organize
their programming activities. It is less than ideal that amongst the
very first steps in getting started, it is necessary to perform a
somewhat unintuitive work-around (it wouldn't be so bad if it came
later in the course).
CONCLUSION
While my goal is admittedly an edge case, and branching off an empty
check-out may be rather unintuitive itself, I do think this behavior
is somewhat anomalous and should probably be considered a bug. The
original check-out is assigned an ID and one is able to branch from
that ID, yet it is otherwise not recognized as a valid check-out of
'trunk'.
This is by no means critical, but it did seem worth mentioning. If
anybody has any suggestions for simpler work-arounds -- or maybe I
missed something completely obvious -- please let me know.
--------------------------
TRANSCRIPT OF TEST SESSION
$ fossil new $HOME/foo.fossil
project-id: 22cc9378e7e9c90aa69ab5de4d2158082e2b84c5
server-id: 4e110fd69e6c808f9b4b77da3450a674e51d0a5e
admin-user: saul (initial password is "004d85")
$ fossil open $HOME/foo.fossil
$ fossil status
repository: /home/saul/foo.fossil
local-root: /home/saul/test/
server-code: 4e110fd69e6c808f9b4b77da3450a674e51d0a5e
checkout: ed9081561d84e261b5a0f3aaf0531fdb530feb57 2010-07-26
21:57:18 UTC
tags: trunk
$ fossil branch new bar trunk
New branch: aa562d8538bbdfa72c44dbf3a8cd14d1925d6db1
$ fossil co bar
$ touch empty-file
$ fossil add empty-file
ADDED empty-file
$ fossil commit
New_Version: d5a946e783821ce9a79866e13f920ec02a092f31
$ fossil co trunk
fossil: object [ed9081561d] is not a check-in
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users