<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgit/ui-log.c, branch v0.10.2</title>
<subtitle>A hyperfast web frontend for git repositories written in C.</subtitle>
<id>http://git.cetero.st/cgit/atom/ui-log.c?h=v0.10.2</id>
<link rel='self' href='http://git.cetero.st/cgit/atom/ui-log.c?h=v0.10.2'/>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/'/>
<updated>2014-06-28T13:57:02Z</updated>
<entry>
<title>ui-log: ignore unhandled arguments</title>
<updated>2014-06-28T13:57:02Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2014-06-28T13:55:06Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=4046e8ef66225928a4f0d2cd71479e401faf7c3b'/>
<id>urn:sha1:4046e8ef66225928a4f0d2cd71479e401faf7c3b</id>
<content type='text'>
If you search for a bogus range string here:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/

Using something like "range" and "qwerty123456", it returns an "Internal
Server Error" and the following in the logs:

&gt; [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] fatal:
&gt; ambiguous argument 'qwerty123456': unknown revision or path not in the
&gt; working tree., referer:
&gt; http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
&gt; [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] Use '--' to
&gt; separate paths from revisions, like this:, referer:
&gt; http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
&gt; [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] 'git &lt;command&gt;
&gt; [&lt;revision&gt;...] -- [&lt;file&gt;...]', referer:
&gt; http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
&gt; [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] Premature end
&gt; of script headers: cgit, referer:
&gt; http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/

The cache will kick in, so if you search for the same string again,
it'll show an empty range, so you have to change the bogus strings each
time.

This is because we just pass the arguments straight to Git's revision
parsing machinery which die()s if it cannot parse an argument, printing
the above to stderr and exiting.

The patch below makes it a bit friendlier by just ignoring unhandled
arguments, but I can't see an easy way to report errors when we can't
parse revision arguments without losing the flexibility of supporting
all of the revision specifiers supported by Git.

Reported-by: Konstantin Ryabitsev &lt;mricon@kernel.org&gt;
</content>
</entry>
<entry>
<title>git: update for git 2.0</title>
<updated>2014-06-28T13:14:56Z</updated>
<author>
<name>Christian Hesse</name>
<email>mail@eworm.de</email>
</author>
<published>2014-05-29T15:35:46Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=79c985e13c10b498c3ea62f4607c2e2a460c3b10'/>
<id>urn:sha1:79c985e13c10b498c3ea62f4607c2e2a460c3b10</id>
<content type='text'>
prefixcmp() and suffixcmp() have been remove, functionality is now
provided by starts_with() and ends_with(). Retrurn values have been
changed, so instead of just renaming we have to fix logic.
Everything else looks just fine.
</content>
</entry>
<entry>
<title>filter: add page source to email filter</title>
<updated>2014-01-14T01:00:07Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T15:24:40Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=786609bd36c07b85dbf905fc8c36eba7132122d7'/>
<id>urn:sha1:786609bd36c07b85dbf905fc8c36eba7132122d7</id>
<content type='text'>
Since the email filter is called from lots of places, the script might
benefit from knowing the origin. That way it can modify its contents
and/or size depending.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>filter: add support for email filter</title>
<updated>2014-01-14T01:00:07Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T03:04:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=a5e15537268410e268c7b26aa69d03b347c326c8'/>
<id>urn:sha1:a5e15537268410e268c7b26aa69d03b347c326c8</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>Update copyright information</title>
<updated>2014-01-08T14:10:49Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@crytocrack.de</email>
</author>
<published>2014-01-08T14:10:49Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=f7f26f88755ac6a3b9af4918b51b0d6e7a692c78'/>
<id>urn:sha1:f7f26f88755ac6a3b9af4918b51b0d6e7a692c78</id>
<content type='text'>
* Name "cgit Development Team" as copyright holder to avoid listing
  every single developer.

* Update copyright ranges.

Signed-off-by: Lukas Fleischer &lt;cgit@crytocrack.de&gt;
</content>
</entry>
<entry>
<title>ui-log.c: Several simplifications</title>
<updated>2014-01-08T13:59:38Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2013-11-22T12:30:58Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=d76c438eada18cd3fd2980c9555f542cbe636479'/>
<id>urn:sha1:d76c438eada18cd3fd2980c9555f542cbe636479</id>
<content type='text'>
* Use argv_array_pushf() for inserting formatted strings.
* Remove unneeded static strings.
* Replace "if" by "else if" for readability and speed.

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
</entry>
<entry>
<title>Use argv_array in place of vector</title>
<updated>2014-01-08T13:59:38Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2013-11-22T12:24:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=9973ef0207d21535a05610ca50d9f45c7c56c758'/>
<id>urn:sha1:9973ef0207d21535a05610ca50d9f45c7c56c758</id>
<content type='text'>
Instead of using our own vector implementation, use argv_array from Git
which has been specifically designed for dynamic size argv arrays.

Drop vector.h and vector.c which are no longer needed.

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
</entry>
<entry>
<title>ui-log: add &lt;span/&gt; around commit decorations</title>
<updated>2013-05-22T10:53:06Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-05-18T14:54:49Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=927060c5d8d82a9422fc1dcf6d1379d21071b158'/>
<id>urn:sha1:927060c5d8d82a9422fc1dcf6d1379d21071b158</id>
<content type='text'>
This helps projects that have a large number of tags to display them all
using custom CSS.

The default stylesheet has not been updated since what is useful for
projects with a lot of tags is not the same as what is useful for
projects with only a small number of decorations per commit.

Suggested-by: Konstantin Ryabitsev &lt;mricon@kernel.org&gt;
Signed-off-by: John Keeping &lt;john@keeping.me.uk&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>
</feed>
