10 years agoMerge branch 'stylesheet'
Chris Han []
Merge branch 'stylesheet'

10 years agoRemove a few generic styles
Chris Han []
Remove a few generic styles

10 years agoFix crashes in tag commit load
Chris Han []
Fix crashes in tag commit load

10 years agoDon't load tag data if we want the commit and it's already been set
Chris Han []
Don't load tag data if we want the commit and it's already been set

10 years agoUse count parameter on head/tag list
Chris Han []
Use count parameter on head/tag list

10 years agoStore refs as separate tag and head collections again
Chris Han []
Store refs as separate tag and head collections again

This avoids having to call instanceof on the objects over and over

10 years agoImprove performance of tag listing
Chris Han []
Improve performance of tag listing

This changes the tag / head list functions GetTags and GetHeads to use
for-each-ref to let git do the age sorting internally (which is much
faster) and changes them to build off of the data already loaded by the
main ref list loading function

10 years agoUse a shared ref ref list for finding a commit's tags and heads
Chris Han []
Use a shared ref ref list for finding a commit's tags and heads

This uses a new function to just load all refs without any accompanying
data, which we use to find the heads or refs for a given commit. Since
when displaying ref badges we only care about its type and name.

10 years agoClean up CSS stylesheets, split apart functional vs skin css
Chris Han []
Clean up CSS stylesheets, split apart functional vs skin css

10 years agoFix warning on blob page with mime type lookup turned off
Chris Han []
Fix warning on blob page with mime type lookup turned off

10 years agoRemove the commit containing tag from the cache
Chris Han []
Remove the commit containing tag from the cache

To be safe, you should clear your cache after taking this commit

Bug #65

10 years agoWrap javascript livesearch in a setTimeout
Chris Han []
Wrap javascript livesearch in a setTimeout

This will help when searching lots of projects - it waits until the user
stops typing before running the search, instead of looping through all
projects every letter the user presses - bug #72

This also attaches the search to the paste event, so pasting in the live
search field will trigger the search - bug #73

10 years agoAdd attribution and link to footer
Chris Han []
Add attribution and link to footer

Bug #66

10 years agoEscape html in the titlebar
Chris Han []
Escape html in the titlebar

10 years agoMake language setting cookie a permanent cookie
Chris Han []
Make language setting cookie a permanent cookie

While I know that you can set cookies up to the year 2038, I would
prefer to be a good citizen to the user's browser, so I'm capping
the lifetime at 1 year.

Bug #67

10 years agoDegrade gracefully when system doesn't have the posix functions installed, rather than erroring
Chris Han []
Degrade gracefully when system doesn't have the posix functions installed, rather than erroring

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

comments