bluekeyes/go-gitdiff

Support non-strict patch application

bluekeyes opened this issue · 0 comments

Currently, an Applier can only apply patches in "strict" mode, where line numbers and context lines must match exactly. Git supports a more flexible model when applying patches that allow them to work in more situations, such as cherry-picking changes to different branches:

  • Look for matches on different lines near the lines in the patch
  • Look for matches with fewer lines of context
  • Look for matches ignoring certain types of whitespace changes

I think copying Git's whitespace normalization could get complicated, but it would be nice to at least support exact matches on different lines or matches with reduced context.