色偷偷91综合久久噜噜-色偷偷成人-色偷偷尼玛图亚洲综合-色偷偷人人澡久久天天-国内精品视频一区-国内精品视频一区二区三区

Hello! 歡迎來到小浪云!


git crlf、lf自動轉換引起的問題


項目團隊最近在代碼中加入了一個新功能,利用flyway工具來管理數據庫版本變更。這個工具會記錄每次數據庫結構的變化,并生成sql文件保存在指定目錄中(前提是必須使用flyway進行數據庫變更,外部變更無法被它識別)。每次啟動時,flyway會檢查當前數據庫與項目代碼中的sql變更版本是否一致。如果一致,系統正常啟動;如果不一致,且數據庫版本落后,flyway會自動更新數據庫,以確保代碼在任何環境中運行時數據庫都是一致的。否則,系統會報錯。數據庫中有一張表記錄版本信息,如下圖所示:

git crlf、lf自動轉換引起的問題

同時,本地代碼中有一個文件夾保存每次操作的sql語句,如下圖:

git crlf、lf自動轉換引起的問題

通過比較checksum值來判斷當前SQL語句和生成數據庫的執行語句是否一致,checksum值是通過CRC32計算并處理得出的。

然后問題出現了:團隊中的其他成員搭建好flyway后,項目文件生成了兩個SQL文件,我通過git拉取這些文件后,啟動項目時報錯,checksum值不匹配。我對flyway不太了解,根據報錯信息,一步步查找,最終發現checksum值是通過CRC32計算的。花了一兩個小時才發現文件不一致的問題。奇怪的是,我們都是從git拉取的文件,為什么我的文件會不一致呢?我懷疑可能是文件換行符的問題,于是將那些SQL文件的換行符全部改成了CRLF(Windows中的換行符),結果項目居然能夠運行了。關于為什么git拉取的文件換行符會不一致的原因是:他們使用的是TortoiseGit(小烏龜)這種可視化工具,而我使用的是命令行工具。可視化工具自動配置了文件換行符的自動轉換(這是git的一個智能功能,上傳時將文件換行符替換為LF,下載時再替換為CRLF,這樣保證中心倉庫使用unix風格的換行符,而本地能夠根據運行環境使用相應的換行符風格),但命令行工具并沒有配置這種轉換。

解決這個問題的方法也很簡單,就是開啟git的自動轉換功能。

代碼語言:JavaScript 代碼運行次數:0

運行 復制 “`javascript git config –global core.autocrlf true //開啟換行符自動轉換 git config –global core.safecrlf true //禁止混用換行符 “`

相關閱讀

主站蜘蛛池模板: 激情综合网激情 | 久在线视频| 色噜噜狠狠狠狠色综合久一 | 成人免费毛片一区二区三区 | 久热精品男人的天堂在线视频 | 中文字幕久久精品 | 天天综合网天天做天天受 | 99久久国产免费 - 99久久国产免费 | 亚洲高清在线不卡中文字幕网 | 天天色天天插 | 精品免费国产一区二区三区 | 99re在线免费视频 | 四虎在线精品免费高清在线 | 婷婷六月激情 | 噜噜啪| 一级三级黄色片 | 欧美激情性 | 国产福利一区二区三区四区 | 999国产高清在线精品 | 337p色噜噜人体大胆欧美 | 亚洲精品你懂的 | 日本免费一区二区三区三州 | 国产成人网| 色播在线永久免费视频 | 中国精品一级毛片免费播放 | 在线免费看黄 | 久久婷五月 | 夜夜爱夜夜做 | 一级生性活免费视频 | 9久9久女女热精品视频免费观看 | 激情综合五月婷婷 | 亚洲免费视频网站 | 五月婷婷丁香久久 | 这里有精品 | 一区二区三区欧美视频 | 欧美成人久久久免费播放 | 欧美日韩国产高清一区二区三区 | 日韩在线观看一区 | 狠狠色噜噜狠狠米奇777 | 亚洲欧美综合网站 | 九九久久九九久久 |