2010-10-30 126 views
1

如果項目有多個人,比如說A,B,C一起工作,他們都編輯同一個源文件。哪個版本控制?

幾個月後,他們意識到了什麼A已經做是錯誤的,他們要還原的文件以這樣一種方式,只有部分/功能/線/ ...的是,「感動」被去除, B和C的工作仍在回滾版本中。換句話說,回滾版本只有B和C的作品,直到他們決定刪除A的作品爲止。

是否有任何版本/源控制軟件在那裏(免費/商業)能做到嗎?

謝謝。

回答

1

Git和有點腳本將這樣做。也許有點手工工作,但你可以使用交互式rebase進行提交。

+2

有點腳本?不應該'git回覆'夠了嗎? – knittl 2010-10-30 10:07:43

+0

是的,你至少需要一個命令才能找到某個特定人的所有提交。這已經是腳本了。 – 2010-10-30 12:52:45

0

我使用TFS和Git。但是,有很多免費和開源的版本控制軟件。你可以找到所有的源代碼控制軟件here

0

在Git中,你可能會做一些像

git revert `git rev-list --author=A` 

[注:沒有經過充分測試]

0

我敢打賭,它可以(容易)與Monotone完成通過使用`mtn local kill_certs選擇器certname [certval]'命令(參見reference):

此命令刪除對指定選擇器匹配的修訂具有給定名稱的證書。如果給定值,它將自己限制爲只刪除也具有相同值的證書。像kill_revision一樣,這是一個非常危險的命令;它會永久且不可撤銷地刪除數據庫中的歷史信息。

所以,通過使用A的證書,上面的命令將消除他所做的「錯誤的工作」。