Browse Source

sync .fossil-settings/ignore-glob with .gitignore intent

The fossil ignore list had drifted well behind .gitignore (missing *.log,
lib_tcl8/9, modules_tcl8/9, vendorbuilds, scratch*, src/testdata,
src/scriptapps/test_*, src/buildsuites, nested _build/_aside, and using
.punkcheck where git has *.punkcheck; carrying a stale 'builds' entry with
no git counterpart). Rewritten to mirror .gitignore as the canonical
statement of intent, translated for fossil glob semantics (verified
empirically against fossil 2.28 with a scratch repo): no negation exists,
so bin/* is ignored wholesale with the source-controlled bin exceptions
(AGENTS.md, *.cmd, *.kit, *.tcl, *.sh, *.bash) handled by explicit
'fossil add' (ignore-glob does not affect already-managed files); a bare
directory name prunes its whole tree; * crosses directory separators; git
patterns matching at any depth get an additional */ variant; # comment
lines are honoured. The header documents the derivation and the semantic
translation rules.

Verification against the live checkout: extras drop 10108 -> 2855 with no
bin/log/scratch leakage; zero extras are git-ignored (no under-ignoring);
git-tracked files invisible to fossil reduce to the designed bin exception
set plus fossil's own generated manifest files and a vendored nmakehlp.exe
(*.exe - needs explicit fossil add, as in git).

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
6850059964
  1. 75
      .fossil-settings/ignore-glob

75
.fossil-settings/ignore-glob

@ -1,38 +1,42 @@
#Derived from .gitignore (the canonical statement of ignore intent) - keep in sync manually.
#Fossil glob semantics differ from git (verified fossil 2.28):
# - no negation patterns: the tracked exceptions under bin/ (AGENTS.md, *.cmd, *.kit, *.tcl,
# *.sh, *.bash) cannot be expressed - bin/* is ignored wholesale and source-controlled bin
# items must be explicitly 'fossil add'ed (ignore-glob does not affect already-managed files)
# - a bare directory name prunes the whole tree; * crosses directory separators
# - git patterns intended to match at any depth need an additional */ variant here
.git .git
CVS CVS
bin/*.exe
bin/*.zip #bin is primarily build output - tracked exceptions by explicit add (see header)
bin/*.bak bin/*
bin/*.ps1
bin/tools #directories for compiled/built Tcl packages - purely output
bin/runtime
bin/*test*
lib lib
#The directory for compiled/built Tcl modules lib_tcl8
lib_tcl9
modules modules
#The buildsuites output folder modules_tcl8
builds modules_tcl9
vendorbuilds
localdoc #Temporary files e.g from tests
tmp
.vscode .vscode
*/.vscode
.claude .claude
*/.claude
.omo .omo
*/.omo
#subfolder for temporary reference files - not source controlled
#we may use git clone to get a copy of the reference files - but we don't want to track them in the repo
TEMP_REFERENCE
#Temporary files e.g from tests
tmp
logs logs
_aside _aside
*/_aside
#working directories
_build _build
src/_build */_build
src/docgen scratch*
*/scratch*
#Built documentation #Built documentation
html html
@ -41,22 +45,41 @@ md
doc doc
test* test*
src/testdata
src/scriptapps/test_*
#temp ignore - not ripe
src/buildsuites
#review
src/docgen
#local developer notes
localdoc
#Built tclkits (if any) #Built tclkits (if any)
#punk*.exe
#tcl*.exe
*.exe *.exe
#subfolder for temporary reference files - not source controlled
TEMP_REFERENCE
*/TEMP_REFERENCE
#fossil database files (fossil auto-ignores its own control files; an in-tree repo file would otherwise list as an extra)
*.fossil
#miscellaneous editor files etc #miscellaneous editor files etc
*.swp *.swp
*.log
*.punkcheck
.punkcheck
todo.txt todo.txt
*/todo.txt
zig-cache zig-cache
*/zig-cache
zig-out zig-out
*/zig-out
release release
debug debug
build build

Loading…
Cancel
Save