1. 22 Oct, 2015 1 commit
    • index: test that we round-trip nsecs · 99a09f7f
      Test that nanoseconds are round-tripped correctly when we read
      an index file that contains them.  We should, however, ignore them
      because we don't understand them, and any new entries in the index
      should contain a `0` nsecs field, while existing preserving entries.
      Edward Thomson committed
  2. 21 Oct, 2015 4 commits
  3. 15 Oct, 2015 3 commits
  4. 14 Oct, 2015 4 commits
    • odb: Prioritize alternate backends · a0a1b19a
      For most real use cases, repositories with alternates use them as main
      object storage. Checking the alternate for objects before the main
      repository should result in measurable speedups.
      
      Because of this, we're changing the sorting algorithm to prioritize
      alternates *in cases where two backends have the same priority*. This
      means that the pack backend for the alternate will be checked before the
      pack backend for the main repository *but* both of them will be checked
      before any loose backends.
      Vicent Marti committed
    • odb: Be smarter when refreshing backends · 43820f20
      In the current implementation of ODB backends, each backend is tasked
      with refreshing itself after a failed lookup. This is standard Git
      behavior: we want to e.g. reload the packfiles on disk in case they have
      changed and that's the reason we can't find the object we're looking
      for.
      
      This behavior, however, becomes pathological in repositories where
      multiple alternates have been loaded. Given that each alternate counts
      as a separate backend, a miss in the main repository (which can
      potentially be very frequent in cases where object storage comes from
      the alternate) will result in refreshing all its packfiles before we
      move on to the alternate backend where the object will most likely be
      found.
      
      To fix this, the code in `odb.c` has been refactored as to perform the
      refresh of all the backends externally, once we've verified that the
      object is nowhere to be found.
      
      If the refresh is successful, we then perform the lookup sequentially
      through all the backends, skipping the ones that we know for sure
      weren't refreshed (because they have no refresh API).
      
      The on-disk pack backend has been adjusted accordingly: it no longer
      performs refreshes internally.
      Vicent Marti committed
    • Merge pull request #3453 from libgit2/cmn/warn-python · ac7e50dd
      CMake: be more explicit with python errors
      Edward Thomson committed
    • revwalk: make commit list use 64 bits for time · 5ffdea6f
      We moved the "main" parsing to use 64 bits for the timestamp, but the
      quick parsing for the revwalk did not. This means that for large
      timestamps we fail to parse the time and thus the walk.
      
      Move this parser to use 64 bits as well.
      Carlos Martín Nieto committed
  5. 07 Oct, 2015 2 commits
  6. 06 Oct, 2015 1 commit
  7. 05 Oct, 2015 6 commits
  8. 01 Oct, 2015 1 commit
  9. 30 Sep, 2015 8 commits
  10. 29 Sep, 2015 2 commits
  11. 28 Sep, 2015 2 commits
  12. 27 Sep, 2015 2 commits
  13. 25 Sep, 2015 3 commits
    • Merge pull request #3439 from bisho/master · a8d0b4de
      Fix binary diffs
      Edward Thomson committed
    • Fix binary diffs · e4b2b919
      git expects an empty line after the binary data:
      
      literal X
      ...binary data...
      <empty_line>
      
      The last literal block of the generated patches were not containing the required empty line. Example:
      
      	diff --git a/binary_file b/binary_file
      	index 3f1b3f9098131cfecea4a50ff8afab349ea66d22..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644
      	GIT binary patch
      	literal 8
      	Pc${NM&PdElPvrst3ey5{
      
      	literal 6
      	Nc${NM%g@i}0ssZ|0lokL
      	diff --git a/binary_file2 b/binary_file2
      	index 31be99be19470da4af5b28b21e27896a2f2f9ee2..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644
      	GIT binary patch
      	literal 8
      	Pc${NM&PdElPvrst3ey5{
      
      	literal 13
      	Sc${NMEKbZyOexL+Qd|HZV+4u-
      
      git apply of that diff results in:
      
      	error: corrupt binary patch at line 9: diff --git a/binary_file2 b/binary_file2
      	fatal: patch with only garbage at line 10
      
      The proper formating is:
      
      	diff --git a/binary_file b/binary_file
      	index 3f1b3f9098131cfecea4a50ff8afab349ea66d22..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644
      	GIT binary patch
      	literal 8
      	Pc${NM&PdElPvrst3ey5{
      
      	literal 6
      	Nc${NM%g@i}0ssZ|0lokL
      	diff --git a/binary_file2 b/binary_file2
      	index 31be99be19470da4af5b28b21e27896a2f2f9ee2..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644
      	GIT binary patch
      	literal 8
      	Pc${NM&PdElPvrst3ey5{
      
      	literal 13
      	Sc${NMEKbZyOexL+Qd|HZV+4u-
      Guille -bisho- committed
  14. 24 Sep, 2015 1 commit