From dcef257d4fdbb2e0ff645bf0524cfca652e65ff0 Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Wed, 13 Dec 2006 02:06:29 +0100 Subject: Remove implementation details from README Let README describe the "bigger picture" instead. Signed-off-by: Lars Hjemli --- README | 87 ++++++++++++++++++++++++++---------------------------------------- 1 file changed, 34 insertions(+), 53 deletions(-) diff --git a/README b/README index 5917c37..010dd5c 100644 --- a/README +++ b/README @@ -1,54 +1,35 @@ -Cache algorithm -=============== - -Cgit normally returns cached pages when invoked. If there is no cache file, or -the cache file has expired, it is regenerated. Finally, the cache file is -printed on stdout. - -When it is decided that a cache file needs to be regenerated, an attempt is -made to create a corresponding lockfile. If this fails, the process gives up -and uses the expired cache file instead. - -When there is no cache file for a request, an attempt is made to create a -corresponding lockfile. If this fails, the process calls sched_yield(2) before -restarting the request handling. - -In pseudocode: - - name = generate_cache_name(request); -top: - if (!exists(name)) { - if (lock_cache(name)) { - generate_cache(request, name); - unlock_cache(name); - } else { - sched_yield(); - goto top; - } - } else if (expired(name)) { - if (lock_cache(name)) { - generate_cache(request, name); - unlock_cache(name); - } - } - print_file(name); - - -The following options can be set in /etc/cgitrc to control cache behaviour: - cache-root: root directory for cache files - cache-root-ttl: TTL for the repo listing page - cache-repo-ttl: TTL for any repos summary page - cache-dynamic-ttl: TTL for pages with symbolic references (not SHA1) - cache-static-ttl: TTL for pages with sha1 references - -TTL is specified in minutes, -1 meaning "infinite caching". - - -Naming of cache files ---------------------- -Repository listing: /index.html -Repository summary: //index.html -Repository subpage: ///.html - -The corresponding lock files have a ".lock" suffix. + cgit - cgi for git + + +This is an attempt to create a fast web interface for the git scm, using a +frontside cache to decrease server io-pressure. + +When cgit is invoked, it looks for a cached page matching the request. If no +such cachefile exist (or it has expired), it is (re)generated. Finally, the +cachefile is returned to the client. + +If the cachefile has expired, but cgit is unable to lock the cachefile, the +client will get the stale cachefile after all. This is done to favour page +throughput over page freshness. + +Also, when a cachefile is generated, a few cache-related http-headers are +created: "Modified" is set to current time(2), while "Expires" is set to +time(2) + * 60 (unless the TTL is negative, in which case it +is read as "60 * 60 * 24 * 365"). This is done to avoid repeated requests for +already visited pages. + +The following cache-related options can be set in /etc/cgitrc: + + cache-root= root directory for cache files + cache-root-ttl= TTL for the repo listing page + cache-repo-ttl= TTL for repo summary pages + cache-dynamic-ttl= TTL for pages with symbolic references + cache-static-ttl= TTL for pages with sha1 references + +The cachefiles are split into different directories, based on the requested +repository and page: + + Repo listing: /index.html + Repo summary: //index.html + Repo subpage: ///.html -- cgit 1.4.1 le='2020-02-12 21:31:09 -0500'>2020-02-12Add sandman wrapperJune McEnroe 2020-02-12Document scripts in READMEJune McEnroe 2020-02-12Add -N flag for notificationsJune McEnroe 2020-02-12Mark and unmark on uiHide, uiShowJune McEnroe 2020-02-12Hide debug prompt if buffer starts with /June McEnroe 2020-02-12Only exit on errorneous nick during registrationJune McEnroe 2020-02-12Add 378 to list of WHOIS responsesJune McEnroe It's the one (from freenode anyway) that tells you where you're connecting from. 2020-02-13Implement source address selectionmultiplexd This commit adds a '-S' command line option and a "bind" configuration file option to specify the source address to bind to when connecting to the IRC server. 2020-02-12Add /listJune McEnroe 2020-02-12Simplify transpose swapJune McEnroe 2020-02-12Add C-t transposeJune McEnroe Also in emacs, weechat. 2020-02-12Add C-v and M-vJune McEnroe I figure there should be some way to scroll without keypad, and apparently this is what emacs offers... 2020-02-12Allow for arguments to open/copy utilitiesJune McEnroe 2020-02-12Handle RPL_AWAYJune McEnroe 2020-02-11Support monochromatic terminalsJune McEnroe Oops, division by zero! 2020-02-11Add .gz to chroot-man scriptJune McEnroe 2020-02-11Add -R restricted flagJune McEnroe 2020-02-11Add chroot targetJune McEnroe 2020-02-11Exit focus and paste modes on err exitJune McEnroe 2020-02-11Add startup GPLv3 note and URLJune McEnroe I am a degenerate. 2020-02-11Make sure -D_GNU_SOURCE ends up in CFLAGS on LinuxJune McEnroe 2020-02-11Add note about setting PKG_CONFIG_PATHJune McEnroe 2020-02-11Rename query ID on nick changeJune McEnroe 2020-02-11Call completeClear when closing a windowJune McEnroe 2020-02-11Don't insert color codes for non-mentionsJune McEnroe 2020-02-11Take first two words in colorMentionsJune McEnroe This lets phrases like "hi june" get colored, but still doesn't get carried away. 2020-02-11Use time_t for save signatureJune McEnroe It's actually more likely to be 64-bit than size_t anyway, and it eliminates some helper functions. Also don't error when reading an empty save file. 2020-02-11Set self.nick to * initiallyJune McEnroe Allows removing a bunch of checks that self.nick is set, and it's what the server usually calls you before registration. Never highlight notices as mentions. 2020-02-11Define ColorCap instead of hardcoding 100June McEnroe 2020-02-11Move hash to top of chat.hJune McEnroe 2020-02-11Move base64 out of chat.hJune McEnroe 2020-02-11Move XDG_SUBDIR out of chat.hJune McEnroe 2020-02-11Fix whois idle unit calculationJune McEnroe Rookie mistake. 2020-02-11Cast towupper to wchar_tJune McEnroe For some reason it takes and returns wint_t... 2020-02-11Cast set but unused variables to voidJune McEnroe 2020-02-11Declare strlcatJune McEnroe 2020-02-11Check if VDSUSP existsJune McEnroe 2020-02-11Fix completeReplace iterationJune McEnroe 2020-02-11Use pkg(8) to configure on FreeBSDJune McEnroe 2020-02-11Remove legacy codeJune McEnroe 2020-02-11Add INSTALLING section to READMEJune McEnroe