2013-05-20 36 views
0

我想用Subversion做一個分支。本書描述的方法不起作用。我在this post找到this link,但它僅僅反映了這本書。這種技術失敗了。也許我做錯了什麼?如何與Subversion分支

我從我的工作目錄中使用的svn copy命令創建一個分支:

svn copy https://server.com/svn/iRP85_V2/trunk https://server.com/svn/iERP85_V2/branches/backlog -m "comment" 

這似乎工作。然後按照指示,我用checkout命令來改變我的工作拷貝代碼:

svn checkout https://server.com/svn/iERP85_V2/branches/backlog 

看起來它拷貝所做的一切,但我不知道它是真正在做什麼。我做那麼做改變另一個結帳:

svn checkout https://server.com/svn/iERP85_V2/trunk 

但我不沒有變化得到原。我得到相同的代碼。如果我再次從分支結帳,我會再次獲得相同的代碼。

發出svn info命令我發現我總是在後備箱裏,不管我通過什麼結帳。這個命令顯然不符合本書的含義。它不會更改工作目錄的來源。它甚至不會從參數中指定的目標中替換工作目錄中的模塊。它有什麼作用?

然後我再望去,只見開關命令,所以我嘗試這樣做:

svn switch https://server.com/svn/iERP85_V2/branches/backlog 

我得到一個錯誤:

svn: E155025: ' https://server.com/svn/iERP85_v2/trunk ' is not the same repository as ' https://server.com/svn/iERP85_V2 '

如果我發了幾個信息的命令的存儲庫id是一樣。

G:\Code\Intuitive Projects\Projects>svn info

Path: .
Working Copy Root Path: G:\Code\Intuitive Projects\Projects
URL: https://server.com/svn/iERP85_v2/trunk
Repository Root: https://server.com/svn/iERP85_v2
Repository UUID: b4595441-a089-b54f-bc08-6f65ce278a35
Revision: 48
Node Kind: directory
Schedule: normal
Last Changed Author: JohnM
Last Changed Rev: 48
Last Changed Date: 2013-05-16 13:35:06 -0400 (Thu, 16 May 2013)

G:\Code\Intuitive Projects\Projects>svn info https://server.com/svn/iERP85_V2/branches/backlog

Path: backlog
URL: https://server.com/svn/iERP85_V2/branches/backlog
Repository Root: https://server.com/svn/iERP85_V2
Repository UUID: b4595441-a089-b54f-bc08-6f65ce278a35
Revision: 57
Node Kind: directory
Last Changed Author: JohnM
Last Changed Rev: 57
Last Changed Date: 2013-05-20 13:00:38 -0400 (Mon, 20 May 2013)

我甚至刪除了分支,並重新創建它,以防萬一我做了什麼,但我得到了同樣的結果。

我一直在樹幹上開發,並希望使用分支功能。特別是當發現錯誤時,我必須告訴人們必須等待或有選擇地選擇要投入生產的模塊。

+1

不要使用'checkout'從主幹切換到你的分支 - 使用'svn switch'。在檢入更改之前,使用'svn info'來確保您的工作樹在分支上是_really_。直到我們在您做出更改之前輸出'svn info',我們才知道您是否真的成功更改了分支。 –

+0

至於聲稱由於存儲庫ID不匹配而無法切換的系統 - 在切換過程中使用相對URL來探討此潛在可能性:'svn switch'^ iERP85_V2/branches/backlog''而不是完整的URL。 –

+0

您描述問題的方式似乎並不完全符合SVN分支機構的工作原理。 (特別是,一個分支的變化必須合併到'trunk'才能出現在那裏)。我建議閱讀更多。 – madth3

回答

0

你如何努力做到這一點的原則看起來是正確的。看起來你只是被一些細節絆倒了。無法訪問您的存儲庫和硬盤驅動器,或者對輸入的命令進行更詳細的描述,很難說您做錯了什麼。

首先想到的是:在創建新分支之後,您是否試圖檢出與舊結帳相同的目錄?這是行不通的。您必須檢出到不同的地方,或使用「svn switch」來更改當前工作副本以查看新分支。

您使用開關時遇到的問題表明您並未指向您認爲自己的存儲庫。是vm006.corp.rotair.com另一個存儲庫,還是你的本地機器,還是什麼?

+0

我在大多數聲明中刪除了服務器名稱,因爲我認爲在公共論壇上發佈服務器名稱並不明智。你指出的那個是我錯過的。我明確地在每個語句中命名服務器,並且他們不住在我的本地機器上。這裏還有其他的錯誤。我可能不會指向我認爲是我的存儲庫,那麼如果明確命名它不起作用,我該如何獲得它? –

+0

啊,紅鯡魚。附註:如果您安裝了Tortoise或SVN Commander或其他一些SVN客戶端,可能會有所幫助。在命令行界面上的參數很容易被絆住。也就是說,我認爲首先要做的是從舊分支到一個目錄,從新分支到另一個目錄。然後嘗試對其中一個進行更改,提交併更新另一個,並且應該清理乾淨。我懷疑你的問題可能是你在現有結帳的頂部進行了結帳,但這並不起作用。 – Jay

+0

我確實在其他許多結賬服務的頂部結帳。我確實安裝了tortise,但我需要知道如何使用這個工具,並且gui提供了很少的文檔。所以我正在閱讀這本書(再次)並嘗試使用這個東西。這是一個相當大的項目,並有其他依賴性,這將使得使用另一個目錄不可行。問題可能來自使用gui並命令行。看起來switch命令想要一個小寫的v(iERP85_v2),而svn服務器報告iERP85_V2和svn copy命令以任何方式工作。 –

0

首先我想說感謝大家的幫助。這個問題似乎是'v'。使用iERP85_V2工作副本。 Visual SVN也報告iERP85_V2。但是,switch命令僅適用於iERP85_v2。沒有兩個存儲庫,只有一個。svn服務器將其顯示爲V2,svn info將其顯示爲v2。這是一個非常不友好的工具:)。

再次感謝

+0

如果沒有PEBCAK前面的分歧,這種分歧不應該發生。 (簡短形式:我不喜歡Subversion,但是對於更復雜和更復雜的原因;使用它有多年的經驗,你在這裏聲稱的那種錯誤似乎......實際上令人難以置信)。 –

+0

什麼是PEBCAK? –

+0

椅子和鍵盤之間存在問題。 –