1. 22 Feb, 2013 1 commit
    • Add diff rename tests with partial similarity · d4b747c1
      This adds some new tests that actually exercise the similarity
      metric between files to detect renames, copies, and split modified
      files that are too heavily modified.
      
      There is still more testing to do - these tests are just partially
      covering the cases.
      
      There is also one bug fix in this where a change set with only
      MODIFY being broken into ADD/DELETE (due to low self-similarity)
      without any additional RENAMED entries would end up not processing
      the split requests (because the num_rewrites counter got reset).
      Russell Belfer committed
  2. 23 Oct, 2012 1 commit
    • Initial implementation of diff rename detection · b4f5bb07
      This implements the basis for diff rename and copy detection,
      although it is based on simple SHA comparison right now instead
      of using a matching algortihm.  Just as `git_diff_merge` can be
      used as a post-pass on diffs to emulate certain command line
      behaviors, there is a new API `git_diff_detect` which will
      update a diff list in-place, adjusting some deltas to RENAMED
      or COPIED state (and also, eventually, splitting MODIFIED deltas
      where the change is too large into DELETED/ADDED pairs).
      
      This also adds a new test repo that will hold rename/copy/split
      scenarios.  Right now, it just has exact-match rename and copy,
      but the tests are written to use tree diffs, so we should be able
      to add new test scenarios easily without breaking tests.
      Russell Belfer committed