1. 09 Jan, 2020 1 commit
  2. 20 Jul, 2019 1 commit
  3. 22 Feb, 2019 1 commit
  4. 15 Feb, 2019 2 commits
    • maps: provide high-level iteration interface · 18cf5698
      Currently, our headers need to leak some implementation details of maps due to
      their direct use of indices in the implementation of their foreach macros. This
      makes it impossible to completely hide the map structures away, and also makes
      it impossible to include the khash implementation header in the C files of the
      respective map only.
      
      This is now being fixed by providing a high-level iteration interface
      `map_iterate`, which takes as inputs the map that shall be iterated over, an
      iterator as well as the locations where keys and values shall be put into. For
      simplicity's sake, the iterator is a simple `size_t` that shall initialized to
      `0` on the first call. All existing foreach macros are then adjusted to make use
      of this new function.
      Patrick Steinhardt committed
    • maps: provide a uniform entry count interface · 7e926ef3
      There currently exist two different function names for getting the entry count
      of maps, where offmaps offset and string maps use `num_entries` and OID maps use
      `size`. In most programming languages with built-in map types, this is simply
      called `size`, which is also shorter to type. Thus, this commit renames the
      other two functions `num_entries` to match the common way and adjusts all
      callers.
      Patrick Steinhardt committed
  5. 02 Feb, 2019 1 commit
  6. 22 Jan, 2019 1 commit
  7. 01 Dec, 2018 1 commit
  8. 28 Nov, 2018 1 commit
  9. 22 Jun, 2018 2 commits
  10. 10 Jun, 2018 1 commit
  11. 23 Dec, 2017 1 commit
    • Fix unpack double free · c3514b0b
      If an element has been cached, but then the call to
      packfile_unpack_compressed() fails, the very next thing that happens is
      that its data is freed and then the element is not removed from the
      cache, which frees the data again.
      
      This change sets obj->data to NULL to avoid the double-free. It also
      stops trying to resolve deltas after two continuous failed rounds of
      resolution, and adds a test for this.
      lhchavez committed
  12. 08 Dec, 2017 1 commit
  13. 06 Dec, 2017 1 commit
  14. 08 Jun, 2017 1 commit
    • settings: rename `GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION` · 6c23704d
      Initially, the setting has been solely used to enable the use of
      `fsync()` when creating objects. Since then, the use has been extended
      to also cover references and index files. As the option is not yet part
      of any release, we can still correct this by renaming the option to
      something more sensible, indicating not only correlation to objects.
      
      This commit renames the option to `GIT_OPT_ENABLE_FSYNC_GITDIR`. We also
      move the variable from the object to repository source code.
      Patrick Steinhardt committed
  15. 19 May, 2017 1 commit
    • indexer: name pack files after trailer hash · c0e54155
      Upstream git.git has changed the way how packfiles are named.
      Previously, they were using a hash of the contained object's OIDs, which
      has then been changed to use the hash of the complete packfile instead.
      See 1190a1acf (pack-objects: name pack files after trailer hash,
      2013-12-05) in the git.git repository for more information on this
      change.
      
      This commit changes our logic to match the behavior of core git.
      Chris Hescock committed
  16. 02 Mar, 2017 1 commit
  17. 28 Feb, 2017 4 commits
  18. 14 Jan, 2017 1 commit
  19. 04 Jan, 2017 1 commit
  20. 02 Jan, 2017 1 commit
  21. 26 Sep, 2014 1 commit
  22. 16 Sep, 2014 1 commit
  23. 01 Jul, 2014 1 commit
  24. 23 Jun, 2014 1 commit
    • Share packs across repository instances · b3b66c57
      Opening the same repository multiple times will currently open the same
      file multiple times, as well as map the same region of the file multiple
      times. This is not necessary, as the packfile data is immutable.
      
      Instead of opening and closing packfiles directly, introduce an
      indirection and allocate packfiles globally. This does mean locking on
      each packfile open, but we already use this lock for the global mwindow
      list so it doesn't introduce a new contention point.
      Carlos Martín Nieto committed
  25. 17 May, 2014 1 commit
  26. 11 Dec, 2013 1 commit
    • Test cancel from indexer progress callback · 7697e541
      This adds tests that try canceling an indexer operation from
      within the progress callback.
      
      After writing the tests, I wanted to run this under valgrind and
      had a number of errors in that situation because mmap wasn't
      working.  I added a CMake option to force emulation of mmap and
      consolidated the Amiga-specific code into that new place (so we
      don't actually need separate Amiga code now, just have to turn on
      -DNO_MMAP).
      
      Additionally, I made the indexer code propagate error codes more
      reliably than it used to.
      Russell Belfer committed
  27. 14 Nov, 2013 2 commits