diff
обычно производит довольно невежественный вывод. Вот хороший пример. Если мы начнем с этого:
class World
def hello
puts "Hello, world"
end
def goodbye
puts "Goodbye, world"
end
end
Отбросьте второй метод и измените первый:
class World
def hello
puts "Hello, #{self}"
end
end
diff -u
будет полный беспорядок - предполагается, что два метода были объединены:
class World
def hello
- puts "Hello, world"
- end
- def goodbye
- puts "Goodbye, world"
+ puts "Hello, #{self}"
end
end
Вместо гораздо более разумного:
class World
def hello
- puts "Hello, world"
+ puts "Hello, #{self}"
end
- def goodbye
- puts "Goodbye, world"
- end
end
Это всего лишь игрушечный пример, поэтому вывод diff
все еще можно понять - на практике он обычно становится намного хуже.
Есть ли альтернативы diff
, которые могут быть несколько умнее?