-
Notifications
You must be signed in to change notification settings - Fork 526
Expand file tree
/
Copy path.gitattributes
More file actions
87 lines (81 loc) · 4.54 KB
/
Copy path.gitattributes
File metadata and controls
87 lines (81 loc) · 4.54 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
# Git LFS inclusion / exclusion is controlled by this file. Our approach is to:
# INCLUDE dirs in Git LFS broadly, and then EXCLUDE text file-types narrowly.
#
# Why include in LFS broadly? Once a large binary file is comitted without lfs,
# it is VERY hard to remove it from the git history as it requires a history
# rewrite. This cannot be done without major disruption to all devs. Thus,
# once merged to `staging`, that NNN MB file that missed LFS makes our git repo
# that much bigger forever.
#
# In contrast, if a text file (= a file that you want to be able to diff)
# is accidentally included in LFS, adding it back to git is easy,
# see: "HOW TO EXCLUDE A FILE/FILES THATS IN AN LFS DIR" below.
# INCLUDE these "large static asset" and localisation dirs in Git LFS:
apps/i18n/** filter=lfs diff=lfs merge=lfs -text
apps/static/** filter=lfs diff=lfs merge=lfs -text
dashboard/app/assets/** filter=lfs diff=lfs merge=lfs -text
dashboard/config/locales/** filter=lfs diff=lfs merge=lfs -text
dashboard/config/datablock_storage/** filter=lfs diff=lfs merge=lfs -text
dashboard/public/** filter=lfs diff=lfs merge=lfs -text
dashboard/test/fixtures/** filter=lfs diff=lfs merge=lfs -text
lib/test/fixtures/** filter=lfs diff=lfs merge=lfs -text
pegasus/cache/i18n/** filter=lfs diff=lfs merge=lfs -text
pegasus/sites.v3/** filter=lfs diff=lfs merge=lfs -text
pegasus/sites/** filter=lfs diff=lfs merge=lfs -text
shared/images/** filter=lfs diff=lfs merge=lfs -text
# HOW TO EXCLUDE A FILE/FILES FROM GIT LFS:
#
# 1. Add a new exclusion pattern in the immediately following section
# 2. Run `git add --renormalize .` from the root of the repo
# 3. All files matching the pattern should show up new and uncommitted
# 4. Commit your .gitattributes changes and the new files.
#
# 🙏 be thoughtful when adding new files/patterns: once the files
# are in our git history, they take up space forever.
# EXCLUDE these files from our Git LFS dirs:
apps/i18n/**/en_us.json !text !filter !merge !diff
apps/i18n/tts_keys/** !text !filter !merge !diff
apps/static/aichat/modelDescriptions.json !text !filter !merge !diff
dashboard/app/assets/javascripts/** !text !filter !merge !diff
dashboard/app/assets/stylesheets/** !text !filter !merge !diff
dashboard/config/locales/**/*en.yml !text !filter !merge !diff
dashboard/config/locales/**/*en.json !text !filter !merge !diff
dashboard/public/**/README.md !text !filter !merge !diff
dashboard/test/fixtures/**/*.tsv !text !filter !merge !diff
dashboard/test/fixtures/**/*.csv !text !filter !merge !diff
dashboard/test/fixtures/**/*.json !text !filter !merge !diff
dashboard/test/fixtures/**/*.course !text !filter !merge !diff
dashboard/test/fixtures/**/*.script_json !text !filter !merge !diff
dashboard/test/fixtures/**/*.level !text !filter !merge !diff
dashboard/test/fixtures/**/*.xml !text !filter !merge !diff
pegasus/cache/i18n/en-US.json !text !filter !merge !diff
pegasus/sites.v3/hourofcode.com/i18n/en.yml !text !filter !merge !diff
pegasus/sites*/**/*.collate !text !filter !merge !diff
pegasus/sites*/**/*.erb !text !filter !merge !diff
pegasus/sites*/**/*.fetch !text !filter !merge !diff
pegasus/sites*/**/*.haml !text !filter !merge !diff
pegasus/sites*/**/*.json !text !filter !merge !diff
pegasus/sites*/**/*.md !text !filter !merge !diff
pegasus/sites*/**/*.moved !text !filter !merge !diff
pegasus/sites*/**/*.partial !text !filter !merge !diff
pegasus/sites*/**/*.redirect !text !filter !merge !diff
pegasus/sites*/**/*.scss !text !filter !merge !diff
# INCLUDE these binary file types in Git LFS no matter where they occur.
# Extensions are matched case-insensitively (e.g. both .png and .PNG) via
# character classes, so files do not slip past LFS on case-sensitive
# filesystems (git attribute matching is case-sensitive on Linux).
*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text
*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text
*.[pP][dD][fF] filter=lfs diff=lfs merge=lfs -text
*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text
*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text
*.[wW][hH][lL] filter=lfs diff=lfs merge=lfs -text
*.[zZ][iI][pP] filter=lfs diff=lfs merge=lfs -text
# Small list of very common text file types to EXCLUDE from Git LFS:
*.css !text !filter !merge !diff
*.js !text !filter !merge !diff
*.html !text !filter !merge !diff
# INCLUDE these specific files in Git LFS, no matter what:
pegasus/sites.v3/code.org/public/schools.json filter=lfs diff=lfs merge=lfs -text
pegasus/sites.v3/hourofcode.com/public/onetrust/** filter=lfs diff=lfs merge=lfs -text
pegasus/sites.v3/code.org/public/onetrust/** filter=lfs diff=lfs merge=lfs -text