10 years agoBump version to 0.2.2
Chris Han []
Bump version to 0.2.2

10 years agoExtract executable error messages into gettext
Chris Han []
Extract executable error messages into gettext

10 years agoMove the config value out of the error message string
Chris Han []
Move the config value out of the error message string

10 years agoShow an error message if the git or diff EXEs aren't working, bug #57
Chris Han []
Show an error message if the git or diff EXEs aren't working, bug #57

10 years agoTry to guess the right binary on a Windows x64 system
Chris Han []
Try to guess the right binary on a Windows x64 system

I really hate making use of php_uname especially because it's disabled
for security reasons on some shared hosting providers. However there
isn't really another reliable way - you can't just test the integer size
in PHP because the build of php might not match the operating system
word size itself (eg running 32bit php on 64bit windows).

10 years agoSplit diff executable access into its own wrapper class
Chris Han []
Split diff executable access into its own wrapper class

10 years agoUse system defined temp dir for diffs, bug #58
Chris Han []
Use system defined temp dir for diffs, bug #58

10 years agoBreak tmpdir handling out into its own class
Chris Han []
Break tmpdir handling out into its own class

10 years agogitweb.owner, if defined, should actually override the file owner
Chris Han []
gitweb.owner, if defined, should actually override the file owner

10 years agoAdded loading of owner from repository config file (gitweb.config).
Cory Thomas []
Added loading of owner from repository config file (gitweb.config).

Signed-off-by: Chris Han <xiphux@gmail.com>

10 years agoTurned clone/push url into link.
Cory Thomas []
Turned clone/push url into link.

Signed-off-by: Chris Han <xiphux@gmail.com>

10 years agoGerman translation
Andy Tandler []
German translation

Signed-off-by: Chris Han <xiphux@gmail.com>

10 years agoAdd utility script to minify javascripts
Chris Han []
Add utility script to minify javascripts

10 years agoAllow pages to use minified versions of javascript files if found
Chris Han []
Allow pages to use minified versions of javascript files if found

10 years agoMove javascript path and extension hardcodes out of controllers
Chris Han []
Move javascript path and extension hardcodes out of controllers

10 years agoTerminate javascript functions with semicolons
Chris Han []
Terminate javascript functions with semicolons

10 years agoMake sure to declare javascript variable so it's not global
Chris Han []
Make sure to declare javascript variable so it's not global

10 years agoRussian translation
Aidsoid []
Russian translation

Signed-off-by: Chris Han <xiphux@gmail.com>

10 years agoAdd phpdoc config file
Chris Han []
Add phpdoc config file

10 years agoFix resource header, add version header
Chris Han []
Fix resource header, add version header

10 years agoDocument memcache cache handler function
Chris Han []
Document memcache cache handler function

10 years agoFix up warnings/errors in phpdoc tags
Chris Han []
Fix up warnings/errors in phpdoc tags

10 years agoEscape for-each-ref format differently
Chris Han []
Escape for-each-ref format differently

10 years agoRight align tag links
Chris Han []
Right align tag links

10 years agoSmarter way of getting project age for caching and display
Chris Han []
Smarter way of getting project age for caching and display

10 years agoDocument objectcache option
Chris Han []
Document objectcache option

10 years agoSet a reasonable default for object cache, also use -1 for never expire to keep consistent with current cachelifetime config option
Chris Han []
Set a reasonable default for object cache, also use -1 for never expire to keep consistent with current cachelifetime config option

10 years agoCache tree object
Chris Han []
Cache tree object

10 years agoStart caching blob object (currently only blob file contents)
Chris Han []
Start caching blob object (currently only blob file contents)

10 years agoForgot to remove parent member variable after removing get/set
Chris Han []
Forgot to remove parent member variable after removing get/set

10 years agoRemove the in-memory tree and blob cache
Chris Han []
Remove the in-memory tree and blob cache

Tree and blob objects can't be reliably cached in-memory during runtime
because trees and blobs are hashes of their content, but the objects
also contain info such as parent commit and filename - something not
inherently tied to a blob hash. If the same blob or tree is used in two
different places for two different paths and loaded from the cache, the
second time will carry over the path and commit from the first, which is
incorrect data.
When these objects are enabled for the object cache, they'll have
fine-grained control over their serialization, so we can skip data like
these fields that shouldn't carry over to multiple instances.

10 years agoDon't completely replace parent GetHash, override and call base
Chris Han []
Don't completely replace parent GetHash, override and call base

10 years agoParent pointer for filesystem objects isn't actually used
Chris Han []
Parent pointer for filesystem objects isn't actually used

10 years agoObject cache support for tags
Chris Han []
Object cache support for tags

Also improves performance by not requiring the entire tag list to be
loaded if a single tag object is needed. The full list is loaded if all
tags are needed (and it doesn't reload already loaded tags).

10 years agoGive object cache its own lifetime in case you want to use a longer lifetime for it
Chris Han []
Give object cache its own lifetime in case you want to use a longer lifetime for it

10 years agoImplement object caching for commits
Chris Han []
Implement object caching for commits

I bent the serialization rules a little here. Git commit objects store
pointers to various other objects - other parent commits, the project,
the tree, etc. These references would be lost upon serialization.
Therefore, in the __sleep magic method to prepare for serialization, I
"reference" each object - I turn the object into a string identifier
that can be used to retrieve the object again later (for commits and
trees the hash, for the project the name, etc).
But the problem is that I can't "dereference" these objects in the
equivalent __wakeup method - if the commit points to the tree and the
tree points to the commit, then when you try to deserialize the commit
it'll try to deserialize the tree, which will then try to deserialize
the commit... which is an infinite loop.
Therefore, now these references actually remain in the object and are
just-in-time dereferenced when you want to actually access that
referenced object (using a getter). This also has the advantage of
easing the processing when loading from the cache, so that all the
object references aren't resolved at once, they're only resolved when
you need them.

10 years agoStart adding object cache class - framework for enhancement #39
Chris Han []
Start adding object cache class - framework for enhancement #39

10 years agoMerge branches 'projectsearch' and 'master'
Chris Han []
Merge branches 'projectsearch' and 'master'

10 years agoMake live project search case insensitive
Chris Han []
Make live project search case insensitive

10 years agoExtract strings
Chris Han []
Extract strings

10 years agoShow a message when no matching projects are found
Chris Han []
Show a message when no matching projects are found

10 years agoInitial implementation of javascript live project search
Chris Han []
Initial implementation of javascript live project search

10 years agoAdd search box to filter projects on the front project list page
Chris Han []
Add search box to filter projects on the front project list page

Enhancement #17

10 years agoSmarty's escape is too aggressive, the single quote escape is interfering with the example bug pattern
Chris Han []
Smarty's escape is too aggressive, the single quote escape is interfering with the example bug pattern

10 years agoAllow bug pattern/url to be overridden on a per-project basis
Chris Han []
Allow bug pattern/url to be overridden on a per-project basis

10 years agoDocument bug url config options
Chris Han []
Document bug url config options

10 years agoAlso put links on tag page
Chris Han []
Also put links on tag page

10 years agoBug linking support
Chris Han []
Bug linking support

This allows specification of a regex and url to find bug references in
commit messages, and allows them to be linked to an external bug
tracker. Currently this is just a very basic regex find and replace,
there's no advanced logic such as finding patterns that span lines, or
other preprocessing.
Currently this also only display in places where the full message text
is shown, and is not a link - the commit page, the commitdiff page, and
the log page. In the various other places where commit messages may be
shown (shortlog, headers, summary, etc), the message text is already a
link to the commit itself. Putting a link inside a link is weird
usability wise since that's not the way the user is expecting things to
behave.

Enhancement request #43

10 years agoExtract memcache error string
Chris Han []
Extract memcache error string

10 years agoFix expiration by age
Chris Han []
Fix expiration by age

10 years agoNote memcache requirements in config file
Chris Han []
Note memcache requirements in config file

10 years agoDocument memcache config option
Chris Han []
Document memcache config option

10 years agoAdd memcache cache handler function
Chris Han []
Add memcache cache handler function

There is an existing smarty memcache cache handler function out there,
however examples I've seen out there are incomplete in that they only
support evicting items from the cache using an exact key. However,
GitPHP takes advantage of some of the more advanced cache expiration
features of smarty, such as using cache groups and expiration based on
cache age.
Therefore this is an implementation done by me from scratch to support
these extra cache expiration mechanisms. Memcache doesn't inherently
support things like iterating over stored keys and getting the age of
a stored item. Therefore, I'm using a hack, where I maintain a mapping
table of stored keys and cache ages in a fixed key, and update that key
manually and use it for cache group or age expiration.
This also provides a memcache wrapper class to be able to transparently
support both the PECL Memcache and PECL Memcached extensions using the
same functions.

10 years agoMove tree loading spinner back to the right side of the tree link where it's supposed to be
Chris Han []
Move tree loading spinner back to the right side of the tree link where it's supposed to be

10 years agoOnly use expander indicators to drill down in tree
Chris Han []
Only use expander indicators to drill down in tree

10 years agoClean up tree JS a little
Chris Han []
Clean up tree JS a little

10 years agoPut top-level expander a little closer to the file name
Chris Han []
Put top-level expander a little closer to the file name

10 years agoIndent the expanders for nested folders
Chris Han []
Indent the expanders for nested folders

10 years agoStore depth as data
Chris Han []
Store depth as data

10 years agoMake expander indicator also a link to expand
Chris Han []
Make expander indicator also a link to expand

10 years agoRemember expansion state of subtrees when collapsing/expanding a tree
Chris Han []
Remember expansion state of subtrees when collapsing/expanding a tree

10 years agoMake sure expand indicator is correct for trees not loaded yet
Chris Han []
Make sure expand indicator is correct for trees not loaded yet

10 years agoAdd preliminary expander indicator (just text for now)
Chris Han []
Add preliminary expander indicator (just text for now)

10 years agoAdd loading spinner for tree
Chris Han []
Add loading spinner for tree

10 years agoRework js tree drilldown to just directly insert new rows instead of using nested tables, to fix issues with uneven table widths
Chris Han []
Rework js tree drilldown to just directly insert new rows instead of using nested tables, to fix issues with uneven table widths

10 years agoInitial implementation of javascript drilldown tree
Chris Han []
Initial implementation of javascript drilldown tree

10 years agoBreak tree list template out from main tree template
Chris Han []
Break tree list template out from main tree template

10 years agoOnly apply settings for non-legacy array
Chris Han []
Only apply settings for non-legacy array

10 years agoAdd project settings option to override individual settings for any project, regardless of the project list method used. Also use settings as terminology instead of override
Chris Han []
Add project settings option to override individual settings for any project, regardless of the project list method used. Also use settings as terminology instead of override

10 years agoMove project overriding into a function on the shared project list base
Chris Han []
Move project overriding into a function on the shared project list base

10 years agoIndex projects by their path in the project list object to make them easier to find
Chris Han []
Index projects by their path in the project list object to make them easier to find

10 years agoProject list expiration was using the wrong cache key
Chris Han []
Project list expiration was using the wrong cache key

10 years agoDon't require trailing slash for self url
Chris Han []
Don't require trailing slash for self url

10 years agoDon't require trailing slash for smarty/geshi includes
Chris Han []
Don't require trailing slash for smarty/geshi includes

10 years agoDon't require trailing slash for temp dir
Chris Han []
Don't require trailing slash for temp dir

10 years agoMove the code to add a slash into one place
Chris Han []
Move the code to add a slash into one place

10 years agoDon't require trailing slash for clone/push urls
Chris Han []
Don't require trailing slash for clone/push urls

10 years agoDon't require trailing slash for projectroot
Chris Han []
Don't require trailing slash for projectroot

10 years agoFix javascript reference to old tooltip function
Chris Han []
Fix javascript reference to old tooltip function

10 years agoAdd snapshot tooltip class to the rest of the snapshot links
Chris Han []
Add snapshot tooltip class to the rest of the snapshot links

10 years agoOrganize tooltip javascript a little better
Chris Han []
Organize tooltip javascript a little better

10 years agoAdd snapshot format selection popup
Chris Han []
Add snapshot format selection popup

10 years agoAdd static format functions to archiver
Chris Han []
Add static format functions to archiver

10 years agoAdd a parameter to the snapshot controller to request a specific snapshot format
Chris Han []
Add a parameter to the snapshot controller to request a specific snapshot format

10 years agoChange integer compression format constants to strings internally
Chris Han []
Change integer compression format constants to strings internally

10 years agoMake archiver into its own class
Chris Han []
Make archiver into its own class

This moves all archiver functions into a class to wrap around a commit.
This makes it a lot easier to share code, so we don't have to repeatedly
test everywhere if the gzip and bzip2 functions exist, and the
controller doesn't have to worry about things like compressing data.
Plus it gives a central place to add additional archiving related
functions.

10 years agoReturn HTTP 500 on configuration error
Chris Han []
Return HTTP 500 on configuration error

10 years agoAllow message exception to signal message controller to return an HTTP status code
Chris Han []
Allow message exception to signal message controller to return an HTTP status code

10 years agoExtract atom strings
Chris Han []
Extract atom strings

10 years agoPrevent a crash on an atom feed for an empty project
Chris Han []
Prevent a crash on an atom feed for an empty project

10 years agoCapitalize Atom
Chris Han []
Capitalize Atom

10 years agoSince we support both, no reason we can't provide both an rss and an atom button
Chris Han []
Since we support both, no reason we can't provide both an rss and an atom button

10 years agoMerge atom and rss controllers
Chris Han []
Merge atom and rss controllers

10 years agoadd support for atom feeds
Christian Weiske []
add support for atom feeds

10 years agoNo need to pull the projectroot from the config again in the project directory lister
Chris Han []
No need to pull the projectroot from the config again in the project directory lister

10 years agoHTML escape commit tooltip
Chris Han []
HTML escape commit tooltip

10 years agoBump version to 0.2.1
Chris Han []
Bump version to 0.2.1

10 years agoReadd a/ to source files in commit diffs
Chris Han []
Readd a/ to source files in commit diffs

10 years agoUpdate xgettext script to pull from function wrappers
Chris Han []
Update xgettext script to pull from function wrappers

10 years agoUse translation wrapper functions
Chris Han []
Use translation wrapper functions

comments