2013-03-05 140 views
0

我我公司內部嘗試建立SVN方法論。事情是,我想爲我們的程序員創建一個簡單的方法來完成他們的任務。我們在任務分配方面工作,一項任務只修改我們代碼庫的一個子集,通常從我們資源庫的各個部分獲取對象(文件)。從不同的文件夾中創建與SVN文件分支

我想要做的是,找到一種方法在SVN中創建一個分支(想象它的名稱爲來自bug跟蹤器的任務代碼),並且該分支中只有與該任務相關的文件。

像這樣:有一個巨大的文件夾結構來分隔各個模塊和系統的部件,但我們會舉一個小例子:文件夾1,2和3裏面的一些文件。
我們希望把每個文件夾中的文件,並創建/分支機構/ task_1一個分支,包含每個文件夾中的文件。

我希望能夠只檢出該分支,與這三個文件,仍然有辦法的更改合併回主幹,在不改變行李箱的其餘部分。這可能沒有太多的開發人員的工作?

編輯:該代碼主要是SQL和PL/SQL代碼,所以沒有構建被打破。請關注我的要求,而不是傳統的軟件開發範例。

編輯2:相信客戶使用傳統的SVN戰略!贏得!

+0

如果我只拉庫文件的子集爲特定的任務,我將如何打造產品,並驗證我的任務輸出編譯和運行正常 – 2013-03-05 19:55:19

+0

如果你擔心了一遍又一遍拉低整體回購對於每項任務,請查看將緩解該問題的切換命令。 (http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.switch.html) – 2013-03-05 19:57:30

+0

@RobGoodwin這是SQL和PL/SQL代碼回購,也沒有除了建立數據庫彙編每個對象。這些任務按照這種方式進行組織,因爲我們將這些事情交付給客戶進行驗證。 – jcd 2013-03-06 13:13:30

回答

2

不,這不是一件容易的事情,而且是正確的:這是一個可怕的策略。

SVN旨在用作一系列文件樹的快照。因此,從樹上採摘櫻桃變成樹枝,然後嘗試將它們合併回去會很乏味,儘管我不認爲這是不可能的。另外,你必須看看測試每個任務中發生了什麼......無論如何,這將不得不針對整個應用程序進行測試。所以,你要問什麼是沒有意義的。

現在,如果你的東西是模塊化的設計,你可以將每個模塊存儲在一個單獨的樹或單獨的回購,然後保持完整的應用程序作爲一系列svn:externals,但這實際上會使它更復雜。我認爲你可能會以標準方式做事情變得更好。

如果你不認爲這是不可能的,你至少可以嘗試給我一些方向。

那麼你將不得不從CLI工具創建分支,因爲我不知道任何客戶端只支持複製一組特定的文件來創建分支(除非該組文件是內容的存儲庫中的特定目錄)。所以,你還是開發商將不得不做這樣的事情:

svn cp --parents SVNURL/trunk/file1.sql SVNURL/trunk/file2.sql SVNURL/branches/taskname

問題是這樣只會將文件從樹幹複製,沒有任何中間目錄結構。因此,如果你在主幹上只有一個平面文件格式,那麼當你將所有東西合併時,你可能會感到困惑,因爲合併的人不得不知道在哪裏合併所有東西。

解決這個問題的唯一辦法,我能想到的將逐個複製每個文件,如:

svn cp --parents SVNURL/trunk/file1.sql SVNURL/branches/taskname 
svn cp --parents SVNURL/trunk/file2.sql SVNURL/branches/taskname 
svn cp --parents SVNURL/trunk/migrations/file3.sql SVNURL/branches/taskname/migrations 

我猜它歸結爲是,當你合併你將不得不一次做一個櫻桃選擇合併一個文件。對我來說這似乎是一大堆開銷,因爲沒有太多好處。

你你處理什麼在這裏和工作流的解釋後,我仍然認爲這是一個壞主意。如果將TRUNK複製到BRANCH,然後只處理必要的文件,則只需要更容易。通過查看日誌可以很容易地看到這些文件。

如果你擔心你的開發者意外地修改了任務範圍之外的事情,我敢肯定你可以設置權限,只允許他們提交對受任務+寫權限影響的文件的訪問權限如有必要添加新文件。

+0

我明白了,但是這是非常非常容易在CVS來完成,而這也正是我們來自哪裏。如果你認爲這是不可能的,你至少可以嘗試向某個方向發送我。 – jcd 2013-03-06 13:19:25

+1

這是一個可怕的計劃。請相信我,任何花時間給你如何執行你的計劃的建議的人都不是你應該接受建議的人。擁抱SVN,不要試圖將它打入你的舊CVS流程。忘記每個文件都有版本的CVS概念 - 在svn版本庫中有一個版本。 – thekbb 2013-03-06 17:29:54

+1

我不能同意@thekbb更多..除了我的建議部分;我警告過你。我們都警告過你。當你走這條路,想拍攝自己的臉孔,還是團隊的其他成員要刺穿你前進的亞壁古道,我們將不承擔責任。 – prodigitalson 2013-03-06 17:59:29

相關問題