<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git, branch ethomson/recursive</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/'/>
<entry>
<title>merge: virtual commit should be last argument to merge-base</title>
<updated>2018-02-04T10:29:41+00:00</updated>
<author>
<name>Tyrie Vella</name>
<email>tyrielv@gmail.com</email>
</author>
<published>2018-01-22T22:44:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=1403c61265e6e459676c605ae934e8a86b58266c'/>
<id>1403c61265e6e459676c605ae934e8a86b58266c</id>
<content type='text'>
Our virtual commit must be the last argument to merge-base: since our
algorithm pushes _both_ parents of the virtual commit, it needs to be
the last argument, since merge-base:

&gt; Given three commits A, B and C, git merge-base A B C will compute the
&gt; merge base between A and a hypothetical commit M

We want to calculate the merge base between the actual commit ("two")
and the virtual commit ("one") - since one actually pushes its parents
to the merge-base calculation, we need to calculate the merge base of
"two" and the parents of one.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Our virtual commit must be the last argument to merge-base: since our
algorithm pushes _both_ parents of the virtual commit, it needs to be
the last argument, since merge-base:

&gt; Given three commits A, B and C, git merge-base A B C will compute the
&gt; merge base between A and a hypothetical commit M

We want to calculate the merge base between the actual commit ("two")
and the virtual commit ("one") - since one actually pushes its parents
to the merge-base calculation, we need to calculate the merge base of
"two" and the parents of one.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add failing test case for virtual commit merge base issue</title>
<updated>2018-02-04T10:29:41+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-01-22T23:56:22+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=b8823c2b1c2962edd7b2bf550266d4f136100182'/>
<id>b8823c2b1c2962edd7b2bf550266d4f136100182</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>merge::trees::recursive: test for virtual base building</title>
<updated>2018-02-04T10:29:41+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-01-21T16:50:40+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=afcaf35eda87028705012e9deab75bf282be72f3'/>
<id>afcaf35eda87028705012e9deab75bf282be72f3</id>
<content type='text'>
Virtual base building: ensure that the virtual base is created and
revwalked in the same way as git.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Virtual base building: ensure that the virtual base is created and
revwalked in the same way as git.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge: reverse merge bases for recursive merge</title>
<updated>2018-02-04T10:29:41+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-01-21T18:05:45+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=b924df1eadfaf33285d8020c50cb18ddde1a8165'/>
<id>b924df1eadfaf33285d8020c50cb18ddde1a8165</id>
<content type='text'>
When the commits being merged have multiple merge bases, reverse the
order when creating the virtual merge base.  This is for compatibility
with git's merge-recursive algorithm, and ensures that we build
identical trees.

Git does this to try to use older merge bases first.  Per 8918b0c:

&gt; It seems to be the only sane way to do it: when a two-head merge is
&gt; done, and the merge-base and one of the two branches agree, the
&gt; merge assumes that the other branch has something new.
&gt;
&gt; If we start creating virtual commits from newer merge-bases, and go
&gt; back to older merge-bases, and then merge with newer commits again,
&gt; chances are that a patch is lost, _because_ the merge-base and the
&gt; head agree on it. Unlikely, yes, but it happened to me.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the commits being merged have multiple merge bases, reverse the
order when creating the virtual merge base.  This is for compatibility
with git's merge-recursive algorithm, and ensures that we build
identical trees.

Git does this to try to use older merge bases first.  Per 8918b0c:

&gt; It seems to be the only sane way to do it: when a two-head merge is
&gt; done, and the merge-base and one of the two branches agree, the
&gt; merge assumes that the other branch has something new.
&gt;
&gt; If we start creating virtual commits from newer merge-bases, and go
&gt; back to older merge-bases, and then merge with newer commits again,
&gt; chances are that a patch is lost, _because_ the merge-base and the
&gt; head agree on it. Unlikely, yes, but it happened to me.
</pre>
</div>
</content>
</entry>
<entry>
<title>oidarray: introduce git_oidarray__reverse</title>
<updated>2018-02-04T10:29:41+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-01-21T18:01:20+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=ed51feb74b33ca115ddf739ce3574a76cb7a6fa6'/>
<id>ed51feb74b33ca115ddf739ce3574a76cb7a6fa6</id>
<content type='text'>
Provide a simple function to reverse an oidarray.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide a simple function to reverse an oidarray.
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce additional criss-cross merge branches</title>
<updated>2018-02-04T10:29:41+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-01-21T16:41:49+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=7bd89502d818681ee220282d890891d9c11abeb1'/>
<id>7bd89502d818681ee220282d890891d9c11abeb1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4489 from libgit2/ethomson/conflicts_crlf</title>
<updated>2018-02-04T10:27:39+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-02-04T10:27:39+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=26f5d36d2f14dc1d711ed0a2c844ef4d7887a9b3'/>
<id>26f5d36d2f14dc1d711ed0a2c844ef4d7887a9b3</id>
<content type='text'>
Conflict markers should match EOL style in conflicting files</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflict markers should match EOL style in conflicting files</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4499 from pks-t/pks/setuid-config</title>
<updated>2018-02-03T01:37:12+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-02-03T01:37:12+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=8abd514c270ba3b3fc42c6d5feefedc4cc65dd9b'/>
<id>8abd514c270ba3b3fc42c6d5feefedc4cc65dd9b</id>
<content type='text'>
sysdir: do not use environment in setuid case</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
sysdir: do not use environment in setuid case</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4512 from libgit2/ethomson/header_guards</title>
<updated>2018-02-02T19:33:46+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-02-02T19:33:46+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=2553cbe39eca5713f873c9e268461ad361d17a54'/>
<id>2553cbe39eca5713f873c9e268461ad361d17a54</id>
<content type='text'>
Consistent header guards</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Consistent header guards</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4510 from pks-t/pks/attr-file-bare-stat</title>
<updated>2018-02-02T19:31:15+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-02-02T19:31:15+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libgit2.git/commit/?id=53454b6819df9a2f04de65a65bfce90ce4dc15e8'/>
<id>53454b6819df9a2f04de65a65bfce90ce4dc15e8</id>
<content type='text'>
attr: avoid stat'ting files for bare repositories</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
attr: avoid stat'ting files for bare repositories</pre>
</div>
</content>
</entry>
</feed>
