Menu

Tree [b2b860] main /
 History

HTTPS access


File Date Author Commit
 debian 2026-07-03 Reaper Reaper [b5bc68] debian: track quilt source format
 extensions 2026-07-03 Reaper Reaper [f67dcf] extension: add Nautilus Nemo and Caja provider
 icons 2026-07-03 Reaper Reaper [647481] icons: add CVS status emblem set
 src 2026-07-03 Reaper Reaper [6b3dee] core: add CVS entries parser and mapper
 tests 2026-07-03 Reaper Reaper [82be9d] tests: cover CVS entries status parsing and map...
 tools 2026-07-03 Reaper Reaper [5ebe0a] tools: add local CVS fixture helpers
 .gitignore 2026-07-03 Reaper Reaper [cf63a3] docs: initialize project metadata
 AUTHORS 2026-07-03 Reaper Reaper [cf63a3] docs: initialize project metadata
 LICENSE 2026-07-03 Reaper Reaper [cf63a3] docs: initialize project metadata
 PROJECT_STATUS.md 2026-07-03 Reaper Reaper [b2b860] docs: document validation status and next steps
 README.md 2026-07-03 Reaper Reaper [cf63a3] docs: initialize project metadata

Read Me

cvs-filemanager-icons

cvs-filemanager-icons is a small set of CVS status emblem extensions for
Nemo, Caja, and Nautilus.

It is intentionally lightweight. It does not try to become a CVS GUI, a Tortoise
clone, or a replacement for command-line CVS. It only adds visual status clues
for CVS working directories in the file manager.

The implementation follows the same practical model as git-nautilus-icons and
the sibling svn-filemanager-icons, mercurial-filemanager-icons, and
bazaar-filemanager-icons packages: a common icon/helper package plus separate
file-manager extension packages.

Packages

Source package:

  • cvs-filemanager-icons

Binary packages:

  • cvs-filemanager-icons-common
  • nemo-cvs-filemanager-icons
  • caja-cvs-filemanager-icons
  • nautilus-cvs-filemanager-icons

Runtime dependency

The file-manager extension packages depend on the classic CVS command-line
client package:

  • cvs

The core status engine is local-first and reads CVS administrative metadata from
CVS/Entries where possible. It does not contact a remote CVS server to compute
emblems.

Emblems

Installed emblem names:

  • cvs-repo
  • cvs-clean
  • cvs-modified
  • cvs-added
  • cvs-removed
  • cvs-missing
  • cvs-conflicted
  • cvs-unknown
  • cvs-ignored
  • cvs-error

Development validation

Run the pure-Python tests without any file manager installed:

python3 -m unittest discover -s tests -v
python3 -m py_compile extensions/cvs-filemanager-icons.py src/cvs_filemanager_icons_core.py

Create a local CVS fixture when the cvs package is installed:

tools/create-local-cvs-fixture.sh /tmp/cvs-filemanager-icons-fixture
python3 tools/inspect-status.py /tmp/cvs-filemanager-icons-fixture/wc

Scope and limitations

CVS predates modern local status databases. This extension therefore reports
local working-tree state based on CVS/Entries, file timestamps, scheduled add
and remove markers, missing files, local ignore rules, and obvious conflict
markers. It intentionally does not query the upstream repository for remote
changes, because doing that from a file-manager extension would be slow and
surprising.