首先,抱歉,因为我的英语和解释不好。这是我收到一些评论后的问题的编辑版本,我意识到是什么让你感到困惑。
我正在开展的项目大约有10人,每个人都会在项目中实施一些“工作”。
假设:
A
已实施工作号。 1,4,6和10. B
已实施工作号。 2,3,7和9。 A
在B
实施之前已实施(4)(7)。
在文件X中,由(7)改变的某些值/行被(7)覆盖。
后来当我们进行节能评估并发现(4)实际上根本没有节省能源时,我们决定采取(4)。
所以问题是,如果我们有任何版本控制可以采取(4)(由A
实现)out而不触及由(7)做出的任何被覆盖的值/行(由B
实现)。
换句话说,我想删除A对工作号(4)所做的所有更改。 A完成的工作1,6,10仍在模型文件中。
目前我们正在使用RCS ......但我不知道RCS能否做到这一点以及如何做到这一点? 我在考虑GIT和SVN。我认为SVN更合适,因为项目中的所有数据都放在1个位置(1个文件夹)。我们的服务器是Linux Red Hat。
如果您遇到此问题,请分享。
再次抱歉,谢谢你的时间。
答案 0 :(得分:2)
对于配置,最好是版本:
那样:
如果您无法生成同时修改的文件,那么branches are the right solution,这就是为什么SVN或任何DVCS(Git,Mercurial,...)
这会产生合并的开销,以便将一些修改从一个分支报告给另一个分支。
您想要的选择性合并类型是“负合并”(您可以撤消某些更改,而不是其他更改:也称为subtractive merge)
Git通过"rebase --interactive
"处理没有问题的地方,你重播提交(你甚至可以修改/更改其中一个提交的提交)。
如果您不想重写过去提交的历史记录,您还可以选择git revert。
我不知道RCS将如何处理,除非您通过手动将当前版本与A
完成的先前版本进行比较来进行新修订,以便删除正确的行。
答案 1 :(得分:0)
一般来说,使用版本控制时的方法是:
请注意:
答案 2 :(得分:0)
要删除带有SVN的版本(我假设它与git类似),您可以在工作副本上使用以下命令行:
svn merge -c -4 .
这会对版本4的更改产生负面影响。之后,您可以检查更改并将其提交回存储库。