aka git, VCS, version control systems, управление версиями, умный дифф/мерж

!!tools_research, \git-scm

Cases

  1. пробел между прилепленными токенами трактуется как изменение этих токенов в совокупности как большой чанк изменений без указания конкретного места

    из гитлаба; в гитхабе такая же фигня

    из гитлаба; в гитхабе такая же фигня

  2. ещё сотни кейсов

SMART DIFF

Aka semantic/ast-aware/structural diff/comprasion. For simplifing merging/rebasing commits and understanding patches. Language agnostic. Based on a special AST called here as CoAST (Container-oriented AST).

read also medium post

RELATED PAPERS

SymDiff

SymDiff: A language-agnostic semantic diff tool for imperative programs

  1. Computes procedures using prop-based testing approach than
  2. Compares outputs of procedure pairs for verifying equivalence after a refactoring introduced in a patch.
  3. Outputs examples of arguments-values that break each line of procedures A and B equivalence

SymDiff avoid some issues with execution:

  1. Stubs non-deterministic calls like random, malloc and fopen

Resume: SymDiff is a interesting inline-propvased-testing on diff tool that can be used in a combination with real semantic diff tool