<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/graph.c, branch cmn/error-buffer</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/'/>
<entry>
<title>graph: fix ahead-behind logic</title>
<updated>2014-08-28T11:36:58+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-08-28T11:36:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=05f0d0c1190f0a3922d48d9f35c6ef6f3c2048a7'/>
<id>05f0d0c1190f0a3922d48d9f35c6ef6f3c2048a7</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>graph: handle not finding a merge base gracefully</title>
<updated>2014-04-08T14:52:20+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-04-08T14:52:20+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=ce2e82694a19b9994acaa9376bff81bc8e968637'/>
<id>ce2e82694a19b9994acaa9376bff81bc8e968637</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Correct grouping of parentheses</title>
<updated>2014-04-08T14:30:26+00:00</updated>
<author>
<name>Jacques Germishuys</name>
<email>jacquesg@striata.com</email>
</author>
<published>2014-04-08T13:46:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=56f8e06e4985f7b14c1bf7c526a5195ba24fd6ee'/>
<id>56f8e06e4985f7b14c1bf7c526a5195ba24fd6ee</id>
<content type='text'>
git_graph_descendant_of was returning the result of an assignment
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git_graph_descendant_of was returning the result of an assignment
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace pqueue with code from hashsig heap</title>
<updated>2014-02-04T05:02:08+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2014-02-04T05:02:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=4075e060b45a73834a24684ed835d52f7176d58b'/>
<id>4075e060b45a73834a24684ed835d52f7176d58b</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `git_graph_descendant_of`.</title>
<updated>2014-01-28T18:39:14+00:00</updated>
<author>
<name>Arthur Schreiber</name>
<email>schreiber.arthur@googlemail.com</email>
</author>
<published>2014-01-28T18:39:14+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=e7c16943f4551830a148995640f87bec2fe08e8f'/>
<id>e7c16943f4551830a148995640f87bec2fe08e8f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>graph: make the ahead-behind docs clearer</title>
<updated>2013-03-22T19:27:59+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2013-03-22T19:22:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=33a59401c377c329e8875cfad2a1332eb514b62a'/>
<id>33a59401c377c329e8875cfad2a1332eb514b62a</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>update copyrights</title>
<updated>2013-01-08T23:31:27+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2013-01-08T23:07:25+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=359fc2d241ac407bdf9bf0d28715705f01ca6360'/>
<id>359fc2d241ac407bdf9bf0d28715705f01ca6360</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bunch of leaks, error handling cases</title>
<updated>2012-12-10T05:55:51+00:00</updated>
<author>
<name>Scott J. Goldman</name>
<email>scottjg@github.com</email>
</author>
<published>2012-12-10T05:55:51+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=7d26c410bf6f5ba3be18c60d789d064219f9aca6'/>
<id>7d26c410bf6f5ba3be18c60d789d064219f9aca6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix mark_parents() to account for bad luck traversals</title>
<updated>2012-12-10T05:24:47+00:00</updated>
<author>
<name>Scott J. Goldman</name>
<email>scottjg@github.com</email>
</author>
<published>2012-12-10T05:24:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=e51c8b99be1fc35bd3db30ae629cc404942cdc24'/>
<id>e51c8b99be1fc35bd3db30ae629cc404942cdc24</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Morph copy of git_merge__bases_many() -&gt; mark_parents()</title>
<updated>2012-12-10T05:01:46+00:00</updated>
<author>
<name>Scott J. Goldman</name>
<email>scottjg@github.com</email>
</author>
<published>2012-12-10T05:01:46+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=9c2a4e8c4731854c602acd3c5eb46f4fc84f9f71'/>
<id>9c2a4e8c4731854c602acd3c5eb46f4fc84f9f71</id>
<content type='text'>
Integrate mark_parents() with the ahead_behind() code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Integrate mark_parents() with the ahead_behind() code.
</pre>
</div>
</content>
</entry>
</feed>
