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
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to