src/graph.c


Log

Author Commit Date CI Message
Patrick Steinhardt e781a0c5 2016-11-25T15:02:07 graph: flag fields should be declared as unsigned
Carlos Martín Nieto 05f0d0c1 2014-08-28T13:36:58 graph: fix ahead-behind logic When we see PARENT1, it means there is a local commit and thus we are ahead. Likewise, seeing PARENT2 means that the upstream branch has a commit and we are one more behind. The logic is currently reversed. Correct it. This fixes #2501.
Carlos Martín Nieto ce2e8269 2014-04-08T16:52:20 graph: handle not finding a merge base gracefully git_merge_base() returns GIT_ENOTFOUND when it cannot find a merge base. graph_desdendant_of() returns a boolean value (barring any errors), so it needs to catch the NOTFOUND return value and convert it into false, as not merge base means it cannot be a descendant.
Jacques Germishuys 56f8e06e 2014-04-08T15:46:45 Correct grouping of parentheses git_graph_descendant_of was returning the result of an assignment
Russell Belfer 4075e060 2014-02-03T21:02:08 Replace pqueue with code from hashsig heap I accidentally wrote a separate priority queue implementation when I was working on file rename detection as part of the file hash signature calculation code. To simplify licensing terms, I just adapted that to a general purpose priority queue and replace the old priority queue implementation that was borrowed from elsewhere. This also removes parts of the COPYING document that no longer apply to libgit2.
Arthur Schreiber e7c16943 2014-01-28T19:39:14 Add `git_graph_descendant_of`.
Carlos Martín Nieto 33a59401 2013-03-22T20:22:39 graph: make the ahead-behind docs clearer Explain it in local-upstream branch terms so it's easier to grasp than with the `one` and `two` naming from the merge-base code.
Edward Thomson 359fc2d2 2013-01-08T17:07:25 update copyrights
Scott J. Goldman 7d26c410 2012-12-09T21:55:51 Fix a bunch of leaks, error handling cases
Scott J. Goldman e51c8b99 2012-12-09T21:24:47 Fix mark_parents() to account for bad luck traversals If commit timestamps are off, we're more likely to hit a traversal where the first path ends up traversing past the root commit of the tree. If that happens, it's possible that the loop will complete before the second path marks some of those final parents. This fix keeps track of the root nodes that are encountered in the traversal, and verify that they are properly marked. In the best case, with accurate timestamps, the traversal will continue to terminate when all the commits are STALE (parents of a merge-base), as it did before. In the worst case, where one path makes a complete traversal past a root commit, we will continue the loop until the root commit itself is marked.
Scott J. Goldman 9c2a4e8c 2012-12-09T21:01:46 Morph copy of git_merge__bases_many() -> mark_parents() Integrate mark_parents() with the ahead_behind() code.
Scott J. Goldman a3a81ae5 2012-12-09T20:43:26 Copy git_merge__bases_many() for new ahead-behind code To be used as a basis for a function which marks nodes with parents up to the merge base.
Carlos Martín Nieto da820437 2012-11-30T15:26:45 graph: plug leak
Russell Belfer d5e44d84 2012-11-29T17:02:27 Fix function name and add real error check `revwalk.h:commit_lookup()` -> `git_revwalk__commit_lookup()` and make `git_commit_list_parse()` do real error checking that the item in the list is an actual commit object. Also fixed an apparent typo in a test name.
Scott J. Goldman b994bfe3 2012-11-28T18:48:22 graph.c: prune includes
Scott J. Goldman 0984c876 2012-11-28T18:27:43 Rename git_count_ahead_behind -> git_graph_ahead_behind Moved it into graph.{c,h} which i created for the new "graph" functions namespace. Also adjusted the function prototype to use `size_t` and `const git_oid *`.