Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Batch convert text files from LF line endings to CRLF

Tags:

git

dos2unix

I have a vb.net (visual studio 2010) project that is version controlled with git (1.7.10.msysgit.1). I made a mistake of leaving core.autocrlf to true in git. Now I have set core.autocrlf to false, but the source code is already converted to LF line endings inside the repository. I want to change the line endings back to CRLF.

My plan to correct the situation is:

  1. git clone
  2. delete all source code files in the clone
  3. git checkout -f
  4. convert all LF to CRLF
  5. git commit
  6. git pull from the original repo

I am having problem with step 4. There are a lot of files in the project and hopefully there is a tool to batch convert all text files into CRLF line endings.

I have tried dos2unix that is available in the git bash, but looks like it will not process subfolders and it told me that the text files looks binary.

So, what is the best way to batch convert my source code back to CRLF line endings?

like image 600
Endy Tjahjono Avatar asked May 09 '12 11:05

Endy Tjahjono


2 Answers

I took Endy's steps but reduced it to just using one single repository:

1. git config core.autocrlf true
2. delete all files in your working tree (except the .git folder for sure)
3. git checkout -f
4. git config core.autocrlf false
5. git commit -am "corrected all line endings from LF to CRLF"
like image 157
Christoph Avatar answered Sep 28 '22 18:09

Christoph


I missed the obvious way:

  1. git clone to folder A. git config core.autocrlf false
  2. git clone to folder B. git config core.autocrlf true
  3. delete all source files from folder B
  4. git checkout -f in folder B
  5. cut and paste all files and folders from folder B to folder A
  6. git commit in folder A
  7. git pull from the original repository
like image 42
Endy Tjahjono Avatar answered Sep 28 '22 16:09

Endy Tjahjono