Repository navigation
Expand file tree
/
Copy path.gitattributes
More file actions
49 lines (45 loc) · 2.55 KB
/
Copy path.gitattributes
File metadata and controls
49 lines (45 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Line endings for the certificate formats.
#
# `asserted.tsv`, `derivations.tsv`, `rules.tsv`, `horn.tsv` and the model and
# refutation files are tab separated with LF endings, and their parsers REFUSE a
# carriage return rather than strip one, because a CR inside a field would become
# part of an RDF term and the certificate would then be about a term nobody
# wrote. That refusal is deliberate and is what the error message says.
#
# Git's default on Windows checks text files out with CRLF, so without this the
# committed fixtures arrive carrying exactly the character the parser exists to
# reject, and the Windows CI leg fails on a file that is correct in the
# repository. Pin the working-tree ending rather than loosening the parser: the
# strictness is the feature.
*.tsv text eol=lf
*.nt text eol=lf
*.nq text eol=lf
# RDF serialisations, for the same reason: a stray CR changes a literal.
*.ttl text eol=lf
*.trig text eol=lf
# First-order problems and prover transcripts, for a third version of the same
# reason. `the_fixture_problem_is_what_this_exporter_emits` compares the
# recorded problem byte for byte against what `fol --format tptp` emits now,
# because a proof of the old problem says nothing about a new one. The emitter
# writes LF, so a CRLF checkout made that comparison fail on Windows alone, on
# a file that is correct in the repository. The prover transcripts beside it
# are recorded output and are pinned for the same reason.
*.p text eol=lf
*.tstp text eol=lf
# ONE EXCEPTION, and it is the exception that proves the rule above. The
# `probe_crlf_*` files in isabelle/fixtures-differential/ exist to feed the two
# certificate checkers a file that DOES carry carriage returns, and to pin that
# both of them reject it for the same reason. Normalising them to LF would leave
# a probe that tests nothing while still reporting green, which is the failure
# this repository is built to catch. `-text` stores and checks out the bytes
# verbatim on every platform.
#
# `the_untested_corners_of_the_term_format_agree` asserts the CR is present
# before it runs them, so if this line is ever removed the test fails rather
# than quietly passing over a normalised file.
isabelle/fixtures-differential/probe_crlf_*.tsv -text
# The hand-drawn README animations carry the sha256 of the scene that drew them,
# and tests/knowledge_graph_asset_test.rs compares it with the scene checked out.
# A CRLF checkout changes those bytes and the digest with them, so the test
# reported a correct WebP as stale on Windows. The scene is LF everywhere.
docs/assets/*.scene.json text eol=lf