<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/git.git/compat, branch v1.5.6.4</title>
<subtitle>Git
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.5.6.4</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.5.6.4'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/'/>
<updated>2008-05-09T00:43:01Z</updated>
<entry>
<title>compat/fopen.c: avoid clobbering the system defined fopen macro</title>
<updated>2008-05-09T00:43:01Z</updated>
<author>
<name>Brandon Casey</name>
<email>casey@nrlssc.navy.mil</email>
</author>
<published>2008-05-07T17:34:18Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=eb120e699f3faea2d71cd9cb79a8cf4f79ec1d45'/>
<id>urn:sha1:eb120e699f3faea2d71cd9cb79a8cf4f79ec1d45</id>
<content type='text'>
Some systems define fopen as a macro based on compiler settings.
The previous technique for reverting to the system fopen function
by merely undefining fopen is inadequate in this case. Instead,
avoid defining fopen entirely when compiling this source file.

Signed-off-by: Brandon Casey &lt;casey@nrlssc.navy.mil&gt;
Tested-by: Mike Ralphson &lt;mike@abacus.co.uk&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Add compat/snprintf.c for systems that return bogus</title>
<updated>2008-03-05T21:12:07Z</updated>
<author>
<name>Michal Rokos</name>
<email>michal.rokos@nextsoft.cz</email>
</author>
<published>2008-03-05T15:46:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=c4582f93a263bea534288e7f7ad8937405964cd4'/>
<id>urn:sha1:c4582f93a263bea534288e7f7ad8937405964cd4</id>
<content type='text'>
Some systems (namely HPUX and Windows) return -1 when maxsize in snprintf()
and in vsnprintf() is reached. So replace snprintf() and vsnprintf()
functions with our own ones that return correct value upon overflow.

[jc: verified that review comments by J6t have been incorporated, and
 tightened the check to verify the resulting buffer contents, suggested
 by Wayne Davison]

Signed-off-by: Michal Rokos &lt;michal.rokos@nextsoft.cz&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bc/fopen'</title>
<updated>2008-02-21T00:13:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2008-02-21T00:13:19Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=c0284cea3149cb20e24ee5e25b475e5f8edba84f'/>
<id>urn:sha1:c0284cea3149cb20e24ee5e25b475e5f8edba84f</id>
<content type='text'>
* bc/fopen:
  Add compat/fopen.c which returns NULL on attempt to open directory
</content>
</entry>
<entry>
<title>Add compat/fopen.c which returns NULL on attempt to open directory</title>
<updated>2008-02-12T02:25:10Z</updated>
<author>
<name>Brandon Casey</name>
<email>casey@nrlssc.navy.mil</email>
</author>
<published>2008-02-09T02:32:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=cba22528fa897728ebbffb95c05037ec9a20ea7c'/>
<id>urn:sha1:cba22528fa897728ebbffb95c05037ec9a20ea7c</id>
<content type='text'>
Some systems do not fail as expected when fread et al. are called on
a directory stream. Replace fopen on such systems which will fail
when the supplied path is a directory.

Signed-off-by: Brandon Casey &lt;casey@nrlssc.navy.mil&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>compat: Add simplified merge sort implementation from glibc</title>
<updated>2008-02-07T06:35:28Z</updated>
<author>
<name>Brian Downing</name>
<email>bdowning@lavos.net</email>
</author>
<published>2008-02-05T21:10:44Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=43fe901b71f81cdff142048dfc27e492c445d225'/>
<id>urn:sha1:43fe901b71f81cdff142048dfc27e492c445d225</id>
<content type='text'>
qsort in Windows 2000 (and various other C libraries) is a Quicksort
with the usual O(n^2) worst case.  Unfortunately, sorting Git trees
seems to get very close to that worst case quite often:

    $ /git/gitbad runstatus
    # On branch master
    qsort, nmemb = 30842
    done, 237838087 comparisons.

This patch adds a simplified version of the merge sort that is glibc's
qsort(3).  As a merge sort, this needs a temporary array equal in size
to the array that is to be sorted, but has a worst-case performance of
O(n log n).

The complexity that was removed is:

* Doing direct stores for word-size and -aligned data.
* Falling back to quicksort if the allocation required to perform the
  merge sort would likely push the machine into swap.

Even with these simplifications, this seems to outperform the Windows
qsort(3) implementation, even in Windows XP (where it is "fixed" and
doesn't trigger O(n^2) complexity on trees).

[jes: moved into compat/qsort.c, as per Johannes Sixt's suggestion]
[bcd: removed gcc-ism, thanks to Edgar Toernig.  renamed make variable
      per Junio's comment.]

Signed-off-by: Brian Downing &lt;bdowning@lavos.net&gt;
Signed-off-by: Steffen Prohaska &lt;prohaska@zib.de&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2007-11-06T06:03:47Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2007-11-06T06:03:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=fe61935007b6803ce116e233316e4ff51de02be6'/>
<id>urn:sha1:fe61935007b6803ce116e233316e4ff51de02be6</id>
<content type='text'>
* maint:
  Remove a couple of duplicated include
  grep with unmerged index
  git-daemon: fix remote port number in log entry
  git-svn: t9114: verify merge commit message in test
  git-svn: fix dcommit clobbering when committing a series of diffs
</content>
</entry>
<entry>
<title>Remove a couple of duplicated include</title>
<updated>2007-11-06T04:50:38Z</updated>
<author>
<name>Marco Costalba</name>
<email>mcostalba@gmail.com</email>
</author>
<published>2007-11-04T14:35:26Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=d8e21ba8967f43b61fc2fd50dd749ff8f0c6592a'/>
<id>urn:sha1:d8e21ba8967f43b61fc2fd50dd749ff8f0c6592a</id>
<content type='text'>
Signed-off-by: Marco Costalba &lt;mcostalba@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Define compat version of mkdtemp for systems lacking it</title>
<updated>2007-10-21T02:52:21Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-10-20T20:03:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=ca5bb5d5390e4ec709ca3e11c451c58a836d4ee6'/>
<id>urn:sha1:ca5bb5d5390e4ec709ca3e11c451c58a836d4ee6</id>
<content type='text'>
Solaris 9 doesn't have mkdtemp() so we need to emulate it for the
rsync transport implementation.  Since Solaris 9 is lacking this
function we can also reasonably assume it is not available on
Solaris 8 either.  The new Makfile definition NO_MKDTEMP can be
set to enable the git compat version.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>add memmem()</title>
<updated>2007-09-07T05:46:00Z</updated>
<author>
<name>René Scharfe</name>
<email>rene.scharfe@lsrfire.ath.cx</email>
</author>
<published>2007-09-06T22:32:54Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=b21b9f1de313acb5550c070911ae58c735cdb451'/>
<id>urn:sha1:b21b9f1de313acb5550c070911ae58c735cdb451</id>
<content type='text'>
memmem() is a nice GNU extension for searching a length limited string
in another one.

This compat version is based on the version found in glibc 2.2 (GPL 2);
I only removed the optimization of checking the first char by hand, and
generally tried to keep the code simple.  We can add it back if memcmp
shows up high in a profile, but for now I prefer to keep it (almost
trivially) simple.

Since I don't really know which platforms beside those with a glibc
have their own memmem(), I used a heuristic: if NO_STRCASESTR is set,
then NO_MEMMEM is set, too.

Signed-off-by: Rene Scharfe &lt;rene.scharfe@lsrfire.ath.cx&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'maint' to sync with GIT 1.5.2.2</title>
<updated>2007-06-16T08:22:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2007-06-16T08:22:10Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=5bd148bfe8a4f2df8487e029cd4ee6809bc4c963'/>
<id>urn:sha1:5bd148bfe8a4f2df8487e029cd4ee6809bc4c963</id>
<content type='text'>
</content>
</entry>
</feed>
