summaryrefslogtreecommitdiff
path: root/.gitattributes
blob: c972b3bc0ba05d0e93be7777a2a38dd827e3101d (plain)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
#**************************************************************************
#*                                                                        *
#*                                 OCaml                                  *
#*                                                                        *
#*                 Damien Doligez, projet Gallium, INRIA                  *
#*                                                                        *
#*   Copyright 2015 Institut National de Recherche en Informatique et     *
#*     en Automatique.                                                    *
#*                                                                        *
#*   All rights reserved.  This file is distributed under the terms of    *
#*   the GNU Lesser General Public License version 2.1, with the          *
#*   special exception on linking described in the file LICENSE.          *
#*                                                                        *
#**************************************************************************

# Default behaviour, for if core.autocrlf isn't set
* text=auto

# It is not possible to wrap lines lines in .gitattributes files
.gitattributes typo.long-line=may

# Binary files
/boot/ocamlc binary
/boot/ocamllex binary
/boot/ocamldep binary
*.gif binary
*.png binary
*.tfm binary

/boot/menhir/parser.ml* -diff

# configure is a shell-script; the linguist-generated attribute suppresses
# changes being displayed by default in pull requests.
/configure text eol=lf -diff linguist-generated

# 'union' merge driver just unions textual content in case of conflict
#   http://krlmlr.github.io/using-gitattributes-to-avoid-merge-conflicts/
/.mailmap                merge=union

# We tried using 'union' for Changes and it did not work:
# instead of creating Changes conflict it would silently duplicate
# the lines involved in the conflict, which is arguably worse
#/Changes                 merge=union

# No header for text and META files (would be too obtrusive).
*.md                     typo.missing-header
README*                  typo.missing-header
VERSION                  typo.missing-header
*.adoc                   typo.missing-header
api_docgen/*.mld                typo.missing-header
api_docgen/alldoc.tex           typo.missing-header
tools/mantis2gh_stripped.csv typo.missing-header
META.in                  typo.missing-header

# Hyperlinks and other markup features cause long lines
*.adoc                   typo.long-line=may typo.very-long-line=may
*.md                     typo.long-line=may typo.very-long-line=may

# Github templates and scripts lack headers, have long lines
/.github/**              typo.missing-header typo.long-line=may typo.very-long-line=may

/.mailmap                typo.long-line typo.missing-header typo.non-ascii
/CONTRIBUTING.md         typo.non-ascii=may
/README.adoc             typo.non-ascii=may
/README.win32.adoc       typo.non-ascii=may
/.merlin                 typo.missing-header
/Changes                 typo.utf8 typo.missing-header
/release-info/News       typo.utf8 typo.missing-header
/INSTALL                 typo.missing-header
/LICENSE                 typo.very-long-line typo.missing-header
# tools/ci/appveyor/appveyor_build.cmd only has missing-header because
# dra27 too lazy to update check-typo to interpret Cmd-style comments!
/tools/ci/appveyor/appveyor_build.cmd       typo.very-long-line typo.missing-header typo.non-ascii
/tools/ci/inria/bootstrap/remove-sinh-primitive.patch typo.prune
/release-info/howto.md                    typo.missing-header typo.long-line
/release-info/templates/*.md              typo.missing-header typo.very-long-line=may
# ignore auto-generated .depend files
.depend                  typo.prune
/.depend.menhir          typo.prune

# These can be fixed at some point
/tools/*.py              typo.long-line

# Makefiles may contain tabs
Makefile*                typo.makefile-whitespace=may

asmcomp/*/emit.mlp       typo.tab=may typo.long-line=may

# The build-aux directory contains bundled files so do not check it
build-aux                typo.prune

/manual                  typo.prune
/manual/**               typo.prune

# configure is generated so do not check it
configure                typo.prune

ocaml-variants.opam      typo.prune

emacs/*.el               typo.long-line=may
emacs/caml.el            typo.long-line=may typo.missing-header
emacs/COPYING            typo.prune
emacs/ocamltags.in       typo.non-printing

ocamldoc/**              typo.long-line=may
ocamldoc/Changes.txt     typo.missing-header
ocamldoc/ocamldoc.sty    typo.missing-header
ocamldoc/odoc_index.html typo.missing-header

otherlibs/unix/readlink_win32.c    typo.long-line
otherlibs/unix/stat_win32.c        typo.long-line
otherlibs/unix/symlink_win32.c     typo.long-line

runtime/sak.c            typo.non-ascii

stdlib/hashbang     typo.white-at-eol typo.missing-lf

testsuite/tests/**                                      typo.missing-header typo.long-line=may
testsuite/tests/lib-bigarray-2/bigarrf.f                typo.tab
testsuite/tests/lib-unix/win-stat/fakeclock.c           typo.missing-header=false
testsuite/tests/misc-unsafe/almabench.ml                typo.long-line
testsuite/tests/tool-toplevel/strings.ml                typo.utf8
testsuite/tests/win-unicode/*.ml                        typo.utf8
testsuite/tests/asmgen/immediates.cmm                   typo.very-long-line
testsuite/tests/generated-parse-errors/errors.*         typo.very-long-line
testsuite/tools/*.S                                     typo.missing-header
testsuite/tools/*.asm                                   typo.missing-header
testsuite/typing                                        typo.missing-header
testsuite/tests/messages/highlight_tabs.ml              typo.tab

# prune testsuite reference files
testsuite/tests/**/*.reference               typo.prune

# Expect tests with overly long lines of expected output
testsuite/tests/parsing/docstrings.ml        typo.very-long-line

# Generated test with overly long ocamltest description
testsuite/tests/lib-dynlink-domains/main.ml  typo.very-long-line

# The normalisation tests have very specific line endings which mustn't be
# corrupted by git.
testsuite/tests/tool-ocamltest/norm*.reference binary

tools/magic                       typo.missing-header

# TODO we should fix the long-line errors in yacc/*.c
/yacc/*.[ch]         typo.very-long-line=may

menhir-bench.bash typo.missing-header typo.utf8

# bootstrap files produced by Menhir
/boot/menhir/** typo.long-line=may typo.very-long-line=may
/boot/menhir/** typo.missing-header=may
/boot/menhir/** typo.white-at-eol=may
/boot/menhir/** typo.utf8=may

# Line-ending specifications, for Windows interoperability
*.sh text eol=lf
*.sh.in text eol=lf
*.awk text eol=lf
*.m4 text eol=lf

# ocamltest hooks which are used in the testsuite
*.check-program-output text eol=lf
*.run text eol=lf

/tools/ci/appveyor/appveyor_build.cmd text eol=crlf

aclocal.m4 typo.tab
configure.ac text eol=lf
build-aux/compile text eol=lf
build-aux/config.guess text eol=lf
build-aux/config.sub text eol=lf
build-aux/install text eol=lf
build-aux/missing text eol=lf
ocamldoc/remove_DEBUG text eol=lf
ocamltest/getocamloptdefaultflags text eol=lf
ocamltest/ocamltest.org typo.long-line=may typo.missing-header
stdlib/Compflags text eol=lf
stdlib/sharpbang text eol=lf
tools/autogen text eol=lf
tools/ci/inria/remove-sinh-primitive.patch text eol=lf
tools/check-typo text eol=lf
tools/check-symbol-names text eol=lf
tools/ci-build text eol=lf
tools/msvs-promote-path text eol=lf
tools/gdb-macros text eol=lf
tools/magic text eol=lf
tools/make-opcodes text eol=lf
tools/make-package-macosx text eol=lf
tools/ocaml-objcopy-macosx text eol=lf
tools/ocamlsize text eol=lf
tools/pre-commit-githook text eol=lf
tools/markdown-add-pr-links.sh text eol=lf
runtime/caml/sizeclasses.h typo.missing-header typo.white-at-eol

# Tests which include references spanning multiple lines fail with \r\n
# endings, so use \n endings only, even on Windows.
testsuite/tests/backtrace/names.ml text eol=lf
testsuite/tests/basic-modules/anonymous.ml text eol=lf
testsuite/tests/formatting/test_locations.ml text eol=lf
testsuite/tests/functors/functors.ml text eol=lf
testsuite/tests/lib-dynlink-initializers/test10_main.ml text eol=lf
testsuite/tests/parsing/attributes.ml text eol=lf
testsuite/tests/parsing/extensions.ml text eol=lf
testsuite/tests/parsing/hash_ambiguity.ml text eol=lf
testsuite/tests/parsing/int_and_float_with_modifier.ml text eol=lf
testsuite/tests/parsing/pr6865.ml text eol=lf
testsuite/tests/parsing/quotedextensions.ml text eol=lf
testsuite/tests/parsing/shortcut_ext_attr.ml text eol=lf
testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_impl.ml text eol=lf
testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_intf.mli text eol=lf
testsuite/tests/tool-ocamlc-stop-after/stop_after_typing_impl.ml text eol=lf
testsuite/tests/translprim/module_coercion.ml text eol=lf

# This is forced to \n to allow the Cygwin testsuite to pass on a
# Windows-checkout
testsuite/tests/parsetree/locations_test.ml text eol=lf