aboutsummaryrefslogtreecommitdiff
path: root/internal/dup/dup.go
Commit message (Collapse)AuthorAgeFilesLines
* a content class is worked out once, not once per copyLukasz Kasprzak4 days1-5/+49
| | | | | | | | | | | | | | | | | | Lookup walked the whole size group for every file in it, so N copies of one file cost N walks of an N-member group, each taking the index's lock at every step - which is why more workers made it slower rather than faster. Every member of a class elects the same original (the invariant identicalTo already documents and a test already pins), so the class is memoised on the first walk and every later member is a map lookup. Measured over identical files, invented data, same machine: 500 files 0.17s -> 0.12s 2000 files 1.89s -> 0.58s and the plans are byte-identical once the sandbox path is normalised. The test counts walks: one per content class, not one per file.
* the module path is git.labunix.xyz/krinoLukasz Kasprzak4 days1-1/+1
| | | | | | | | | | | So that go install can find it. cgit serves no go-import meta tag, so nginx answers a ?go-get=1 request for /NAME with one pointing at https://git.labunix.xyz/NAME.git; the alternative was carrying a .git suffix through every import line forever. One sed over the imports, both go.mod files, and the dependency gate's whitelist. Nothing else depends on the path. go install works from the next tag, the first release whose go.mod carries it.
* duplicate warnings share one formatLukasz Kasprzak6 days1-4/+4
|
* krino: release 0.0.1 — man pages, install, examples, cross and release, ↵v0.0.1Lukasz Kasprzak8 days1-10/+40
| | | | | | | | | README, changelog Also: undo removes the directories its run created; a hardlink is never a duplicate of its own other name; a flag written before "undo" is honoured; --version prints no leading v. Duplicate conditions with different scopes not sharing an original is documented as a known limitation.
* krino: planning — chains, placeholders, conflicts, JSONLukasz Kasprzak9 days1-0/+41
|
* krino: matching — scan, ignore, conditions, extraction, duplicates, ↵Lukasz Kasprzak9 days1-0/+398
explain, dry run