From 78dc06a87f82ed19e3eebe1f16dc6c1bdaf5fbc5 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 31 Jan 2012 09:35:30 -0500
Subject: [PATCH] Merge pull request #6 from lemval/master

---
 distrib/gitblit.properties |  550 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 491 insertions(+), 59 deletions(-)

diff --git a/distrib/gitblit.properties b/distrib/gitblit.properties
index 2d55a58..17774a2 100644
--- a/distrib/gitblit.properties
+++ b/distrib/gitblit.properties
@@ -2,215 +2,647 @@
 # Git Servlet Settings
 #
 
-# Allow push/pull over http/https with JGit servlet
-# Changing this value requires a server restart.
-git.enableGitServlet = true
-
 # Base folder for repositories
-# Changing this value requires a server restart.
 # Use forward slashes even on Windows!!
 # e.g. c:/gitrepos
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 git.repositoriesFolder = git
-
-# Export all repositories
-# Changing this value requires a server restart.
-# if false, each exported repository must have a .git/git-daemon-export-ok file
-git.exportAll = true
 
 # Search the repositories folder subfolders for other repositories.
 # Repositories MAY NOT be nested (i.e. one repository within another)
 # but they may be grouped together in subfolders.
 # e.g. c:/gitrepos/libraries/mylibrary.git
 #      c:/gitrepos/libraries/myotherlibrary.git
+#
+# SINCE 0.5.0
 git.searchRepositoriesSubfolders = true
+
+# Allow push/pull over http/https with JGit servlet.
+# If you do NOT want to allow Git clients to clone/push to Gitblit set this
+# to false.  You might want to do this if you are only using ssh:// or git://.
+# If you set this false, consider changing the *web.otherUrls* setting to
+# indicate your clone/push urls.
+#
+# SINCE 0.5.0
+git.enableGitServlet = true
+
+#
+# Groovy Integration
+#
+
+# Location of Groovy scripts to use for Pre and Post receive hooks.
+# Use forward slashes even on Windows!!
+# e.g. c:/groovy
+#
+# RESTART REQUIRED
+# SINCE 0.8.0
+groovy.scriptsFolder = groovy
+
+# Scripts to execute on Pre-Receive.
+#
+# These scripts execute after an incoming push has been parsed and validated
+# but BEFORE the changes are applied to the repository.  You might reject a
+# push in this script based on the repository and branch the push is attempting
+# to change.
+#
+# Script names are case-sensitive on case-sensitive file systems.  You may omit
+# the traditional ".groovy" from this list if your file extension is ".groovy" 
+#
+# NOTE:
+# These scripts are only executed when pushing to *Gitblit*, not to other Git
+# tooling you may be using.  Also note that these scripts are shared between
+# repositories. These are NOT repository-specific scripts!  Within the script
+# you may customize the control-flow for a specific repository by checking the
+# *repository* variable.
+#
+# SPACE-DELIMITED
+# CASE-SENSITIVE
+# SINCE 0.8.0
+groovy.preReceiveScripts =
+
+# Scripts to execute on Post-Receive.
+#
+# These scripts execute AFTER an incoming push has been applied to a repository.
+# You might trigger a continuous-integration build here or send a notification.
+#
+# Script names are case-sensitive on case-sensitive file systems.  You may omit
+# the traditional ".groovy" from this list if your file extension is ".groovy" 
+#
+# NOTE:
+# These scripts are only executed when pushing to *Gitblit*, not to other Git
+# tooling you may be using.  Also note that these scripts are shared between
+# repositories. These are NOT repository-specific scripts!  Within the script
+# you may customize the control-flow for a specific repository by checking the
+# *repository* variable.
+# 
+# SPACE-DELIMITED
+# CASE-SENSITIVE
+# SINCE 0.8.0
+groovy.postReceiveScripts =
 
 #
 # Authentication Settings
 #
 
 # Require authentication to see everything but the admin pages
-# Changing this value requires a server restart.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 web.authenticateViewPages = false
 
 # Require admin authentication for the admin functions and pages
-# Changing this value requires a server restart.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 web.authenticateAdminPages = true
 
-# Simple user realm file to authenticate users
-# Changing this value requires a server restart.
-realm.realmFile = users.properties
+# Allow Gitblit to store a cookie in the user's browser for automatic
+# authentication.  The cookie is generated by the user service.
+#
+# SINCE 0.5.0
+web.allowCookieAuthentication = true
+
+# Either the full path to a user config file (users.conf)
+# OR the full path to a simple user properties file (users.properties)
+# OR a fully qualified class name that implements the IUserService interface.
+# Any custom implementation must have a public default constructor.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
+realm.userService = users.conf
 
 # How to store passwords.
-# Valid values are plain or md5.  Default is md5. 
+# Valid values are plain, md5, or combined-md5.  md5 is the hash of password.
+# combined-md5 is the hash of username.toLowerCase()+password.
+# Default is md5.
+#
+# SINCE 0.5.0 
 realm.passwordStorage = md5
 
 # Minimum valid length for a plain text password.
-# Default value is 5.  Absolute minimum is 4. 
+# Default value is 5.  Absolute minimum is 4.
+#
+# SINCE 0.5.0 
 realm.minPasswordLength = 5
 
 #
 # Gitblit Web Settings
 #
 # If blank Gitblit is displayed.
+#
+# SINCE 0.5.0
 web.siteName =
 
-# If web.authenticateAdminPages=true, users with "admin" role can create
+# If *web.authenticateAdminPages*=true, users with "admin" role can create
 # repositories, create users, and edit repository metadata.
 #
-# If web.authenticateAdminPages=false, any user can execute the aforementioned
-# functions.  
+# If *web.authenticateAdminPages*=false, any user can execute the aforementioned
+# functions. 
+#
+# SINCE 0.5.0 
 web.allowAdministration = true
 
-# Allow dyanamic zip downloads.   
+# Allows rpc clients to list repositories and possibly manage or administer the 
+# Gitblit server, if the authenticated account has administrator permissions.
+# See *web.enableRpcManagement* and *web.enableRpcAdministration*.
+#
+# SINCE 0.7.0 
+web.enableRpcServlet = true
+
+# Allows rpc clients to manage repositories and users of the Gitblit instance,
+# if the authenticated account has administrator permissions.
+# Requires *web.enableRpcServlet=true*.
+#
+# SINCE 0.7.0 
+web.enableRpcManagement = false
+
+# Allows rpc clients to control the server settings and monitor the health of this
+# this Gitblit instance, if the authenticated account has administrator permissions.
+# Requires *web.enableRpcServlet=true* and *web.enableRpcManagement*.
+#
+# SINCE 0.7.0 
+web.enableRpcAdministration = false
+
+# Allow Gravatar images to be displayed in Gitblit pages.
+#
+# SINCE 0.8.0
+web.allowGravatar = true
+
+# Allow dynamic zip downloads.
+#
+# SINCE 0.5.0   
 web.allowZipDownloads = true
 
-# Default number of entries to include in RSS/Atom Syndication links
+# Use Clippy (Flash solution) to provide a copy-to-clipboard button.
+# If false, a button with a more primitive JavaScript-based prompt box will
+# offer a 3-step (click, ctrl+c, enter) copy-to-clipboard alternative.
+#
+# SINCE 0.8.0
+web.allowFlashCopyToClipboard = true
+
+# Default number of entries to include in RSS Syndication links
+#
+# SINCE 0.5.0
 web.syndicationEntries = 25
 
-# This is the message display above the repositories table.
+# Show the size of each repository on the repositories page.
+# This requires recursive traversal of each repository folder.  This may be
+# non-performant on some operating systems and/or filesystems. 
+#
+# SINCE 0.5.2
+web.showRepositorySizes = true
+
+# List of custom regex expressions that can be displayed in the Filters menu
+# of the Repositories and Activity pages.  Keep them very simple because you
+# are likely to run into encoding issues if they are too complex.
+#
+# Use !!! to separate the filters 
+#
+# SINCE 0.8.0
+web.customFilters =
+
+# Show federation registrations (without token) and the current pull status
+# to non-administrator users. 
+#
+# SINCE 0.6.0
+web.showFederationRegistrations = false
+
+# This is the message displayed when *web.authenticateViewPages=true*.
+# This can point to a file with Markdown content.
+# Specifying "gitblit" uses the internal login message.
+#
+# SINCE 0.7.0
+web.loginMessage = gitblit
+
+# This is the message displayed above the repositories table.
 # This can point to a file with Markdown content.
 # Specifying "gitblit" uses the internal welcome message.
+#
+# SINCE 0.5.0
 web.repositoriesMessage = gitblit
 
 # Use the client timezone when formatting dates.
-# This uses AJAX to determine the browser's timezone.
-# Changing this value requires a server restart.
+# This uses AJAX to determine the browser's timezone and may require more
+# server overhead because a Wicket session is created.  All Gitblit pages
+# attempt to be stateless, if possible.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 web.useClientTimezone = false
 
-# Date and Time formats
-# http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
+# Time format
+# <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html>
+#
+# SINCE 0.8.0
+web.timeFormat = HH:mm
+
+# Short date format
+# <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html>
+#
+# SINCE 0.5.0
 web.datestampShortFormat = yyyy-MM-dd
+
+# Long date format
+#
+# SINCE 0.8.0
+web.datestampLongFormat = EEEE, MMMM d, yyyy
+
+# Long timestamp format
+# <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html>
+#
+# SINCE 0.5.0
 web.datetimestampLongFormat = EEEE, MMMM d, yyyy h:mm a z
+
+# Mount URL parameters
+# This setting controls if pretty or parameter URLs are used.
+# i.e.
+# if true:
+#     http://localhost/commit/myrepo/abcdef
+# if false:
+#     http://localhost/commit/?r=myrepo&h=abcdef
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
+web.mountParameters = true
+
+# Some servlet containers (e.g. Tomcat >= 6.0.10) disallow '/' (%2F) encoding
+# in URLs as a security precaution for proxies.  This setting tells Gitblit
+# to preemptively replace '/' with '*' or '!' for url string parameters.
+#
+# <https://issues.apache.org/jira/browse/WICKET-1303>
+# <http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10>
+# Add *org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to *CATALINA_OPTS*
+#
+# SINCE 0.5.2
+web.forwardSlashCharacter = /
 
 # Show other URLs on the summary page for accessing your git repositories
 # Use spaces to separate urls. {0} is the token for the repository name.
 # e.g.
 # web.otherUrls = ssh://localhost/git/{0} git://localhost/git/{0}
+#
+# SINCE 0.5.0
 web.otherUrls = 
 
 # Choose how to present the repositories list.
 #   grouped = group nested/subfolder repositories together (no sorting)
 #   flat = flat list of repositories (sorting allowed)
+#
+# SINCE 0.5.0
 web.repositoryListType = grouped
 
 # If using a grouped repository list and there are repositories at the
 # root level of your repositories folder, you may specify the displayed
 # group name with this setting.  This value is only used for web presentation.
+#
+# SINCE 0.5.0
 web.repositoryRootGroupName = main
 
+# Display the repository swatch color next to the repository name link in the 
+# repositories list. 
+#
+# SINCE 0.8.0
+web.repositoryListSwatches = true
+
 # Choose the diff presentation style: gitblt, gitweb, or plain
+#
+# SINCE 0.5.0
 web.diffStyle = gitblit
 
 # Control if email addresses are shown in web ui
+#
+# SINCE 0.5.0
 web.showEmailAddresses = true
 
 # Shows a combobox in the page links header with commit, committer, and author
 # search selection.  Default search is commit.
+#
+# SINCE 0.5.0
 web.showSearchTypeSelection = false
 
 # Generates a line graph of repository activity over time on the Summary page.
-# This uses the Google Charts API. 
+# This uses the Google Charts API.
+#
+# SINCE 0.5.0 
 web.generateActivityGraph = true
+
+# The number of days to show on the activity page.
+# Value must exceed 0 else default of 14 is used
+#
+# SINCE 0.8.0
+web.activityDuration = 14
 
 # The number of commits to display on the summary page
 # Value must exceed 0 else default of 20 is used
+#
+# SINCE 0.5.0
 web.summaryCommitCount = 16
 
-# The number of tags/heads to display on the summary page
-# Value must exceed 0 else default of 5 is used
+# The number of tags/branches to display on the summary page.
+# -1 = all tags/branches
+# 0 = hide tags/branches
+# N = N tags/branches
+#
+# SINCE 0.5.0
 web.summaryRefsCount = 5
 
 # The number of items to show on a page before showing the first, prev, next
 # pagination links.  A default if 50 is used for any invalid value.
+#
+# SINCE 0.5.0
 web.itemsPerPage = 50
 
 # Registered extensions for google-code-prettify
-# (case-insensitive)
+#
+# SPACE-DELIMITED
+# SINCE 0.5.0
 web.prettyPrintExtensions = c cpp cs css htm html java js php pl prefs properties py rb sh sql xml vb
 
 # Registered extensions for markdown transformation
-# (CASE-SENSITIVE)
+#
+# SPACE-DELIMITED
+# CASE-SENSITIVE
+# SINCE 0.5.0
 web.markdownExtensions = md mkd markdown MD MKD
 
 # Image extensions
-# (case-insensitive)
+#
+# SPACE-DELIMITED
+# SINCE 0.5.0
 web.imageExtensions = bmp jpg gif png 
 
 # Registered extensions for binary blobs
-# (case-insensitive)
+#
+# SPACE-DELIMITED
+# SINCE 0.5.0
 web.binaryExtensions = jar pdf tar.gz zip
 
 # Aggressive heap management will run the garbage collector on every generated
 # page.  This slows down page generation a little but improves heap consumption. 
-web.aggressiveHeapManagement = true
+#
+# SINCE 0.5.0
+web.aggressiveHeapManagement = false
 
 # Run the webapp in debug mode
-# Changing this value requires a server restart.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 web.debugMode = false
 
 # Enable/disable global regex substitutions (i.e. shared across repositories)
+#
+# SINCE 0.5.0
 regex.global = true
 
 # Example global regex substitutions
 # Use !!! to separate the search pattern and the replace pattern
 # searchpattern!!!replacepattern
-#regex.global.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://somehost/bug/$3">Bug-Id: $3</a>
-#regex.global.changeid = \\b(Change-Id:\\s*)([A-Za-z0-9]*)\\b!!!<a href="http://somehost/changeid/$2">Change-Id: $2</a>
+# SINCE 0.5.0
+regex.global.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://somehost/bug/$3">Bug-Id: $3</a>
+# SINCE 0.5.0
+regex.global.changeid = \\b(Change-Id:\\s*)([A-Za-z0-9]*)\\b!!!<a href="http://somehost/changeid/$2">Change-Id: $2</a>
 
 # Example per-repository regex substitutions overrides global
-#regex.myrepository.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://elsewhere/bug/$3">Bug-Id: $3</a>
+# SINCE 0.5.0
+regex.myrepository.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://elsewhere/bug/$3">Bug-Id: $3</a>
+
+#
+# Mail Settings
+# SINCE 0.6.0
+#
+# Mail settings are used to notify administrators of received federation proposals
+#
+
+# ip or hostname of smtp server
+#
+# SINCE 0.6.0
+mail.server =
+
+# port to use for smtp requests
+#
+# SINCE 0.6.0
+mail.port = 25
+
+# debug the mail executor
+#
+# SINCE 0.6.0
+mail.debug = false
+
+# if your smtp server requires authentication, supply the credentials here
+#
+# SINCE 0.6.0
+mail.username =
+# SINCE 0.6.0
+mail.password =
+
+# from address for generated emails
+#
+# SINCE 0.6.0
+mail.fromAddress = 
+
+# List of email addresses for the Gitblit administrators
+#
+# SPACE-DELIMITED
+# SINCE 0.6.0
+mail.adminAddresses = 
+
+# List of email addresses for sending push email notifications.
+#
+# This key currently requires use of the sendemail.groovy hook script.
+# If you set sendemail.groovy in *groovy.postReceiveScripts* then email
+# notifications for all repositories (regardless of access restrictions!)
+# will be sent to these addresses.
+#
+# SPACE-DELIMITED
+# SINCE 0.8.0
+mail.mailingLists =
+
+#
+# Federation Settings
+# SINCE 0.6.0
+#
+# A Gitblit federation is a way to backup one Gitblit instance to another.
+#
+# *git.enableGitServlet* must be true to use this feature.
+
+# Your federation name is used for federation status acknowledgments.  If it is
+# unset, and you elect to send a status acknowledgment, your Gitblit instance
+# will be identified by its hostname, if available, else your internal ip address.
+# The source Gitblit instance will also append your external IP address to your
+# identification to differentiate multiple pulling systems behind a single proxy.
+#
+# SINCE 0.6.0
+federation.name =
+
+# Specify the passphrase of this Gitblit instance.
+#
+# An unspecified (empty) passphrase disables processing federation requests.
+#
+# This value can be anything you want: an integer, a sentence, an haiku, etc.
+# Keep the value simple, though, to avoid Java properties file encoding issues.
+#
+# Changing your passphrase will break any registrations you have established with other
+# Gitblit instances.
+#
+# CASE-SENSITIVE
+# SINCE 0.6.0
+# RESTART REQUIRED *(only to enable or disable federation)*
+federation.passphrase =
+
+# Control whether or not this Gitblit instance can receive federation proposals
+# from another Gitblit instance.  Registering a federated Gitblit is a manual
+# process.  Proposals help to simplify that process by allowing a remote Gitblit
+# instance to send your Gitblit instance the federation pull data.
+#
+# SINCE 0.6.0
+federation.allowProposals = false
+
+# The destination folder for cached federation proposals.
+# Use forward slashes even on Windows!!
+#
+# SINCE 0.6.0
+federation.proposalsFolder = proposals
+
+# The default pull frequency if frequency is unspecified on a registration
+#
+# SINCE 0.6.0
+federation.defaultFrequency = 60 mins
+
+# Federation Sets are named groups of repositories.  The Federation Sets are 
+# available for selection in the repository settings page.  You can assign a
+# repository to one or more sets and then distribute the token for the set.
+# This allows you to grant federation pull access to a subset of your available
+# repositories.  Tokens for federation sets only grant repository pull access.
+#
+# SPACE-DELIMITED
+# CASE-SENSITIVE
+# SINCE 0.6.0
+federation.sets = 
+
+# Federation pull registrations
+# Registrations are read once, at startup.
+#
+# RESTART REQUIRED
+#
+# frequency:
+#   The shortest frequency allowed is every 5 minutes
+#   Decimal frequency values are cast to integers
+#   Frequency values may be specified in mins, hours, or days
+#   Values that can not be parsed or are unspecified default to *federation.defaultFrequency*
+#
+# folder:
+#   if unspecified, the folder is *git.repositoriesFolder*
+#   if specified, the folder is relative to *git.repositoriesFolder*
+#
+# bare:
+#   if true, each repository will be created as a *bare* repository and will not
+#   have a working directory.
+#
+#   if false, each repository will be created as a normal repository suitable
+#   for local work.
+#
+# mirror:
+#   if true, each repository HEAD is reset to *origin/master* after each pull.
+#   The repository will be flagged *isFrozen* after the initial clone.
+#
+#   if false, each repository HEAD will point to the FETCH_HEAD of the initial
+#   clone from the origin until pushed to or otherwise manipulated.
+#
+# mergeAccounts:
+#   if true, remote accounts and their permissions are merged into your 
+#   users.properties file 
+#
+# notifyOnError:
+#   if true and the mail configuration is properly set, administrators will be
+#   notified by email of pull failures
+#
+# include and exclude:
+#   Space-delimited list of repositories to include or exclude from pull
+#   may be * wildcard to include or exclude all
+#   may use fuzzy match (e.g. org.eclipse.*)
+
+#
+# (Nearly) Perfect Mirror example
+#
+
+#federation.example1.url = https://go.gitblit.com
+#federation.example1.token = 6f3b8a24bf970f17289b234284c94f43eb42f0e4
+#federation.example1.frequency = 120 mins
+#federation.example1.folder =
+#federation.example1.bare = true 
+#federation.example1.mirror = true 
+#federation.example1.mergeAccounts = true
 
 #
 # Server Settings
 #
-# Changing any of these values requires a server restart.
 
-# The temporary folder to decompress the gitblit webapp. 
+# The temporary folder to decompress the embedded gitblit webapp. 
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 server.tempFolder = temp
 
-# The common log4j logging pattern
-# http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html
-server.log4jPattern = %-5p %d{MM-dd HH:mm:ss.SSS}  %-20.20c{1}  %m%n
-
-# Alternatively, you may specify a logging pattern for your OS.
-# If the os pattern is blank, the common pattern is used.
-
-# This windows pattern fits (mostly) within the fixed bounds of a command prompt.
-server.log4jPattern.windows = %-5p %m%n
-
-server.log4jPattern.linux =
-
-
-#
-# Jetty Settings
-#
-
 # Use Jetty NIO connectors.  If false, Jetty Socket connectors will be used.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 server.useNio = true
 
+# Context path for the GO application.  You might want to change the context
+# path if running Gitblit behind a proxy layer such as mod_proxy.
+#
+# SINCE 0.7.0
+# RESTART REQUIRED
+server.contextPath = /
+
 # Standard http port to serve.  <= 0 disables this connector.
+# On Unix/Linux systems, ports < 1024 require root permissions.
+# Recommended value: 80 or 8080
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 server.httpPort = 0
 
 # Secure/SSL https port to serve. <= 0 disables this connector.
-server.httpsPort = 443
+# On Unix/Linux systems, ports < 1024 require root permissions.
+# Recommended value: 443 or 8443
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
+server.httpsPort = 8443
 
 # Specify the interface for Jetty to bind the standard connector.
 # You may specify an ip or an empty value to bind to all interfaces.
 # Specifying localhost will result in Gitblit ONLY listening to requests to
 # localhost.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 server.httpBindInterface = localhost
 
 # Specify the interface for Jetty to bind the secure connector.
 # You may specify an ip or an empty value to bind to all interfaces.
 # Specifying localhost will result in Gitblit ONLY listening to requests to
 # localhost.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 server.httpsBindInterface = localhost
 
 # Password for SSL keystore.
 # Keystore password and certificate password must match.
 # This is provided for convenience, its probably more secure to set this value
 # using the --storePassword command line parameter.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 server.storePassword = gitblit
 
 # Port for shutdown monitor to listen on.
+#
+# SINCE 0.5.0
+# RESTART REQUIRED
 server.shutdownPort = 8081

--
Gitblit v1.9.1