1. 22 Jun, 2018 1 commit
    • Clear revwalk sorting when resetting · 4fd81c53
      Currently we fail to clear the sorting flag for revwalks when resetting.
      This caused a poor interaction with the limited flag during a recent
      patch. This patch clears the revwalk sorting flag and causes it to no
      longer persist over resets.
      Nika Layzell committed
  2. 12 Apr, 2018 1 commit
    • revwalk: fix uninteresting revs sometimes not limiting graphwalk · 54fd80e3
      When we want to limit our graphwalk, we use the heuristic of checking
      whether the newest limiting (uninteresting) revision is newer than the
      oldest interesting revision. We do so by inspecting whether the first
      item's commit time of the user-supplied list of revisions is newer than
      the last added interesting revision. This is wrong though, as the user
      supplied list is in no way guaranteed to be sorted by increasing commit
      dates. This could lead us to abort the revwalk early before applying all
      relevant limiting revisions, outputting revisions which should in fact
      have been hidden.
      
      Fix the heuristic by instead checking whether _any_ of the limiting
      commits was made earlier than the last interesting commit. Add a test.
      Patrick Steinhardt committed
  3. 24 Feb, 2018 1 commit
    • testrepo: add new branch · 18d9c847
      Add a new branch to the `testrepo` repository, where the `README` file
      has changed to executable.  This branch enables typechange tests between
      the new `executable` branch and `master`.
      Edward Thomson committed
  4. 09 Mar, 2017 1 commit
  5. 13 Feb, 2017 1 commit
  6. 02 Feb, 2017 1 commit
  7. 06 Oct, 2016 2 commits
    • revwalk: get closer to git · 6708618c
      We had some home-grown logic to figure out which objects to show during
      the revision walk, but it was rather inefficient, looking over the same
      list multiple times to figure out when we had run out of interesting
      commits. We now use the lists in a smarter way.
      
      We also introduce the slop mechanism to determine when to stpo
      looking. When we run out of interesting objects, we continue preparing
      the walk for another 5 rounds in order to make it less likely that we
      miss objects in situations with complex graphs.
      Carlos Martín Nieto committed
    • revwalk: introduce tests that hide old commits · 565fb8dc
      Introduce some tests that show some commits, while hiding some commits
      that have a timestamp older than the common ancestors of these two
      commits.
      Edward Thomson committed
  8. 21 Oct, 2015 1 commit
  9. 14 Oct, 2015 1 commit
  10. 08 Apr, 2015 1 commit
  11. 03 Feb, 2015 1 commit
  12. 16 Sep, 2014 1 commit
  13. 31 Mar, 2014 1 commit
  14. 12 Mar, 2014 1 commit
  15. 05 Feb, 2014 3 commits
  16. 14 Nov, 2013 1 commit
  17. 07 Aug, 2013 1 commit
  18. 22 Jul, 2013 2 commits
  19. 07 Apr, 2013 1 commit
  20. 31 Mar, 2013 2 commits
  21. 23 Nov, 2012 1 commit
    • Reset all static variables to NULL in clar's __cleanup · 9094d30b
      Without this change, any failed assertion in the second (or a later) test
      inside a test suite has a chance of double deleting memory, resulting in
      a heap corruption. See #1096 for details.
      
      This leaves alone the test cases where we "just" use cl_git_sandbox_init()
      and cl_git_sandbox_cleanup(). These methods already take good care to not
      double delete a repository.
      
      Fixes #1096
      Sascha Cunz committed
  22. 27 Aug, 2012 1 commit
  23. 11 Jul, 2012 1 commit
  24. 17 May, 2012 1 commit
  25. 12 Apr, 2012 2 commits
  26. 27 Feb, 2012 4 commits
  27. 01 Jul, 2011 1 commit
  28. 16 Jun, 2011 1 commit
  29. 16 Mar, 2011 1 commit
  30. 15 Mar, 2011 1 commit
  31. 14 Mar, 2011 1 commit
    • Rewrite the Revision Walker · 71db842f
      The new revision walker uses an internal Commit object storage system,
      custom memory allocator and much improved topological and time sorting
      algorithms. It's about 20x times faster than the previous implementation
      when browsing big repositories.
      
      The following external API calls have changed:
      
      	`git_revwalk_next` returns an OID instead of a full commit object.
      	The initial call to `git_revwalk_next` is no longer blocking when
      	iterating through a repo with a time-sorting mode.
      
      	Iterating with Topological or inverted modes still makes the initial
      	call blocking to preprocess the commit list, but this block should be
      	mostly unnoticeable on most repositories (topological preprocessing
      	times at 0.3s on the git.git repo).
      
      	`git_revwalk_push` and `git_revwalk_hide` now take an OID instead
      	of a full commit object.
      Vicent Marti committed