Changes between Version 5 and Version 6 of TracRepositoryAdmin


Ignore:
Timestamp:
10/05/2023 07:15:55 AM (14 months ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracRepositoryAdmin

    v5 v6  
    44== Quick start #QuickStart
    55
     6Trac is primarily used as an issue tracking and project planning system, but can also be used to connect to and maintain source code repositories. This page describes the guidelines and caveats when connecting Trac to a repository.
    67 * Enable the repository connector(s) for the version control system(s) that you will use.
    78 * Add repositories through the //Repositories// admin page, using `trac-admin` or by editing the `[repositories]` section of [[wiki:TracIni#repositories-section|trac.ini]].
     
    1112== Enabling the components
    1213
    13 Support for version control systems is provided by optional components distributed with Trac, which are disabled by default //(since 1.0)//. Subversion and Git must be explicitly enabled if you wish to use them.
     14Support for version control systems is provided by optional components distributed with Trac, which are disabled by default. Subversion and Git must be explicitly enabled if you wish to use them.
    1415
    1516The version control systems can be enabled by adding the following to the `[components]` section of your [TracIni#components-section trac.ini], or enabling the components through the //Plugins// admin page.
     
    3940=== Repository Attributes
    4041
    41 There are a number of attributes that can be specified for each repository, and additional attributes may be available through plugins. A repository `name` and one of the `alias` or `dir` attributes are mandatory. All others are optional.
    42 
    43 The following attributes are supported:
     42A repository is defined through the attribute `name` and one of the `alias` or `dir` attributes, all other attributes are optional:
    4443
    4544||='''Attribute''' =||='''Description''' =||
     
    5150||The text specified in the `description` attribute is displayed below the top-level entry for the repository in the source browser. It supports WikiFormatting. ||
    5251||`dir` ||\
    53 ||The `dir` attribute specifies the location of the repository in the filesystem. The `alias` and `dir` attributes are mutually exclusive. ||
     52|| Specifies the location of the repository in the filesystem. The `alias` and `dir` attributes are mutually exclusive. ||
    5453||`hidden` ||\
    5554|| When set to `true`, the repository is hidden from the repository index page in the source browser. Browsing the repository is still possible, and links referencing the repository remain valid. ||
     55||`name` ||\
     56|| Identifies the version control system used by the repository. This field is mandatory. ||
    5657||`sync_per_request`||\
    5758|| When set to `true` the repository will be synchronized on every request (implicit synchronization). This is generally not recommended. See [#Synchronization repository synchronization] for a comparison of explicit and implicit synchronization. The attribute defaults to `false`. ||
    5859||`type` ||\
    59 || The `type` attribute specifies the version control system used by the repository. Trac provides support for Subversion and Git, and plugins add support for several other systems. If `type` is not specified, it defaults to the value of the `[versioncontrol]` [wiki:TracIni#versioncontrol-default_repository_type-option default_repository_type] option. ||
     60|| Specifies the version control system used by the repository. Trac provides support for Subversion and Git, and plugins add support for several other systems. If `type` is not specified, it defaults to the value of the `[versioncontrol]` [wiki:TracIni#versioncontrol-default_repository_type-option default_repository_type] option. ||
    6061||`url` ||\
    61 || The `url` attribute specifies the root URL to be used for checking out from the repository. When specified, a "Repository URL" link is added to the context navigation links in the source browser, that can be copied into the tool used for creating the working copy. ||
     62|| Specifies the root URL to be used for checking out from the repository. When specified, a "Repository URL" link is added to the context navigation links in the source browser, that can be copied into the tool used for creating the working copy. ||
     63
     64Additional attributes may be available through plugins.
    6265
    6366=== Scoped Repository
     
    9093
    9194 `repository set <repos> <key> <value>`::
    92    Set the attribute `<key>` to `<value>` for the repository `<repos>`. 
     95   Set the attribute `<key>` to `<value>` for the repository `<repos>`.
    9396
    9497Note that the default repository has an empty name, so it will need to be quoted when running `trac-admin` from a shell. Alternatively, the name `(default)` can be used instead, for example when running `trac-admin` in interactive mode.
     
    125128Caching improves the performance browsing the repository, viewing logs and viewing changesets. Cached repositories must be [#Synchronization synchronized], using either explicit or implicit synchronization. When searching changesets, only cached repositories are searched.
    126129
    127 Repositories that support caching are cached by default. The Subversion and Git backends support caching. The [trac:TracMercurial Mercurial plugin] does not yet support caching ([trac:#8417]). To disable caching, set the `cached` attribute to `false`.
     130The Subversion and Git backends support caching. The [trac:TracMercurial Mercurial plugin] does not yet support caching ([trac:#8417]). To disable caching, set the `cached` attribute to `false`.
    128131
    129132After adding a cached repository, the cache must be populated with the `trac-admin $ENV repository resync` command.
     
    160163Follow the help in the documentation header of the script to configure `trac-svn-hook`. You'll need to minimally set the `TRAC_ENV` variable, and may also need to set `TRAC_PATH` and `TRAC_LD_LIBRARY_PATH` for a non-standard installation or a virtual environment.
    161164
    162 Configuring the hook environment variables is even easier in Subversion 1.8 and later using the [http://svnbook.red-bean.com/en/1.8/svn.reposadmin.create.html#svn.reposadmin.hooks.configuration hook script environment] configuration. Rather than directly editing `trac-svn-hook` to set the environment variables, or exporting them from the hook that invokes `trac-svn-hook`, they can be configured through the repository `conf/hooks-env` file. 
     165Configuring the hook environment variables is even easier in Subversion 1.8 and later using the [http://svnbook.red-bean.com/en/1.8/svn.reposadmin.create.html#svn.reposadmin.hooks.configuration hook script environment] configuration. Rather than directly editing `trac-svn-hook` to set the environment variables, or exporting them from the hook that invokes `trac-svn-hook`, they can be configured through the repository `conf/hooks-env` file.
    163166
    164167Here is an example, using a Python virtual environment at `/usr/local/venv`:
     
    222225tracenv=/path/to/env  # set to your Trac environment's path
    223226repos=                # set to your repository's name
    224 REV=$(git rev-parse HEAD) 
     227REV=$(git rev-parse HEAD)
    225228trac-admin "$tracenv" changeset added "$repos" $REV
    226229}}}
     
    274277=== Git control files missing
    275278
    276 If your repository is not browseable and you find a message in the log that looks like:
     279If your repository is not browsable and you find a message in the log that looks like:
    277280{{{
    2782812017-08-08 10:49:17,339 Trac[PyGIT] ERROR: GIT control files missing in '/path/to/git-repository'
     
    280283}}}
    281284
    282 First check that the path to your repository is correct. If the path is correct, you may have a permission problem whereby the web server cannot access the repository. You can use Git to verify the repository. On a Debian-like Linux OS, the following command should help:
     285First check that the path to your repository is correct. If the path is correct, you may not have the permission to have the web server access the repository. You can use Git to verify the repository. On a Debian-like Linux OS, the following command should help:
    283286{{{#!sh
    284287$ sudo -u www-data git --git-dir=/path/to/git-repository fsck