探索TFS Git 庫文件換行(CRLF)的處理方式

(2018.12.29 更新,增長Git處理方式)html

在計算機的技術中,全部文本信息都會涉及換行的問題。例如,你在鍵盤上敲擊一次Enter(回車)鍵,系統將在文本重增長一行,實際上系統已經在文件中插入了一個不可見的換行標記。服務器

換行,在許多地方也稱爲行尾(line ending),或者EOL(end of line)。換行是一個特殊的字符,在文本中用於表示一行文字信息的結束,或者新一行文字信息的開始。因爲在不一樣的平臺或操做系統中,系統處理換行的方式不同,若是開發人員忽略換行問題,會致使源代碼編譯或者運行過程當中出現異常的問題。工具

下面咱們結合TFS系統的源代碼管理功能,具體分析在代碼管理過程當中,如何處理文件換行的問題。post

換行類型CRLF, CR, LF

最先在電傳打印機上,工程師使用CR(Unicode字符爲000D)和LF(Unicode字符爲000A)標記打印換行。CR是單詞Cartridge Return的縮寫,咱們常常稱爲回車;LF是單詞Line Feed的簡稱,咱們常常稱爲換行。這兩個字符分別用來指揮打印機的針頭移到下一行,同時將打印紙張先前推動一行。後來因爲計算機技術的飛速發展,計算機與打印機高度集成,打印換行的概論也被計算機普遍引用。可是,不一樣的操做系統,對於換行的處理方式不同。spa

  • 微軟 Windows:CRLF

微軟基本原樣照搬了早期打印機的機制,使用兩個字符CR+LF來標記文件的換行。Windows,MS-DOS,PC-DOS等採用了CRLF的換行方式。操作系統

  • Unix/Linux:LF

Unix操做系統以爲微軟比較浪費,在本身的系統中,一個字符LF就能夠達到目的,因而Linux上面就使用LF來標記換行。基於Linux的其餘操做系統,基本都採用了LF的換行方式。code

  • 蘋果 Mac

蘋果的計算機的科學家因爲更爲複雜的緣由,定義CR做爲換行標記。htm

TFVC處理方式

在TFVC代碼庫中,不管從使用哪一種客戶端簽入簽出,TFS服務器都會原樣保留文件的換行模式。blog

你能夠在文本編輯工具中驗證從TFS中下載的文件,以下圖,我使用EditPlush驗證一個sh腳本程序的換行格式:開發

image

Figure 1 - 在EditPlush中查詢文件的換行格式

Git處理方式

Azure DevOps Server (TFS)中代碼文件換行問題解決方案(Git)

相關文章
相關標籤/搜索