LocalUsernamesToLowerCase
=========================

NAME
----
LocalUsernamesToLowerCase - Convert the local username of every
account to lower case

SYNOPSIS
--------
--
'java' -jar gerrit.war 'LocalUsernamesToLowerCase' -d <SITE_PATH>
--

DESCRIPTION
-----------
Converts the local username for every account to lower case. The
local username is the username that is used to login into the Gerrit
WebUI.

This task is only intended to be run if the configuration parameter
link:config-gerrit.html#ldap.localUsernameToLowerCase[ldap.localUsernameToLowerCase]
was set to true to achieve case insensitive LDAP login to the Gerrit
WebUI.

Please be aware that the conversion of the local usernames to lower
case can't be undone.

The program will produce errors if there are accounts that have the
same local username, but with different case. In this case the local
username for these accounts is not converted to lower case.

This task can run in the background concurrently to the server if the
database is MySQL or PostgreSQL. If the database is H2, this task
must be run by itself.

OPTIONS
-------

-d::
--site-path::
	Location of the gerrit.config file, and all other per-site
	configuration data, supporting libraries and log files.

--threads::
	Number of threads to perform the scan work with.  Defaults to
	twice the number of CPUs available.

CONTEXT
-------
This command can only be run on a server which has direct
connectivity to the metadata database.

EXAMPLES
--------
To convert the local username of every account to lower case:

====
	$ java -jar gerrit.war LocalUsernamesToLowerCase -d site_path
====

See Also
--------

* Configuration parameter link:config-gerrit.html#ldap.localUsernameToLowerCase[ldap.localUsernameToLowerCase]

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
