不,這不是一件容易的事情,而且是正確的:這是一個可怕的策略。
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,然後只處理必要的文件,則只需要更容易。通過查看日誌可以很容易地看到這些文件。
如果你擔心你的開發者意外地修改了任務範圍之外的事情,我敢肯定你可以設置權限,只允許他們提交對受任務+寫權限影響的文件的訪問權限如有必要添加新文件。
如果我只拉庫文件的子集爲特定的任務,我將如何打造產品,並驗證我的任務輸出編譯和運行正常 – 2013-03-05 19:55:19
如果你擔心了一遍又一遍拉低整體回購對於每項任務,請查看將緩解該問題的切換命令。 (http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.switch.html) – 2013-03-05 19:57:30
@RobGoodwin這是SQL和PL/SQL代碼回購,也沒有除了建立數據庫彙編每個對象。這些任務按照這種方式進行組織,因爲我們將這些事情交付給客戶進行驗證。 – jcd 2013-03-06 13:13:30