Repository navigation
Expand file tree
/
Copy path.gitattributes
More file actions
59 lines (54 loc) · 2.84 KB
/
Copy path.gitattributes
File metadata and controls
59 lines (54 loc) · 2.84 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
# Ce que git n'a pas le droit de réécrire.
#
# Par défaut, git normalise les fins de ligne des fichiers qu'il croit être du
# texte. Sur un fichier binaire mal détecté, la conversion ne prévient pas :
# elle remplace des octets, et l'on découvre le dégât à l'exécution.
#
# Deux familles sont en jeu ici, et les deux casseraient en silence.
# La ressource d'icône liée à ledgeralps.exe, et l'icône elle-même. Une seule
# paire d'octets convertie, et Windows n'affiche plus rien — sans erreur de
# compilation pour le signaler.
*.syso binary
*.ico binary
# Les fichiers officiels de la marque. Ils sont la RÉFÉRENCE : le dépôt doit en
# rendre exactement les octets reçus, sinon « intact » cesse d'être vrai.
infrastructure/brand/LOGO.svg -text
infrastructure/brand/icon.svg -text
# Le script de l'installeur porte un BOM UTF-8, et il est porteur : sans lui,
# NSIS lit le fichier dans la page de codes ANSI et massacre les accents. La CI
# le vérifie (release.yml) ; autant que git ne s'en mêle pas non plus.
#
# Ce commentaire annonçait aussi « des CRLF, tous deux porteurs ». C'était faux
# sur les deux points : le fichier est en LF pur (454 lignes, zéro CR dans le
# blob), makensis accepte indifféremment les deux, et la CI ne teste que le BOM.
# L'attribut `-text` rendait l'écart invisible pour toujours — git ne signale
# jamais rien sur un fichier qu'il ne convertit pas.
infrastructure/windows/installer.nsi -text
# Les sources Go sont stockees ET extraites en LF.
#
# Le depot stocke deja du LF -- verifie octet par octet sur les 211 fichiers.
# Ce que cette ligne ajoute, c'est de ne plus dependre du reglage core.autocrlf
# de chaque poste : un contributeur Windows avec autocrlf=false committerait
# sinon du CRLF sans s'en apercevoir, et gofmt -- reactive dans .golangci.yml
# -- ferait alors echouer la CI sur un fichier parfaitement bien indente.
#
# Elle change aussi l'arbre de travail sous Windows, mais A LA PROCHAINE
# EXTRACTION seulement : une copie deja presente garde ses CRLF. Pour la
# rafraichir sans rien perdre, une fois le travail en cours committe :
#
# git rm --cached -r . && git reset --hard
#
# Apres quoi « gofmt -l . » redevient utilisable localement sous Windows --
# c'est precisement la verification que son absence avait fait desactiver.
*.go text eol=lf
# Les scripts shell sont stockes ET extraits en LF.
#
# Rien ne l'imposait : sur un poste Windows en autocrlf=false, un
# contributeur committerait du CRLF sans s'en apercevoir, et un `#!/bin/bash`
# est un interpreteur introuvable sur la machine qui execute le script -- une
# installation Linux qui echoue sur une ligne que personne ne relit.
#
# Les blobs actuels sont deja en LF pur (verifie octet par octet sur les 5
# fichiers) ; cette ligne empeche la derive, elle ne corrige rien.
*.sh text eol=lf