Skip to main content

Module scan

Module scan 

Source
Expand description

Classification pass: decide, for every path under the project root, whether it travels in the pack, is dropped, or is merely reported.

The scan is deliberately independent of .gitignore. A pack carries the whole project — tracked files, the .git directory itself, and the untracked local state that ordinarily never leaves the machine (a workspace/ directory, journal databases, sandbox snapshots). Consulting ignore rules would drop exactly the material the pack exists to preserve.

Four rules decide what does not travel verbatim:

ruleeffect
cache directorynot packed, recorded with the file count, size, and any credentials that went with it
secret filenot packed, reported; moving credentials is the operator’s own business
OS debris (.DS_Store)not packed, recorded; nothing to act on, but nothing leaves untraced either
symlinkpacked as a link, never dereferenced; recorded so restore can report dangles
no_link_report pathpacked as links, left out of the link report; the rule that did so is recorded

Only the last is opt-in. A symlink breaks when the project is carried elsewhere, so reporting one is the default and suppressing it takes an explicit declaration from the operator, who alone knows which of their directories are links by design.

Every rule that fired is named in the output. The reports are read in order to act on them — to move a secret out of band, to repair a link, to regenerate a cache — so a rule that quietly changed what a report contains would send the reader after the wrong thing. Suppressing a link report never suppresses the record that it was suppressed.

Structs§

Entry
One path that will be written into the archive.
Scan
Result of classifying a project root.

Enums§

EntryKind
What a scanned path is, for the purpose of writing the archive.

Functions§

scan
Classify every path under root using the default rules.
scan_with
Classify every path under root.