Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Feb 19, 2011
  1. @torvalds @gitster

    for_each_hash: allow passing a 'void *data' pointer to callback

    torvalds authored gitster committed
    For the find_exact_renames() function, this allows us to pass the
    diff_options structure pointer to the low-level routines.  We will use
    that to distinguish between the "rename" and "copy" cases.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 9, 2008
  1. @torvalds @gitster

    Add 'const' where appropriate to index handling functions

    torvalds authored gitster committed
    This is in an effort to make the source index of 'unpack_trees()' as
    being const, and thus making the compiler help us verify that we only
    access it for reading.
    
    The constification also extended to some of the hashing helpers that get
    called indirectly.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Oct 27, 2007
  1. @torvalds @gitster

    Do linear-time/space rename logic for exact renames

    torvalds authored gitster committed
    This implements a smarter rename detector for exact renames, which
    rather than doing a pairwise comparison (time O(m*n)) will just hash the
    files into a hash-table (size O(n+m)), and only do pairwise comparisons
    to renames that have the same hash (time O(n+m) except for unrealistic
    hash collissions, which we just cull aggressively).
    
    Admittedly the exact rename case is not nearly as interesting as the
    generic case, but it's an important case none-the-less. A similar general
    approach should work for the generic case too, but even then you do need
    to handle the exact renames/copies separately (to avoid the inevitable
    added cost factor that comes from the _size_ of the file), so this is
    worth doing.
    
    In the expectation that we will indeed do the same hashing trick for the
    general rename case, this code uses a generic hash-table implementation
    that can be used for other things too.  In fact, we might be able to
    consolidate some of our existing hash tables with the new generic code
    in hash.[ch].
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Something went wrong with that request. Please try again.