首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >版本控制

版本控制
EN

Stack Overflow用户
提问于 2011-01-29 08:09:28
回答 3查看 340关注 0票数 1

首先,对不起,因为我的英语不好和解释。这是我的问题的编辑版本,在收到一些评论后,我意识到是什么让你感到困惑。

我正在做的这个项目大约有10个人,每个人都会在这个项目中实现一些“工作”。

  • 我们共享20个模型文件(文本文件)
  • 当人们做“工作”时,他们必须直接进入模型文件,并在上面的20个文本文件中添加/删除/编辑一些行。

假设:

  • A实现了第1、4、6和10项工作。
  • B实现了第2、3、7和9.
  • ...

工作。

AB实现(7)之前实现(4)。在文件X中,由(4)更改的一些值/行被(7)覆盖。

后来,当我们进行节能评估,发现(4)实际上根本没有节能,所以我们决定采取(4)出局。

所以问题是,如果我们有任何版本控制,可以将(4) (由A实现)取出,而不触及由(7) (由B实现)生成的任何重写的值/行。

换句话说,我只想删除A对工作编号(4)所做的所有更改。A所做的工作1,6,10仍在模型文件中。

现在我们正在使用RCS..。但我不知道RCS是否能做到,怎么做到的?

我在考虑GIT和SVN。我认为SVN更合适,因为项目中的所有数据都放在一个位置(1个文件夹)。我们的服务器是。

如果你经历过这件事,请分享。

再次抱歉,谢谢你抽出时间。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-29 08:20:04

对于配置,最好是版本:

  • 是一个模板配置文件,其中只有变量,

  • ,每个模块分别值
  • ,一个脚本,能够识别哪个模块正在运行,并用实际的值

替换模板文件中的变量。

这条路:

实际配置文件(包含模块使用的值的配置文件)从来没有版本(但总是generated).

  • it处理任何模块的组织/依赖关系(因为,就像注释中Jon提到的那样),不清楚是否有一个由几个模块修改的公共文件,还是几个版本中相同的文件集(模块)。

如果您无法生成并发修改的文件,那么 are the right solution,这就是为什么SVN或任何DVCS (Git,Mercurial,.)

这将增加合并的开销,以报告从一个分支到另一个分支的一些修改。

你想要的那种选择性合并是一种“负合并”(在这种情况下,你可以逆转一些变化,而不是其他的:也称为subtractive merge)。

Git通过""来处理这个问题,在这里您可以重放提交(您甚至可以修改/更改其中的一个提交重放)。

如果不想重写过去提交的历史,也可以选择git revert

我不知道RCS将如何处理这个问题,除非您通过手动比较当前版本和A以前的版本来进行新的修订,以便删除正确的行。

票数 2
EN

Stack Overflow用户

发布于 2011-01-29 09:52:45

通常,使用版本控制的方法如下:

  • 您有一个具有稳定版本的代码
  • 的主干您有一个问题->您在修复该问题时从主干
  • 创建一个分支,您可以更新从主干到您的分支的更改以尽可能接近稳定版本->,这样您就会立即注意到稳定版本的更改不适合您的代码;)
  • 一旦修复/测试问题(!),您将分支合并到主干

< code >F29

注意:

如果更多的开发人员正在更改同一行代码,则会发生冲突-- manually

  • reverting提交也可能发生->冲突,因此必须进行处理。
票数 0
EN

Stack Overflow用户

发布于 2011-01-29 10:39:55

要删除SVN版本(我假设这与git类似),您可以在您的工作副本上使用以下命令行:

代码语言:javascript
复制
svn merge -c -4 .

这将消极地将第4版的更改应用于您的工作副本。之后,您可以检查更改并将其提交回存储库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4835823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档