Edgewall Software

Changes between Version 17 and Version 18 of MultipleRepositorySupport


Ignore:
Timestamp:
Mar 22, 2009, 4:50:55 PM (15 years ago)
Author:
Christian Boos
Comment:

various updates to the current status (support of cache)

Legend:

Unmodified
Added
Removed
Modified
  • MultipleRepositorySupport

    v17 v18  
    33This branch adds support for accessing multiple repositories inside one Trac project.
    44
    5 For now, there is support for the Mercurial (`hg`) and Subversion (`direct-svnfs`) type of repositories.
     5For now, there is support for the Mercurial (`hg`) and Subversion (both `svn` and `direct-svnfs` types of repositories).
    66
    77See:
     
    1313 - r6469: a few bug fixes
    1414 - r7590: that version was quite good
    15  - r7815: current version is still quite good ;-)
     15 - r7815: that version was also quite good ;-)
     16 - r7961: initial support for cached repositories
     17 - r7972: current version - should be "stable" (i.e. you can report bugs against that revision if you find some). Note that there's now support for cached repositories, and as this involved a schema change,  an '''environment upgrade''' is needed.
    1618
    1719The approach is quite simple: beyond repository connectors, there's now repository providers (IRepositoryProvider components) which are responsible for make available a list of named repositories. That name can be arbitrary (in particular, it may contain '/' to denote a pseudo-hierarchy) and will be used as a prefix for any repository path.
     
    2022If the only repository known is the default one (i.e. the one defined in TracIni, section `[trac] repository_...`), then Trac behaves exactly as before.
    2123But `IRepositoryProvider` components can make other repositories available. In particular, the default `RepositoryManager` itself provides a list of repositories listed in a new `[repositories]` section in TracIni. See r6447 for more details.
     24Since r7969, trac-admin gained some commands to manage list of repositories and their aliases, storing them in a dedicated table in the Trac database.
     25
     26Finally, repositories of type `svn` are now supported. This means there will be a ''cache'' created for each of those repositories. See MultipleRepositorySupport/Cache for details.
    2227
    2328== Installation (with mercurial) ==
     
    7479 - More [changeset:6448 IRepositoryProvider] components:
    7580   - !HgForestRepositoryProvider, for providing forest repositories and all sub-repositories managed by each forest
    76      - work-in-progress on http://hg.trbs.net
     81     - work-in-progress on http://hg.trbs.net ''(stalled)''
    7782     - in trac.conf use:
    7883{{{
     
    8893}}}
    8994   - !SvnParentDirRepositoryProvider, for listing all the Subversion repositories present in a given folder
    90  - currently, a "default" repository (the one defined in the `[trac]` section) ''needs'' to be defined, otherwise the versioncontrol modules are disabled [[span(class=important,FIXME)]]
     95 - ~~currently, a "default" repository (the one defined in the `[trac]` section) ''needs'' to be defined, otherwise the versioncontrol modules are disabled~~ r7972 - `repository_dir` entry needs simply to be present (can be empty)
    9196 - ~~fix AJAX query in annotate~~
    92  - IRepositoryProvider must have a way to signal new content, in order to rebuild the repository name cache - `trac-admin ... repository changeset`, see #7723.
     97 - IRepositoryProvider must have a way to signal new content, in order to rebuild the repository name cache - `trac-admin ... repository notify <repos> changeset_added <rev>`, see #7723.
    9398 - support the `.url` repository metadata (#1781)
    9499 - ~~ small issue: visual glitch in Firefox 2 for the new Rev column,
     
    100105   (only need to compare folders in a backend neutral way, we already do our own diff at the file level)
    101106 - extend to '''cached repositories''', see MultipleRepositorySupport/Cache and #7723 [[br]]
    102    In a first step, the existing cache could be adapted to simply handle more than one repository. [[br]]
     107   ~~In a first step, the existing cache could be adapted to simply handle more than one repository.~~ [[br]]
    103108   Bonus points if that cache is smart enough to handle multiple scoped repositories without data duplication. [[br]]
    104109   A second (much) more ambitious step would be to generalize the cache so that it can support other (d)vcs.
     
    119124> 3. I get a ''default'' in the ''Repository Index'', as well as that same repository listed in the previous single repository manner. I think that when the multiple repositories are listed, and one of them is the same as the trac repository_dir, it does not need to be listed twice or three times.
    120125
    121 Yes, known issue, currently it's not possible to get rid of the "default" repository, specified in `[trac]` (see [#TODO]).
     126Yes, known issue: (''verify'')
    122127 - one possibility would be to not list aliases (even aliases for the `[trac] repository_dir`). I think that's acceptable, but there should be an easy way to learn about the defined aliases, maybe they can be listed at the bottom of the toplevel page.
    123128 - OTOH, aliases might be defined simply because they are more convenient names than the "real" ones, so in the end, more flexibility is needed. Add a `.browseable` flag, a la Samba?
     
    127132
    128133=== Known Issues ===
    129 [[TicketQuery(keywords=~multirepos)]]
     134[[TicketQuery(group=status,keywords=~multirepos)]]
    130135
     136