Search code examples
cvsfossil

Does fossil have an equivalent of cvs status?


If possible, I would like to get the fossil equivalent of CVS's notion of Working revision:

===================================================================
File: tony              Status: Locally Modified

   Working revision:    1.2 2022-08-24 22:15:36 -0700
   Repository revision: 1.2 /cvsroot/kn/newdir/tony,v
   Commit Identifier:   1006307057632F6D41E
   Sticky Tag:      (none)
   Sticky Date:     (none)
   Sticky Options:  (none)

I am aware that there is a fossil status command, but that does not give any information about specific files in the repository. The fossil finfo <file> command shows the revisions, fossil ls -v & fossil update -n show some file status (like UPDATE, EDITED, etc.) but I can find no command that indicates the provenance of the file as in the "Working revision: 1.2" above.


Solution

    1. You have to understand at least one big difference between pure CVS and modern VCS: revisions of single files vs changesets for the whole repository
    2. Consequence from p1 - all files in repo in given revision (aka "changesets") belong to this revision

    Maybe a sample of a such snippet (or any part of it) will provide the closest information to the required for you (paths, file and slashes are specific to my Windows-setup)

    ..\fossil finfo -s Makefile.classic && ..\fossil finfo -b -n 1 Makefile.classic
    unchanged  6721c654a9
    8d78edddf7 2022-01-21 george search-t Merge from trunk
    
    • With finfo -s I get status of file and revision of Working Dir
    • With finfo -b -n 1 I get last single changeset, which touched file in the past