-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitignore
More file actions
358 lines (277 loc) · 8.37 KB
/
.gitignore
File metadata and controls
358 lines (277 loc) · 8.37 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
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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
======================================================================
GITIGNORE FILE - VERSION 5.0 (Will be updated each version parallel)
PROJECT: BASIC++ (IB) INTERPRETER
======================================================================
Preamble:
This document constitutes a formal .gitignore specification. Its
purpose is to enumerate file and directory patterns that the Git
version control system is instructed to disregard. The primary
objective is to ensure the integrity of the source code repository
by proscribing the inclusion of generated, user-specific, or
ephemeral binary files.
Adherence to this specification is essential for maintaining a
pristine, replicable source tree. It prevents the contamination
of the commit history with transient artifacts, reduces the
aggregate size of the repository, and mitigates the risk of
non-deterministic merge conflicts arising from generated files.
======================================================================
Section 1: Project-Specific Runtime Artifacts
======================================================================
This section enumerates file patterns that are direct, dynamic
outputs generated by the interpreter's own custom directives
during its operation. Such files are considered ephemeral runtime
artifacts, not constituent components of the source code.
Their inclusion in version control is proscribed, as they represent
transient data, would introduce non-determinism, and would
pollute the commit history.
Generated by the LPRINT directive; this file simulates a
physical line printer and is a runtime data sink.
lprint.out
Compiled project binaries. These are the final, platform-specific
executables produced by the compiler from the source code. As
generated artifacts, they must be excluded.
ib
ib.exe
======================================================================
Section 2: C/C++ Compilation and Build Artifacts (Expanded)
======================================================================
This section is a comprehensive amalgamation based on the standard
GitHub C/C++ template, augmented with additional common build
outputs. It addresses the intermediate and final products of the
compilation and linking lifecycle.
Prerequisites and dependency files.
Generated by compiler pre-processors (e.g., gcc -M) to
track header file dependencies for incremental compilation.
*.d
Object files.
These files represent the intermediate, unlinked, compiled
output of individual translation units (source files).
*.o
*.ko
*.obj
*.elf
Linker output files.
Generated during the final linking phase, these files contain
symbolic information, memory maps, or exportation data.
*.ilk
*.map
*.exp
Precompiled Headers (PCH).
Binary caches of header files utilized by compilers (e.g., GCC,
Clang, MSVC) to accelerate subsequent compilation cycles.
*.gch
*.pch
Static Libraries.
Archived collections of object files (e.g., .a, .lib)
used by the linker to build the final executable.
Also includes intermediate files from libtool (.la, .lo).
*.lib
*.a
*.la
*.lo
Dynamic Libraries (Shared Objects).
These are runtime, not compile-time, dependencies. They are
loaded by the operating system (e.g., .dll, .so, .dylib)
and are not part of the source tree.
*.dll
*.so
.so.
*.dylib
Executable Binaries.
General patterns for final program binaries across various
operating systems and architectures. The 'ib' and 'ib.exe'
patterns are explicitly defined in Section 1. 'a.out' is the
default executable name on POSIX systems.
*.exe
*.out
*.app
.i86
*.x86_64
*.hex
Debugging Files.
Files containing symbolic data for debuggers (e.g., GDB, LLDB,
MSVC Debugger) or other profiling tools.
*.dSYM/
*.su
*.idb
*.pdb
*.gdb
*.sym
Kernel Module Compilation Results.
Artifacts specific to the development of Linux kernel modules.
.mod
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
Debug Information Files.
DWARF object files (Debug With Arbitrary Record Format),
a common format for debugging data.
*.dwo
======================================================================
Section 3: Build System Artifacts
======================================================================
This section specifies files and directories generated by
automation systems such as Make, CMake, and Autotools. These
files are invariably machine-generated and specific to a single
build environment.
General build output directories.
Common names for directories containing all compiled artifacts.
build/
bin/
dist/
release/
debug/
CMake (Cross-platform Make) build artifacts.
These files constitute the cache, makefiles, and project
configurations generated by CMake.
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
Makefile
CTestTestfile.cmake
GNU Autotools generated files.
The Autotools suite (Autoconf, Automake) generates these
configuration scripts and build files from templates.
autom4te.cache/
configure
config.status
config.log
config.h
aclocal.m4
stamp-h1
Makefile artifacts.
Files generated for or by the Make utility.
Makefile.in
======================================================================
Section 4: Testing, Profiling, and Coverage Reports
======================================================================
This section enumerates data files and reports generated by
software quality assurance tools, including unit testing
frameworks, code coverage utilities (e.g., gcov, lcov), and
memory analysis tools (e.g., Valgrind).
Gcov / LCOV code coverage data.
These files contain execution counts and report data.
*.gcno
*.gcda
*.gcov
*.lcov
lcov.info
coverage.xml
coverage/
Valgrind memory analysis reports.
Output files from various Valgrind tools (Memcheck,
Callgrind, Helgrind, Massif).
valgrind-out.txt
callgrind.out.*
helgrind-out.*
massif.out.*
======================================================================
Section 5: Operating System-Specific Metadata
======================================================================
This section proscribes system-generated metadata files. These
files are created by the operating system itself to manage
folder views, indexing, or trash receptacles, and have no
relevance to the project's source code.
macOS
Files for the Finder, Spotlight, and resource forks.
.DS_Store
.AppleDouble
.LSOverride
.Spotlight-V100
.Trashes
__MACOSX/
Windows
Files for Explorer thumbnail caches, desktop configuration,
the recycle bin, and shortcut links.
Thumbs.db
ehthumbs.db
desktop.ini
$RECYCLE.BIN/
*.lnk
Linux
Common patterns for backup files, directory metadata,
and trash folders.
~
.directory
.Trash-
======================================================================
Section 6: Editor and IDE Configuration Files
======================================================================
This section specifies user-specific configuration, cache, and
state files generated by Integrated Development Environments
(IDEs) and text editors. These files are highly specific to an
individual developer's local environment and must be excluded.
General backup/swap files
Temporary or backup files created by editors like Vim or Emacs.
*~
*.swp
*.swo
*.tmp
*.bak
*.orig
*.rej
VSCode (Visual Studio Code)
Local workspace settings and state.
.vscode/
*.code-workspace
Visual Studio (Windows)
Solution, project, and user-specific build files.
*.sln
*.vcxproj
*.vcxproj.filters
*.vcxproj.user
*.vs/
*.suo
Debug/
Release/
x64/
Win32/
ipch/
JetBrains CLion / IDEA
Project metadata and user-specific settings.
.idea/
*.iml
Eclipse
Project and settings files for the Eclipse IDE.
.cproject
.project
.settings/
*.properties
NetBeans
Project files for the NetBeans IDE.
nbproject/
build.xml
manifest.mf
Other (Ctags, Sublime Text, etc.)
Indexing files and project-specific settings.
*.tags
.TAGS
tags
cscope.
*.sublime-project
*.sublime-workspace
======================================================================
Section 7: Miscellaneous Generated Files
======================================================================
This final section provides rules for other common file types
that are typically generated artifacts rather than source code.
Log files
Any file with a .log extension, assumed to be runtime output.
*.log
Compressed archives
Often used for distributing builds or packaging dependencies;
should not be stored in source form.
*.zip
*.tar.gz
*.tgz
*.rar
*.7z
Dependency directories
Folders managed by package managers (e.g., Conan, vcpkg,
or submodules) which should be installed, not versioned.
vendor/
deps/
node_modules/