Slide 1

Slide 1 text

Alex Tercete @alextercete The end of your line-endings nightmare CRLF LF CRLF

Slide 2

Slide 2 text

CRLF CRLF CRLF CRLF LF LF LF LF

Slide 3

Slide 3 text

CRLF CRLF CRLF CRLF LF LF LF LF LF LF CRLF CRLF

Slide 4

Slide 4 text

~/.gitconfig [core] autocrlf = true

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

CRLF CRLF CRLF CRLF Working directory Objects database LF LF LF LF Commit core.autocrlf = true

Slide 7

Slide 7 text

CRLF CRLF CRLF CRLF Working directory Objects database LF LF LF LF Checkout core.autocrlf = true

Slide 8

Slide 8 text

CRLF CRLF CRLF CRLF Working directory Objects database LF LF LF LF Commit core.autocrlf = input

Slide 9

Slide 9 text

Working directory Objects database LF LF LF LF Checkout LF LF LF LF core.autocrlf = input

Slide 10

Slide 10 text

Are we there yet?

Slide 11

Slide 11 text

No!

Slide 12

Slide 12 text

~/code/repo/.gitattributes * text=auto

Slide 13

Slide 13 text

Objects database CRLF CRLF CRLF CRLF LF LF LF LF CRLF CRLF LF LF LF LF LF LF LF LF LF LF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF CRLF

Slide 14

Slide 14 text

$ echo "* text=auto" >.gitattributes $ rm .git/index $ git reset $ git add -u $ git add .gitattributes $ git commit -m "Introduce end-of-line normalization"

Slide 15

Slide 15 text

Objects database LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF

Slide 16

Slide 16 text

Are we there yet?

Slide 17

Slide 17 text

NO! NO!

Slide 18

Slide 18 text

Objects database LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF LF CRLF CRLF CRLF CRLF CRLF CRLF LF LF

Slide 19

Slide 19 text

$ git checkout $ git rebase master -s recursive -X renormalize

Slide 20

Slide 20 text

$ git init $ echo "* text=auto" >.gitattributes $ git add .gitattributes $ git commit -m "Initial commit"

Slide 21

Slide 21 text

Are we there yet?

Slide 22

Slide 22 text

Yes!

Slide 23

Slide 23 text

Alex Tercete @alextercete Thanks! LF

Slide 24

Slide 24 text

References Mind the End of Your Line http://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line/ Dealing with line endings https://help.github.com/articles/dealing-with-line-endings/ gitattributes Documentation https://git-scm.com/docs/gitattributes