<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgit/cgit.c, branch v0.9.2</title>
<subtitle>A hyperfast web frontend for git repositories written in C.</subtitle>
<id>http://git.cetero.st/cgit/atom/cgit.c?h=v0.9.2</id>
<link rel='self' href='http://git.cetero.st/cgit/atom/cgit.c?h=v0.9.2'/>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/'/>
<updated>2013-05-26T14:30:03Z</updated>
<entry>
<title>readme: use string_list instead of space deliminations</title>
<updated>2013-05-26T14:30:03Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-05-26T13:20:02Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=dcbc0438b2543a733858d62170f3110a89edbed6'/>
<id>urn:sha1:dcbc0438b2543a733858d62170f3110a89edbed6</id>
<content type='text'>
Now this is possible in cgitrc -

readme=:README.md
readme=:readme.md
readme=:README.mkd
readme=:readme.mkd
readme=:README.rst
readme=:readme.rst
readme=:README.html
readme=:readme.html
readme=:README.htm
readme=:readme.htm
readme=:README.txt
readme=:readme.txt
readme=:README
readme=:readme
readme=:INSTALL.txt
readme=:install.txt
readme=:INSTALL
readme=:install

Suggested-by: John Keeping &lt;john@keeping.me.uk&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>readme: Accept multiple candidates and test them.</title>
<updated>2013-05-25T18:33:28Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-05-25T14:32:37Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=cd4c77d989983778432363061e99219f034c3717'/>
<id>urn:sha1:cd4c77d989983778432363061e99219f034c3717</id>
<content type='text'>
The readme variable may now contain multiple space deliminated entries,
which per usual are either a filepath or a git ref filepath. If multiple
are specified, cgit will now select the first one in the list that
exists. This is to make it easier to specify multiple default readme
types in the main cgitrc file and have them automatically get applied to
each repo based on what exists.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>ui-summary: Pass filename to about-filter</title>
<updated>2013-05-25T18:33:28Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-05-25T12:50:19Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=c0dfaf1c281d0697ce43131343d7a9f170a61ff9'/>
<id>urn:sha1:c0dfaf1c281d0697ce43131343d7a9f170a61ff9</id>
<content type='text'>
This gives the about-filter API the same semantics as source-filter,
where the filter receives the filename so it can decide what to do next
with it.

While we're at it, plug a memory leak.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>cgit.c: Do not reset HOME after unsetting it.</title>
<updated>2013-05-25T18:33:28Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-05-25T17:25:56Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=03eb76dfad2887127581f5f1b4e2edbe8c4ca5fe'/>
<id>urn:sha1:03eb76dfad2887127581f5f1b4e2edbe8c4ca5fe</id>
<content type='text'>
The number of odd cases in which git will try to read config is far too
great to keep putting a bandaid over each one, so we'll just unset it.

If it turns out that scripts really liked to know about $HOME, we can
always reset it in the filter forks.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>cgit.c: sync repo config printing with struct cgit_repo</title>
<updated>2013-05-25T12:07:10Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-05-25T12:05:06Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=5a4156ef951162d669e7170b440fad6e4c9e306f'/>
<id>urn:sha1:5a4156ef951162d669e7170b440fad6e4c9e306f</id>
<content type='text'>
We've now added quite a few config keys for repositories, but we've
forgotten to update the printing of it for cache files. Synchronize the
two.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>Add branch-sort and repo.branch-sort options.</title>
<updated>2013-04-10T12:48:26Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-04-08T14:57:12Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=389cc17357e2040c9542d3e085f64a8d2f085e9a'/>
<id>urn:sha1:389cc17357e2040c9542d3e085f64a8d2f085e9a</id>
<content type='text'>
When set to "name", branches are sorted by name, which is the current
default. When set to "age", branches are sorted by the age of the
repository.

This feature was requested by Konstantin Ryabitsev for use on
kernel.org.

Proposed-by: Konstantin Ryabitsev &lt;mricon@kernel.org&gt;
</content>
</entry>
<entry>
<title>cgit.c: Do not restore unset environment variables</title>
<updated>2013-04-10T11:46:30Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2013-04-10T10:30:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=8d8e84e72a24f474a6659ca04d0906723b2ac975'/>
<id>urn:sha1:8d8e84e72a24f474a6659ca04d0906723b2ac975</id>
<content type='text'>
getenv() returns a NULL pointer if the specified variable name cannot be
found in the environment. However, some setenv() implementations crash
if a NULL pointer is passed as second argument. Only restore variables
that are not NULL.

See commit d96d2c98ebc4c2d3765f5b35c4142e0e828a421b for a related patch.

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
</entry>
<entry>
<title>Do not load user or system gitconfig and gitattributes</title>
<updated>2013-04-08T19:43:26Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-04-08T19:12:19Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=8a92df033e974af6338b530a0d78d1bdb0b0f918'/>
<id>urn:sha1:8a92df033e974af6338b530a0d78d1bdb0b0f918</id>
<content type='text'>
While doing any kind of git loading, unset HOME variables and set
NOSYSTEM variables so that cgit does not load any settings that a user
may have set for his own /usr/bin/git usage.

This fixes a fatal error introduced with git 1.8, whereupon git would
fatally exit when failing to access particular files.

The result of this is that only repo-local configuration files are
accessed:

zx2c4@thinkpad ~/Projects/cgit $ HOME=/root QUERY_STRING="url=foo/log"
CGIT_CONFIG=tests/trash/cgitrc strace -e access ./cgit &gt;/dev/null
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
access("repos/foo/.git/objects", X_OK) = 0
access("repos/foo/.git/refs", X_OK) = 0
access("repos/foo/.git/config", R_OK) = 0
access("repos/foo/.git/config", R_OK) = 0
access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0
access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0
access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0
access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0
+++ exited with 0 +++

Reported-by: Ferry Huberts &lt;ferry.huberts@pelagic.nl&gt;
Tested-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
Tested-by: Ferry Huberts &lt;ferry.huberts@pelagic.nl&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>use struct strbuf instead of static buffers</title>
<updated>2013-04-08T14:12:52Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-04-06T09:28:57Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=fb3655df3bf85bd405c5921bbd4b3a54c705c839'/>
<id>urn:sha1:fb3655df3bf85bd405c5921bbd4b3a54c705c839</id>
<content type='text'>
Use "struct strbuf" from Git to remove the limit on file path length.

Notes on scan-tree:
This is slightly involved since I decided to pass the strbuf into
add_repo() and modify if whenever a new file name is required, which
should avoid any extra allocations within that function.  The pattern
there is to append the filename, use it and then reset the buffer to its
original length (retaining a trailing '/').

Notes on ui-snapshot:
Since write_archive modifies the argv array passed to it we
copy the argv_array values into a new array of char* and then free the
original argv_array structure and the new array without worrying about
what the values now look like.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
<entry>
<title>Convert cgit_print_error to a variadic function</title>
<updated>2013-04-08T14:11:29Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-04-06T10:23:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=ed5bd30ebe6921dd22948a3f33a314283f043606'/>
<id>urn:sha1:ed5bd30ebe6921dd22948a3f33a314283f043606</id>
<content type='text'>
This removes many uses of "fmt" which uses a fixed size static pool of
fixed size buffers.  Instead of relying on these, we now pass around
argument lists for as long as possible before using a strbuf to render
content of an arbitrary size.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
</feed>
