在合并iOS項(xiàng)目時(shí)占拍,最讓人頭疼的就是項(xiàng)目文件沖突了沽讹。偏偏Xcode項(xiàng)目文件沖突的幾率又特別高宾符,只要項(xiàng)目文件被多個(gè)小伙伴同時(shí)修改,幾乎100%就會(huì)遇到?jīng)_突梗掰。而項(xiàng)目文件的格式也是復(fù)雜難懂嵌言,因此一旦遇到?jīng)_突,解決起來讓廣大開發(fā)者們都是分外頭疼及穗。
在神奇Google的指引下摧茴,我找到了解決項(xiàng)目文件沖突的工具---xUnique
。
xUnique原理
導(dǎo)致Xcode項(xiàng)目文件沖突的根本原因是節(jié)點(diǎn)的排列沒有固定次序埂陆,以及在不同的電腦上生成的節(jié)點(diǎn)的UUID并不相同苛白。
xUnique
是一個(gè)Python腳本,它能夠?qū)㈨?xiàng)目文件中的PBXFileReference和PBXBuildFile區(qū)塊排序焚虱,并且將UUID為永久不變的MD5 digest值购裙。只要把xUnique
與pre-commit鉤子綁定,每次提交項(xiàng)目文件時(shí)對(duì)其進(jìn)行序列化鹃栽,就能有效減少項(xiàng)目文件的沖突躏率。
安裝xUnique
[step 1]將xUnique
的代碼clone到本地
git clone git@github.com:truebit/xUnique.git
[step 2]安裝xUnique
進(jìn)入xUnique
源碼所在文件夾,執(zhí)行
sudo python setup.py install
[step 3]將xUnique
與git鉤子綁定
進(jìn)入需要綁定xUnique
的項(xiàng)目所在路徑民鼓,在終端中執(zhí)行
{ echo '#!/bin/sh'; echo 'python -mxUnique path/MyProject.xcodeproj'; } > .git/hooks/pre-commit
其中path
為項(xiàng)目的路徑薇芝,MyProject.xcodeproj
需要用項(xiàng)目的實(shí)際工程文件名來替代
[step 4]將pre-commit文件設(shè)置可執(zhí)行權(quán)限
chmod 555 .git/hooks/pre-commit
完成以上四步后,xUnique
就算是安裝成功了丰嘉,它將會(huì)在每次commit時(shí)執(zhí)行恩掷,自動(dòng)對(duì)項(xiàng)目工程文件進(jìn)行處理。
更多xUnique
介紹供嚎,請(qǐng)移步xUnique的github主頁。
本文轉(zhuǎn)自:http://codingtime.me/post/posts/leng-zhi-shi/2015_01_16_xunique