ruby-on-rails - 如何将文本合并在一起?就像版本控制系统一样?

标签 ruby-on-rails ruby version-control merge text-manipulation

维基百科说这很好:http://en.wikipedia.org/wiki/Merge_(revision_control)#Three-way_merge

但是如何实现呢?或者是否有任何适用于 Ruby on Rails 的 gems/插件可以帮我处理这个问题?

我的情况:
• 我有基本文本
• 人 A 的变化
• 人 B 的变化
• 应包括这两项更改,而不是覆盖其他更改

有什么方向可以指出吗?谢谢!

最佳答案

我认为你应该看看 merge3再次 gem [source] .

这个小例子解释了它:

require 'rubygems'
require 'merge3'

start = <<TEXT
This is the baseline.
The start.
The end.
TEXT
changed_A = <<TEXT
This is the baseline.
The start (changed by A).
The end.
TEXT
changed_B = <<TEXT
This is the baseline.
The start.
B added this line.
The end.
TEXT

result = Merge3::three_way(start, changed_A, changed_B)

puts result

它生成的输出是:

This is the baseline.
The start (changed by A).
B added this line.
The end.

我不确定它是如何处理合并冲突的,因为它应该处理文件的三向合并,所以它似乎是基于行的。如果这是一个问题(因为您的示例试图比较简单的字符串),您可以在每个字符之间添加一个换行符。

希望这对您有所帮助。

关于ruby-on-rails - 如何将文本合并在一起?就像版本控制系统一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095880/

相关文章:

ruby-on-rails - Arel:从函数中选择

每个作者在所有分支上的 Git 提交数

Git - 裸仓库不能有主分支的工作树 - 为什么?

visual-studio - 带有 Visual Studio 集成的小型项目的源代码控制

ruby-on-rails - 是否可以在 Heroku Cedar 上运行 capybara-webkit(即 fork 的 webkit_server)?

jquery - 如何使用 Jquery 动态选择特定链接?

ruby-on-rails - 雷和 order_by

ruby-on-rails - RESTful 路径是否适合 session 设置?

ruby-on-rails - 如何使用NewRelic监控Rails异常

ruby 摩卡 : is there an equivalent to rspec-mocks' #and_call_original?