一、Xcode4中蘋果有自帶的SVN軟件------>Organizer------>Repositoriesphp
二、SVN checkout到本地後,刪除本地file,對服務器有影響嗎?
不會影響服務器,當你執行「svn update」時會zai再次被自動下載;當刪除後再執行「svn commit」就會在服務器上也對應刪除。 html
三、鏈接服務器windows
點擊file-》repositories-》點擊坐下邊的「+」-》而後名字及svn服務器的地址,還有type選中subversion而後next等等了。xcode
四、Xcode4下,SVN中經常使用命令
Commit 提交
checkout 將服務器上下載到本地(我個正在使用的電腦)
update 更新文件
File------->SourceController------->update
圖片中第3個按鈕,是視圖對比按鈕. 服務器
五、SVN中用法詳解和注意事項
①提交本身的代碼
SVN更新的原則是要及時更新,及時提交。當完成了一個小功能,可以經過編譯而且而且本身測試以後,儘可能早的提交,這樣也保存了歷史版本,必要時候能夠回滾;在開始一天的工做以前,最後update一下項目。
②保持原子提交(不要不經意間修改並提交了別人的文件)
僅提交你修改的部分,最好不要一會兒將整個項目提交;
當完成一個功能或文件後,最好提交。我就遇到完成某個功能後,沒有提交,後來又作了更改,結果代碼出現bug,沒法恢復到正常時的代碼。
③不要提交自動生成的文件
VisualStudio等開發工具在生成過程當中會產生不少自動文件,如.suo等配置文件,Debug,Release,Obj等編譯文件,以及其餘的一些自動生成,同編譯代碼無關的文件,這些文件在提交的時候不該該簽入,若是不當心簽入了,須要從倉庫中刪除。
④不要提交不能經過編譯的代碼
代碼在提交以前,首先要確認本身可以在本地編譯。進行SVN提交更新時最好是代碼在提交前已經經過本身的測試。
SVN中經常使用命令詳解
一、將文件checkout到本地目錄
svn checkout path(path是服務器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
二、往版本庫中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
三、刪除文件
svn delete path -m 「delete test fle「
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m 「delete testfile」
四、查看日誌
svn log path
五、比較差別
svn diff path(將修改的文件與基礎版本比較)
六、將兩個版本之間的差別合併到當前文件
svn merge -r m:n path
SVN使用方法
更新(update),常常地update沒有壞處,特別是多人項目中。若是每次提交(commit)前不進行更新(update)的到最新的版本的話,svn會提示當前的拷貝過時,須要更新。
提交(commit),必定要寫上此次提交的內容的摘要,便於之後查閱。
將文件checkout到本地目錄
svn checkout path(path是服務器上的目錄)
svn update命令自動用服務器上的版本替換本地版本控制的文件 app
六、Xcode中使用SVN問題以及提交解決衝突問題
Xcode的SVN功能,和Eclipse中的subclipse或者windows下的tortoiseSVN比較起來功能還差不少。
我是索性不用的,直接用命令行。我看有的朋友是用subclipse,其實也挺好,不過,爲了使用SVN功能要單獨開一個耗費資源的Eclipse。
可是,不論使用什麼SVN工具,都會遇到Xcode固有的問題,即project.pbxproj文件的提交衝突問題。
project.pbxproj 文件裏面包含了構建過程所需的全部文件,若是你在項目目錄下增長了新文件,好比沒有經過Xcode,該文件就不在project.pbxproj文件中, 就不會生成到app中。同理,若是你從SVN中更新到其餘項目成員增長的文件,而沒有更新project.pbxproj文件(或者該成員根本就沒有提交 這個文件),則也會出現相同的現象。
若是項目成員提交了新的project.pbxproj文件,你這邊沒有在項目中增長新的文件,直接svn update就能夠了。 dom
這邊本身也遇到了一樣的問題,明明添加了新的文件,本地工程和文件夾中均可以顯示,而後右鍵 commit單個add後的文件,從svn上checkout下來的卻只有在工程文件夾中有這個新文件,在項目中沒法顯示這個新添加的文件,應該就是這個 問題。後來orgnizer選載commit,看到有commit列表中有這個xproj文件和新加的文件,選擇提交再次checkout查看就能夠看到 了。svn
七、Xcode中更新代碼後項目文件打不開
若選擇更新整個項目常常會出現衝突問題,尤爲是project.pbxproj文件。此文件包含了構建過程所需的全部文件,若是在項目目錄下增長了新文件,但沒有經過Xcode,
該文件就不在project.pbxproj文件中,就不會生成到app中。同理,若是從SVN中更新到其餘項目成員增長的文件,
而沒有更新project.pbxproj文件(或者該成員根本就沒有提交這個文件),則也會出現相同的現象。這一文件衝突將直接致使項目文件打不開。
解決更新代碼後打不開項目文件方法:
當項目文件如tobacco.xcodeproj打不開時能夠右鍵選擇'顯示包內容',會看到有三個文件,project.pbxproj/user.modelv3/user.pbxuser。
其中project.pbxproj有三個版本,和解決普通svn文件衝突同樣解決衝突便可。
工具
八、SVN 更新 提交 合併 區別
當本地文件沒有改動,服務器文件改動的時候,更新會從服務器取文件覆蓋當前文件
當本地文件有改動,服務器文件沒改動的話,不會更新此文件
當本地文件有改動,服務器文件有改動的話,若是改動的部分不衝突,就會合並文件到本地,若是有衝突的話,會提示文件衝突,須要本身手動修改之後上傳到服務器。
最後一個講解合併:
服務器和本地的同一個文件(所謂同一個文件應該就是SVN相對路徑相同,文件名相同的文件,這個由SVN留在本地的信息決定)已經修改,且修改的部分不重合,不重疊
當知足上面的條件的時候再更新,SVN就會自動合併
SVN的奧妙之處就在於別人提交了修改後的文件,你再提交你的話,他是不容許你提交滴。。。
>>>>
<<<
裏面標記的是衝突的區域,把衝突區域刪除掉爲何還不能提交
解決辦法1:
刪掉的話仍是沒有解決衝突,文件後面還會有幾個文件名相同,可是後綴不一樣的文件
若是你不知道用SVN解決衝突的話,最簡單的辦法是這樣的
把這個文件更名字,而後在文件所在目錄更新,這樣就會把服務器文件下下來,而後把本身修改的部分添加到更新的文件裏面,這樣就能夠提交了
解決辦法2:
在文件上面點擊右鍵,到SVN的菜單,應該有編輯衝突的按鈕,選擇就會出現一個窗口,一邊是服務器版本,一邊是本身修改的版本 。
開發工具
九、xcode自帶svn的使用
一、代碼中 某文件後面有 「M」 標記,表示該文件已被修改,須要 commit.
(右鍵該文件 -> source control -> commit selected file...)
二、代碼中 某文件後面有 「A」 標記,表示該文件是新添加的,已受SVN管理,須要 commit.
(右鍵該文件 -> source control -> commit selected file...)
三、代碼中 某文件後面有 「?」 標記,表示該文件是新添加的,而且脫離了SVN的管理,首先須要add,而後 commit.
(右鍵該文件 -> source control -> Add,這樣該文件的標記就變爲 「A」,而後在 commit).
分類: 03A Xcode 調試