2011-01-29 317 views
1

首先,對不起,因爲我的英文和解釋不好。這是收到一些評論後我的問題的編輯版本,我知道是什麼讓你感到困惑。版本控制

我正在進行的項目大約有10人,每個人都會在項目中實施一些「工作」。

  • 我們每股20個模型文件(文本文件)
  • 當人們做「工作」,他們直接去到20的文本部分線路模型文件,並添加/刪除/修改上述文件。

假設:

  • A實施工作沒有。 1,4,6和10.
  • B實施的工作號碼。 2,3,7,和9
  • ...

A實現(4)實施B前(7)。 在文件X中,由(4)改變的一些值/行被(7)覆蓋。

後來當我們運行節能評估,發現(4)實際上根本不節能,所以我們決定拿(4)出來。所以問題是如果我們有任何版本控制,可以採取(4)(由A實現),而不觸及由(7)(由B實現)覆蓋的值/行。
換句話說,我想刪除A爲工作號(4)所做的所有更改。由A完成的工作1,6,10仍在模型文件中。

現在我們正在使用RCS ...但我不知道RCS是否可以做到這一點,以及如何?
我在考慮GIT和SVN。我認爲SVN更合適,因爲項目中的所有數據放在1個地方(1個文件夾)。我們的服務器是Linux Red Hat。

如果您遇到此問題,請分享。

對不起,謝謝你的時間。

+0

讓我確保我理解正確。你有一段代碼(4)創建一個文件,另一個(7)修改該文件,並希望恢復4?或者你有一段代碼(4)修改前面的模塊(0),然後7還修改了0,但因爲後來修改了4呢? – Jon 2011-01-29 08:20:26

+0

我們正在共享模型文件。因此,舉例來說,我有文件X的模型現在,(4)在十一個星期(4)完成後,改變一些值,(7)改變了相同的值(4)改變。 – user397232 2011-01-29 08:44:03

回答

2

對於配置,它是更好的版本:只有變量

  • 一個模板配置文件,它
  • 單獨每個模塊值
  • 能夠識別哪個模塊正在運行,來代替腳本在模板文件中的變量的實際值

這樣:

  • 實際配置文件(帶有模塊使用的值的文件)永遠不會進行版本控制(但總是生成)。
  • 它與任何模塊組織/依賴(因爲,像Jon提到在評論),它是不完全清楚,如果你在幾個有幾個模塊修改的共同文件,或同一組文件(模塊)的交易版本。

如果你沒有辦法產生併發修改,然後branches are the right solution這些文件,這就是爲什麼SVN或任何DVCS(混帳,水銀,...)
這將對合並的開銷報告你從一個分支到另一個分支的一些修改。


你想要的那種選擇性合併是一個「負合併」(一個在那裏你扭轉一些變化,而不是別人:也叫subtractive merge)沒有問題通過"rebase --interactive"

Git的處理是,在那裏你重放提交(你甚至可以修改/改變其中一個提交的提交)。
您也將有一個git revert的選擇,如果你不希望改寫歷史的過去的提交。

我不知道RCS將如何處理,除非你手動比較當前的版本與A,以消除右線完成以前的版本做一個新的修訂。

0
一般使用版本控制時的做法

是這樣的:

  • 你有代碼的穩定版本幹線
  • 你有一個問題 - >你從主幹創建一個分支
  • 在您解決問題時,您將更改從主幹更新爲您的分支,以儘可能接近穩定版本 - >這種方式您會立即注意到穩定性的變化與您的代碼無關;)
  • 一旦問題被修復/測試(!),你就會合並分支到主幹

注:

  • 如果有更多的開發商正在改變相同的代碼行,就會有衝突 - >發生這種情況,並且必須手動處理
  • 回覆提交的也可以
0

要刪除與SVN版本(我認爲這將是與GIT類似的東西),您使用以下命令行上你的工作副本:

svn merge -c -4 . 

這會消極地將版本4的更改應用於您的工作副本。之後,您可以檢查更改並將其提交回存儲庫。