Version control 哪个版本控制?

Version control 哪个版本控制?,version-control,version,Version Control,Version,如果一个项目有多个人,比如说,a、B、C一起工作,他们都编辑同一个源文件 几个月后,他们意识到A所做的是错误的,他们希望以这样一种方式回滚文件,即仅使用部分/函数/行/。。。A“接触”被移除,B和C所做的工作仍在回滚版本中。换句话说,回滚版本只有B和C的工作,直到他们决定删除A的工作为止 有没有版本/源代码控制软件(免费/商用)可以做到这一点 谢谢。Git和一点脚本就可以了。可能也需要一点手工工作,但您可以使用交互式重基进行提交。我使用TFS和Git。但是,有很多免费的开源版本控制软件。您可以找

如果一个项目有多个人,比如说,a、B、C一起工作,他们都编辑同一个源文件

几个月后,他们意识到A所做的是错误的,他们希望以这样一种方式回滚文件,即仅使用部分/函数/行/。。。A“接触”被移除,B和C所做的工作仍在回滚版本中。换句话说,回滚版本只有B和C的工作,直到他们决定删除A的工作为止

有没有版本/源代码控制软件(免费/商用)可以做到这一点


谢谢。

Git和一点脚本就可以了。可能也需要一点手工工作,但您可以使用交互式重基进行提交。

我使用TFS和Git。但是,有很多免费的开源版本控制软件。您可以找到所有的源代码管理软件。

大多数VCS都应该能够做到这一点——这是一种反向合并。在Subversion中,您将识别A所做的修订,并再次将其合并,但情况正好相反。简单地说,这意味着将行添加转换为行删除,反之亦然

# Don't want revision 37 because A made it.
$ svn merge -r 37:36 path

在Git中,您可能会执行以下操作

git revert `git rev-list --author=A`
[注意:完全未经测试。]

我打赌可以(轻松地)使用“mtn local kill_certs selector certname[certval]”命令(请参阅)完成此操作,该命令:

此命令删除与给定选择器匹配的修订版本中具有给定名称的证书。如果给定一个值,它将自身限制为仅删除同样具有该值的证书。像kill_修订一样,这是一个非常危险的命令;它将永久且不可撤销地从数据库中删除历史信息


因此,通过使用A的证书,上述命令将消除他所做的“错误工作”。

一点脚本编写?git revert是否应该足够呢?是的,您至少还需要一个命令来查找特定用户的所有提交。这已经是脚本了。