<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgit-70, branch v0.11.1</title>
<subtitle>a fork of cgit with a Gopher interface</subtitle>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/'/>
<entry>
<title>Bump version</title>
<updated>2015-03-05T14:58:28+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2015-03-05T14:58:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=198d84a9e30fa40872f09e618d8b97344287a376'/>
<id>198d84a9e30fa40872f09e618d8b97344287a376</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop return value from parse_user()</title>
<updated>2015-03-05T14:54:47+00:00</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2015-03-05T11:58:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=3cb8e762780cb4bd8dc9d330d549e36d65ad4335'/>
<id>3cb8e762780cb4bd8dc9d330d549e36d65ad4335</id>
<content type='text'>
In commit 936295c (Simplify commit and tag parsing, 2015-03-03), the
commit and tag parsing code was refactored. This broke tag messages in
ui-tag since the line after the tagger header was erroneously skipped.
Rework parse_user() and skip the line manually outside parse_user().

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In commit 936295c (Simplify commit and tag parsing, 2015-03-03), the
commit and tag parsing code was refactored. This broke tag messages in
ui-tag since the line after the tagger header was erroneously skipped.
Rework parse_user() and skip the line manually outside parse_user().

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove leading newline characters from tag messages</title>
<updated>2015-03-05T14:54:34+00:00</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2015-03-05T11:58:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=4d8ed337cb07121cdd6d0041565cf741a9be526a'/>
<id>4d8ed337cb07121cdd6d0041565cf741a9be526a</id>
<content type='text'>
Fixes a regression introduced in commit 936295c (Simplify commit and tag
parsing, 2015-03-03).

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes a regression introduced in commit 936295c (Simplify commit and tag
parsing, 2015-03-03).

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>simple-authentication.lua: tie secure cookies to field names</title>
<updated>2015-03-05T14:51:22+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2015-03-05T14:45:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=ecd6b7230c88deb23f880ee1df75ae4b230cf9ec'/>
<id>ecd6b7230c88deb23f880ee1df75ae4b230cf9ec</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>cgit: show clone URLs for empty repo</title>
<updated>2015-03-05T01:32:13+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2015-03-05T01:18:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=bd24832cd7a72117afb7fa785f4e6bfa4324bf30'/>
<id>bd24832cd7a72117afb7fa785f4e6bfa4324bf30</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>cache: use F_SETLK to avoid stale lock files</title>
<updated>2015-03-03T22:55:27+00:00</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2015-03-03T19:22:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=db9a70b159a107da29f88865d63ba14dd127556f'/>
<id>db9a70b159a107da29f88865d63ba14dd127556f</id>
<content type='text'>
If CGit is killed while it holds a lock on a cache slot (for example
because it is taking too long to generate a page), the lock file will be
left in place.  This prevents any future attempt to use the same slot
since it will fail to exclusively create the lock file.

Since CGit is the only program that should be manipulating lock files,
we can use advisory locking to detect whether another process is
actually using the lock file or if it is now stale.

I have confirmed that this works on Linux by setting a short TTL in a
custom cgitrc and running the following with CGit patched to print a
message to stderr if the fcntl(2) fails:

	$ export CGIT_CONFIG=$PWD/cgitrc
	$ export QUERY_STRING=url=cgit/tree/ui-shared.c
	$ ./cgit |
		grep -v -e '^&lt;div class=.footer.&gt;' \
			-e '^Last-Modified: ' \
			-e ^'Expires: ' &gt;expect
	$ seq 50000 | dd bs=8192 |
		parallel -j200 "diff -u expect &lt;(./cgit |
			grep -v -e '^&lt;div class=.footer.&gt;' \
				-e '^Last-Modified: ' \
				-e ^'Expires: ') || echo BAD"

This printed the fail message several times without ever printing "BAD".

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If CGit is killed while it holds a lock on a cache slot (for example
because it is taking too long to generate a page), the lock file will be
left in place.  This prevents any future attempt to use the same slot
since it will fail to exclusively create the lock file.

Since CGit is the only program that should be manipulating lock files,
we can use advisory locking to detect whether another process is
actually using the lock file or if it is now stale.

I have confirmed that this works on Linux by setting a short TTL in a
custom cgitrc and running the following with CGit patched to print a
message to stderr if the fcntl(2) fails:

	$ export CGIT_CONFIG=$PWD/cgitrc
	$ export QUERY_STRING=url=cgit/tree/ui-shared.c
	$ ./cgit |
		grep -v -e '^&lt;div class=.footer.&gt;' \
			-e '^Last-Modified: ' \
			-e ^'Expires: ' &gt;expect
	$ seq 50000 | dd bs=8192 |
		parallel -j200 "diff -u expect &lt;(./cgit |
			grep -v -e '^&lt;div class=.footer.&gt;' \
				-e '^Last-Modified: ' \
				-e ^'Expires: ') || echo BAD"

This printed the fail message several times without ever printing "BAD".

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make root handling sane again.</title>
<updated>2015-03-03T16:33:34+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2015-03-03T16:23:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=2e4a41e84029cbfa70c654fe5dfb35747f2dfbba'/>
<id>2e4a41e84029cbfa70c654fe5dfb35747f2dfbba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ui-shared: Add current url helper function.</title>
<updated>2015-03-03T16:18:42+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2015-03-03T16:18:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=6bcda2f73da605d48279341b1905c1b234a39368'/>
<id>6bcda2f73da605d48279341b1905c1b234a39368</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ui-shared: keep filter repolist page in pagination</title>
<updated>2015-03-03T16:13:52+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2015-03-03T16:13:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=db4b735464aa9a3a329494b7f042413a65e182f2'/>
<id>db4b735464aa9a3a329494b7f042413a65e182f2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ui-repolist: use ctx.qry.url instead of rooturl, in case we're filtering</title>
<updated>2015-03-03T16:06:48+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2015-03-03T16:06:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.katolaz.net/cgit-70/commit/?id=c3473e8a5d830fa0a2fc193eae8b30001a10871e'/>
<id>c3473e8a5d830fa0a2fc193eae8b30001a10871e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
