1、如何在MAC環境下使用svn,以及新手在團隊使用svn注意事項
1、Xcode4中蘋果有自帶的SVN軟體------>Organizer------>Repositories
2、SVN checkout到本地後,刪除本地file,對伺服器有影響嗎?
不會影響伺服器,當你執行「svn update」時會zai再次被自動下載;當刪除後再執行「svn commit」就會在伺服器上也對應刪除。
3、連接伺服器
點擊file-》repositories-》點擊坐下邊的「+」-》然後名字及svn伺服器的地址,還有type選中subversion然後next等等了。
4、Xcode4下,SVN中常用命令
Commit 提交
checkout 將伺服器上下載到本地(我個正在使用的電腦)
update 更新文件
File------->SourceController------->update
圖片中第3個按鈕,是視圖對比按鈕.
5、SVN中用法詳解和注意事項
①提交自己的代碼
SVN更新的原則是要及時更新,及時提交。當完成了一個小功能,能夠通過編譯並且並且自己測試之後,盡量早的提交,這樣也保存了歷史版本,必要時候可以回滾;在開始一天的工作之前,最後update一下項目。
②保持原子提交(不要不經意間修改並提交了別人的文件)
僅提交你修改的部分,最好不要一下子將整個項目提交;
當完成一個功能或文件後,最好提交。我就遇到完成某個功能後,沒有提交,後來又做了更改,結果代碼出現bug,無法恢復到正常時的代碼。
③不要提交自動生成的文件
VisualStudio等開發工具在生成過程中會產生很多自動文件,如.suo等配置文件,Debug,Release,Obj等編譯文件,以及其他的一些自動生成,同編譯代碼無關的文件,這些文件在提交的時候不應該簽入,如果不小心簽入了,需要從倉庫中刪除。
④不要提交不能通過編譯的代碼
代碼在提交之前,首先要確認自己能夠在本地編譯。進行SVN提交更新時最好是代碼在提交前已經通過自己的測試。
SVN中常用命令詳解
1、將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
2、往版本庫中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
3、刪除文件
svn delete path -m 「delete test fle「
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m 「delete testfile」
4、查看日誌
svn log path
5、比較差異
svn diff path(將修改的文件與基礎版本比較)
6、將兩個版本之間的差異合並到當前文件
svn merge -r m:n path
SVN使用方法
更新(update),經常地update沒有壞處,特別是多人項目中。如果每次提交(commit)前不進行更新(update)的到最新的版本的話,svn會提示當前的拷貝過期,需要更新。
提交(commit),一定要寫上這次提交的內容的摘要,便於以後查閱。
將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
svn update命令自動用伺服器上的版本替換本地版本控制的文件
6、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就可以了。
7、Xcode中更新代碼後項目文件打不開
若選擇更新整個項目經常會出現沖突問題,尤其是project.pbxproj文件。此文件包含了構建過程所需的所有文件,如果在項目目錄下增加了新文件,但沒有通過Xcode,
該文件就不在project.pbxproj文件中,就不會生成到app中。同理,如果從SVN中更新到其他項目成員增加的文件,
而沒有更新project.pbxproj文件(或者該成員根本就沒有提交這個文件),則也會出現相同的現象。這一文件沖突將直接導致項目文件打不開。
解決更新代碼後打不開項目文件方法:
當項目文件如tobacco.xcodeproj打不開時可以右鍵選擇'顯示包內容',會看到有三個文件,project.pbxproj/user.modelv3/user.pbxuser。
其中project.pbxproj有三個版本,和解決普通svn文件沖突一樣解決沖突即可。
8、SVN 更新 提交 合並 區別
當本地文件沒有改動,伺服器文件改動的時候,更新會從伺服器取文件覆蓋當前文件
當本地文件有改動,伺服器文件沒改動的話,不會更新此文件
當本地文件有改動,伺服器文件有改動的話,如果改動的部分不沖突,就會合並文件到本地,如果有沖突的話,會提示文件沖突,需要自己手動修改以後上傳到伺服器。
最後一個講解合並:
伺服器和本地的同一個文件(所謂同一個文件應該就是SVN相對路徑相同,文件名相同的文件,這個由SVN留在本地的信息決定)已經修改,且修改的部分不重合,不重疊
當滿足上面的條件的時候再更新,SVN就會自動合並
SVN的奧妙之處就在於別人提交了修改後的文件,你再提交你的話,他是不允許你提交滴。。。
>>>>
<<<
裡面標記的是沖突的區域,把沖突區域刪除掉為什麼還不能提交
解決辦法1:
刪掉的話還是沒有解決沖突,文件後面還會有幾個文件名相同,但是後綴不同的文件
如果你不知道用SVN解決沖突的話,最簡單的辦法是這樣的
把這個文件改名字,然後在文件所在目錄更新,這樣就會把伺服器文件下下來,然後把自己修改的部分添加到更新的文件裡面,這樣就可以提交了
解決辦法2:
在文件上面點擊右鍵,到SVN的菜單,應該有編輯沖突的按鈕,選擇就會出現一個窗口,一邊是伺服器版本,一邊是自己修改的版本 。
9、xcode自帶svn的使用
1、代碼中 某文件後面有 「M」 標記,表示該文件已被修改,需要 commit.
(右鍵該文件 -> source control -> commit selected file...)
2、代碼中 某文件後面有 「A」 標記,表示該文件是新添加的,已受SVN管理,需要 commit.
(右鍵該文件 -> source control -> commit selected file...)
3、代碼中 某文件後面有 「?」 標記,表示該文件是新添加的,並且脫離了SVN的管理,首先需要add,然後 commit.
(右鍵該文件 -> source control -> Add,這樣該文件的標記就變為 「A」,然後在 commit).
2、mac 怎麼安裝svn 客戶端
方法/步驟
打開終端,創建一個代碼倉庫,用svnadmin create創建.
進入svndir文件夾可以看到
conf文件夾是配置版文件夾,里權面有相關配置,先選擇svnserve.conf配置。
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
去掉這幾個前面的#和空格,
anon-access 表示匿名訪問許可權
創建個帳戶,要進passwd文件配置,在[users]後面加zyx=123456,表示創建了zyx帳戶,密碼是123456.
文件authz可以配置用戶組及許可權,可以把passwd里添加的用戶加到一個用戶組里或創建一個用戶組,這樣就可以對整個組設置許可權了,還不用對每個用戶進行單獨許可權設置。這里加了個zyxgroup組,包括用戶zyx,許可權是對根目錄有讀寫許可權,[/]表示根目錄。
6
接下來是啟動svn伺服器,如果,沒有提示就表示成功了。
7
關閉svn伺服器的話,可以用ps找到它的pid,然後kill它就可以了。
3、MAC環境下如何搭建SVN伺服器
在Windows環境中,我們一般使用來搭建svn環境。在Mac環境下,由於Mac自帶了svn的伺服器端和客戶端功能,所以我們可以在不裝任何第三方軟體的前提下使用svn功能,不過還需做一下簡單的配置。
我們首先來看下,如何在Mac環境下搭建svn伺服器端環境。
回到頂部
一、創建代碼倉庫,用來存儲客戶端所上傳的代碼
我先在/User/apple目錄下新建一個svn目錄,以後可以在svn目錄下創建多個倉庫目錄
打開終端,創建一個mycode倉庫,輸入指令:svnadmin create /Users/apple/svn/mycode
指令執行成功後,會發現硬碟上多了個/Users/apple/svn/mycode目錄,目錄結構如下:
回到頂部
二、配置svn的用戶許可權
主要是修改/svn/mycode/conf目錄下的三個文件
1.打開svnserve.conf,將下列配置項前面的#和空格都去掉
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
復制代碼
anon-access = read代表匿名訪問的時候是只讀的,若改為anon-access = none代表禁止匿名訪問,需要帳號密碼才能訪問
[users]
mj=123
jj=456
復制代碼
帳號是mj,密碼是123
我們可以將在passwd里添加的用戶分配到不同的用戶組里,以後的話,就可以對不同用戶組設置不同的許可權,沒有必要對每個用戶進行單獨設置許可權。
在[groups]下面添加組名和用戶名,多個用戶之間用逗號(,)隔開
<font color="rgb(0, 0, 0)"><font style="background-color:rgb(254, 254, 242)"><font face="verdana, Arial, Helvetica, sans-serif">[groups]
topgroup=mj,jj</font></font></font>
復制代碼
說明mj和jj都是屬於topgroup這個組的,接下來再進行許可權配置。使用[/]代表svn伺服器中的所有資源庫[/]
@topgroup=rw
復制代碼
上面的配置說明topgroup這個組中的所有用戶對所有資源庫都有讀寫(rw)許可權,組名前面要用@如果是用戶名,不用加@,比如mj這個用戶有讀寫許可權[/]
mj=rw
復制代碼
至於其他精細的許可權控制,可以參考authz文件中的其他內容 4.啟動svn伺服器前面配置了這么多,最關鍵還是看能否正常啟動伺服器,若啟動不來,前面做再多工作也是徒勞。在終端輸入下列指令:svnserve -d -r /Users/apple/svn或者輸入:svnserve -d -r /Users/apple/svn/mycode沒有任何提示就說明啟動成功了 5.關閉svn伺服器如果你想要關閉svn伺服器,最有效的辦法是打開實用工具裡面的「活動監視器」 綜合上述,我們就可以輕松搭建svn伺服器環境了回到頂部
svn import /Users/apple/Documents/eclipse_workspace/weibo svn://localhost/mycode/weibo --username=mj --password=123 -m "初始化導入"
復制代碼
我解釋下指令的意思:將/Users/apple/Documents/eclipse_workspace/weibo中的所有內容,上傳到伺服器mycode倉庫的weibo目錄下,後面雙引號中的"初始化導入"是注釋 2.從伺服器端下載代碼到客戶端本地在終端中輸入svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code我解釋下指令的意思:將伺服器中mycode倉庫的內容下載到/Users/apple/Documents/code目錄中 3.提交更改過的代碼到伺服器在步驟2中已經將伺服器端的代碼都下載到/Users/apple/Documents/code目錄中,現在修改下裡面的一些代碼,然後提交這些修改到伺服器1> 打開終端,先定位到/Users/apple/Documents/code目錄,輸入:cd /Users/apple/Documents/code2> 輸入提交指令:svn commit -m "修改了main.m文件"這個指令會將/Users/apple/Documents/code下的所有修改都同步到伺服器端,假如這次我只修改了main.文件可以看到終端的列印信息:Sending weibo/weibo/main.m
Transmitting file data .
Committed revision 2.
復制代碼
4.更新伺服器端的代碼到客戶端這個應該是最簡單的指令了,在終端中定位到客戶端代碼目錄後,比如上面的/Users/apple/Documents/code目錄,然後再輸入指令:svn update 5.至於svn的其他用法,可以在終端輸入:svn help4、如何在蘋果系統下搭建SVN伺服器
使用SubVersion伺服器,般使用烏龜,客戶端使用xcode自帶subversion.配服務端,直接使用checkout,使用.
Windows環境我般使用TortoiseSVN搭建svn環境Mac環境由於Mac自帶svn伺服器端客戶端功能所我裝任何第三軟體前提使用svn功能需做簡單配置
我首先看何Mac環境搭建svn伺服器端環境
創建代碼倉庫用存儲客戶端所傳代碼
我先/User/apple目錄新建svn目錄svn目錄創建倉庫目錄
打終端創建mycode倉庫輸入指令:svnadmin create /Users/apple/svn/mycode
指令執行功發現硬碟/Users/apple/svn/mycode目錄目錄結構:
配置svn用戶許可權
主要修改/svn/mycode/conf目錄三文件
1.打svnserve.conf列配置項前面#空格都掉
[java] view plaincopy
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
anon-access = read代表匿名訪問候讀若改anon-access = none代表禁止匿名訪問需要帳號密碼才能訪問
2.打passwd[users]面添加帳號密碼比:
[java] view plaincopy
[users]
mj = 123
jj = 456
帳號mj密碼123
3.打authz配置用戶組許可權
我passwd添加用戶配同用戶組同用戶組設置同許可權沒必要每用戶進行單獨設置許可權
[groups]面添加組名用戶名用戶間用逗號(,)隔
[java] view plaincopy
[groups]
topgroup=mj,jj
說明mjjj都屬於topgroup組接再進行許可權配置
使用[/]代表svn伺服器所資源庫
[java] view plaincopy
[/]
@topgroup = rw
面配置說明topgroup組所用戶所資源庫都讀寫(rw)許可權組名前面要用@
用戶名用加@比mj用戶讀寫許可權
[java] view plaincopy
[/]
mj = rw
至於其精細許可權控制參考authz文件其內容
4.啟svn伺服器
前面配置關鍵看能否啟伺服器若啟前面做再工作徒勞
終端輸入列指令:svnserve -d -r /Users/apple/svn
或者輸入:svnserve -d -r /Users/apple/svn/mycode
沒任何提示說明啟功
5.關閉svn伺服器
想要關閉svn伺服器效辦打實用工具面監視器
綜合述我輕松搭建svn伺服器環境
5、如何在蘋果電腦上安裝svn 伺服器
方法/步驟
打開終端,創建一個代碼倉庫,用svnadmin create創建.
進入svndir文件夾可以看到專
conf文件夾是配置文屬件夾,裡面有相關配置,先選擇svnserve.conf配置。
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
去掉這幾個前面的#和空格,
anon-access 表示匿名訪問許可權
創建個帳戶,要進passwd文件配置,在[users]後面加zyx=123456,表示創建了zyx帳戶,密碼是123456.
文件authz可以配置用戶組及許可權,可以把passwd里添加的用戶加到一個用戶組里或創建一個用戶組,這樣就可以對整個組設置許可權了,還不用對每個用戶進行單獨許可權設置。這里加了個zyxgroup組,包括用戶zyx,許可權是對根目錄有讀寫許可權,[/]表示根目錄。
6
接下來是啟動svn伺服器,如果,沒有提示就表示成功了。
7
關閉svn伺服器的話,可以用ps找到它的pid,然後kill它就可以了。
6、mac怎麼配置svn伺服器地址
第步啟終端命令:
svnadmin create /Users/Johnny/Repository
第二步配置代碼倉庫終端繼續命令:
cd /Users/Johnny/Repository/conf
首先修改svnserve.conf文件要#password-db = passwd句#掉使配置項回效即保存退
接著修答改passwd文件面存著代碼庫接受用戶名密碼採用形式[用戶名]=[密碼]增加用戶user密碼pass
user=pass保存退
第三步啟伺服器終端繼續命令:
svnserve -d -r /Users/Johnny/Repository
沒任何提示說明啟功
停止:killall -9 svnserve
7、mac上怎麼裝svn?
使用SubVersion伺服器,般使用烏龜,客戶端使用xcode自帶subversion.配服務端,直接使用checkout,使用.
Windows環境我般使用TortoiseSVN搭建環境Mac環境由於Mac自帶svn伺服器端客戶端功能所我裝任何第三軟體前提使用svn功能需做簡單配置
我首先看何Mac環境搭建svn伺服器端環境
創建代碼倉庫用存儲客戶端所傳代碼
我先/User/apple目錄新建svn目錄svn目錄創建倉庫目錄
打終端創建mycode倉庫輸入指令:svnadmin create /Users/apple/svn/mycode
指令執行功發現硬碟/Users/apple/svn/mycode目錄目錄結構:
配置svn用戶許可權
主要修改/svn/mycode/conf目錄三文件
1.打svnserve.conf列配置項前面#空格都掉
[java] view plaincopy
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
anon-access = read代表匿名訪問候讀若改anon-access = none代表禁止匿名訪問需要帳號密碼才能訪問
2.打passwd[users]面添加帳號密碼比:
[java] view plaincopy
[users]
mj = 123
jj = 456
帳號mj密碼123
3.打authz配置用戶組許可權
我passwd添加用戶配同用戶組同用戶組設置同許可權沒必要每用戶進行單獨設置許可權
[groups]面添加組名用戶名用戶間用逗號(,)隔
[java] view plaincopy
[groups]
topgroup=mj,jj
說明mjjj都屬於topgroup組接再進行許可權配置
使用[/]代表svn伺服器所資源庫
[java] view plaincopy
[/]
@topgroup = rw
面配置說明topgroup組所用戶所資源庫都讀寫(rw)許可權組名前面要用@
用戶名用加@比mj用戶讀寫許可權
[java] view plaincopy
[/]
mj = rw
至於其精細許可權控制參考authz文件其內容
4.啟svn伺服器
前面配置關鍵看能否啟伺服器若啟前面做再工作徒勞
終端輸入列指令:svnserve -d -r /Users/apple/svn
或者輸入:svnserve -d -r /Users/apple/svn/mycode
沒任何提示說明啟功
5.關閉svn伺服器
想要關閉svn伺服器效辦打實用工具面監視器
綜合述我輕松搭建svn伺服器環境
8、mac 怎麼連接配置好了的svn伺服器
svnserve -d -r /path/svn 特別注意,路徑一定是SVN的目錄,不是其中一個版本庫的目錄,不然,能正常啟動,就是訪問有問題
沒有任何輸出,則啟動成功!
9、Mac svn 無法連接到公司的svn伺服器,如何解決!?
SVN 伺服器 IP 地址來修改後,客戶端對服務源器的連接可以採用以下的方法重定位:
1. 如果客戶端工具是TortoiseSVN,直接在工作副本上右鍵,選擇TortoiseSVN->relocation,再輸入新的URL。
2. 如果客戶端工具是 eclipse 的插件 subclipse,切換到「SVN資源庫」的透視圖,再在資源庫路徑上右鍵 –> 重新定位…,輸入新的 URL。