回覆列表
  • 1 # 使用者38686178854

    你在命令列只輸入了svn的地址,這樣是連線不上的。

    你需要一個支援svn的軟體,比如eclipse。

    在命令列的話,用下面的命令,前提是你安裝了svn命令。

    看看這個吧

    SVN使用指引(本地伺服器為Linux) - 騰訊開放平臺

  • 2 # 使用者4141082436059

    工程師A修改了a.txt的第一行,提交了。

    工程師B也修改了a.txt的第一行,然後執行svn up,這時SVN提示了:(以下,你開始扮演工程師B的角色了)

    $ svn up

    在 “a.txt” 中發現衝突。

    選擇: (p) 推遲,(df) 顯示全部差異,(e) 編輯,

    (mc) 我的版本, (tc) 他人的版本,

    (s) 顯示全部選項:

    我一般選擇p(推遲),即引入衝突到本地,不過不會影響到SVN伺服器端,可以放心。

    OK,開始解決衝突了。

    這時,會生成幾個檔案:

    a.txt a.txt.mine a.txt.r6328 a.txt.r6336

    其中a.txt中包含了工程師A、B的所有修改,以>>>>>>分隔。

    a.txt.mine是工程師B的修改,也就是未update前的a.txt。

    a.txt.r6328 是工程師A提交前的版本,即未導致衝突的版本。

    a.txt.r6336是工程師A提交後的版本,即導致衝突的版本。

    一般,檢視a.txt就可以看到衝突的詳情了:

    [yicheng@chengyi svntest]$ cat a.txt

    i also modify ,agndagnagasdg;

    =======

    i modify this line;

    >>>>>>> .r6336

    以上,>>>>>> .r6336之間是工程師A修改的內容。這時,最好的辦法是,叫上工程師A,你們一起確定這些修改是否都需要,是否相互相容,然後留下需要的部分,刪 除>>>>>> .r6336。

    然後,測試,測試!確定沒問題之後,就可以告訴SVN,你解決衝突了:

    svn ci -m ’some comment’ a.txt

    這裡需要注意的是,a.txt.mine a.txt.r6328 a.txt.r6336這幾個檔案的存在代表著有衝突產生。如果不解決衝突,就手工刪除它們,SVN伺服器也會很傻的認為你解決了衝突,允許你繼續之後 的工作。但是,衝突依舊存在,你的a.txt中不但有別人的修改,還有那些討厭的符號。

    在衝突未解決前,試圖提交程式碼是肯定會失敗的:

    $ svn ci -m ”

    svn: 提交失敗(細節如下):

    svn: 提交終止: “/path/to/svntest/a.txt” 處於衝突狀態

    在使用svn update 的時候,會出現如下一些資訊:

    $ svn update

    U INSTALL

    G README

    C bar.c

    Updated to revision 46.

    那麼,U 開頭的資訊提示你,這個檔案在你本地沒有修改過,檔案已經根據版本庫的新版本更新了。G 開頭的資訊提示你,這個檔案在你本地已經修改過,但是和版本庫中對應的版本並沒有衝突的地方,svn已經合併更新了。而C 開頭的資訊提示你,這個檔案有點麻煩,你在本地的修改和版本庫中的版本修改的地方重疊了,也就是說,你修改了某一行,你的同事也修改了同一行。這個就需要你自己手工去解決了。當衝突發生時,要注意到有三件事情可以幫助你解決問題。

  • 中秋節和大豐收的關聯?
  • 你有過壞事變好事的體驗嗎?