【问题标题】:Rational Software Architect and GitHubRational 软件架构师和 GitHub
【发布时间】:2016-06-26 09:40:56
【问题描述】:

我们正在使用 Rational Software 架构师对我们的设计进行建模。我们在 Github 中有我们的存储库,可以在团队成员之间进行协作。我们面临的合并/冲突问题。 因此,如果一个团队成员对模型进行了一些更改并提交/推送他的更改,而其他人试图拉动这个更改,就会发生很多冲突。

不幸的是,这些冲突主要与 RSA 自己制作的 .emx 文件中元数据的更改有关。这些冲突很难解决,而且不是人类可读的行。

在 GitHub 上使用 RSA 时是否有其他人遇到过类似的问题

【问题讨论】:

  • git 仅适用于源代码。如果您正在制作电影游戏、广播广告或类似 R.S. 的东西,只需使用 svn。例如,这个问题在 Unity3D 中出现了一千次。将“git”用于统一游戏项目是不切实际的。 (统一项目是 100 GB 的视频、动画、模型等 .. 和几百字节的实际源代码文本文件。git 用于源代码文本文件。游戏业务中的每个人(例如)只使用 svn。)
  • 您如何将 RSA(9.1) 与 GIT 集成? @user667022

标签: git rational-rsa


【解决方案1】:

您的问题不是真正的 RSA,而是 git。更准确地说是您的 git 客户端。

RSA 可以进行人类可读的差异或合并,它分析不同版本内容的语义。但为此,它需要内容保持不变,而不是被你的 git 客户端产生的“差异”行污染。它只是期望有版本的原始内容。大多数版本控制系统认为他们能够做出差异,但对于复杂的内容他们无法理解语义。

如果你使用 CVS,eclipse 客户端只需保持完整版本不变,并将 diff 委托给“rsa diff tool”,这里一切正常。

【讨论】:

  • 我在 LinkedIn 上发现了一个流说你必须将你的 .emx 和 .efx 声明为二进制文件。
【解决方案2】:

我目前正在为您在问题中描述的同一问题寻找解决方案。但是,在我的公司,RSA 本身用于解决这些合并冲突。因此,如果您使用无法处理规范化 XML 文件的合并工具或编辑器,我建议的以下解决方案将无法完全为您工作。自从我们使用 Gerrit 审查代码以来,我们确实发现了同样的问题,正如您在问题中所述,源代码不是人类可读的,因此无法在 Gerrit UI 中审查或评论。

嵌入在带有 .efx 和 .emx 文件扩展名的 XML 文档中的源代码已被修改或规范化,以便将换行符、引号等字符替换为相应的 HTML 编码序列。 Git 和 Gerrit 期望每个源代码行都以换行符结束,因此结果几乎是无限长的行,由所谓的片段连接中的所有源代码行组成,并穿插一些 HTML 编码序列。

我们公司至少有人在 git 中添加了一个粗略的 diff 过滤器,这样当你调用 'git show'、'git diff' 和其他命令查看文件内容时,嵌入的源代码行是人类可读的。过滤器只是一堆全局搜索和替换语句,将大约十几个 HTML 编码序列替换为相应的 UTF-8 字符。

为了解决这个问题,我相信基本上有两种选择;

1) 向 Gerrit 添加某种过滤器,其工作方式与上述 git 的 diff 过滤器非常相似,将 HTML 编码序列替换为相应的 UTF-8 字符。

2) 向 git 添加 smudge 和 clean 过滤器,以便在签入代码时,源代码行在 HTML 注释中转换为 UTF-8,该注释位于 HTML 编码行旁边。在 Gerrit 中,可以按照作者的意图查看源代码,从而可以正常查看和评论。结帐时,涂抹过滤器会删除 HTML 注释和其中的源代码,使 .efx 和 .emx 看起来与 RSA 将内容写入磁盘时完全一样。尽管由于源代码重复,这会改变文件内容并有效地使文件大小加倍,但内容仍将是一个有效的 XML 文档,即使 HTML 注释应该在涂抹过程中幸存下来,也不应该影响 RSA。

最近我听说最新版本的 RSA,我相信 9.1,可以配置为在片段文件中或多或少保持完整的嵌入源代码,以便可以在 Gerrit 中对其进行审查和检查,而无需使用诸如此类的变通方法如上所述。我还没有亲自确认这是否真的像描述的那样工作。

【讨论】:

  • 我可以确认,在 RSA 9.1 中,大多数嵌入式源代码都保持不变,只有一些小例外,例如小于 '
  • 太复杂了。只需使用svn。 git 用于源代码文本文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多