Changes between Version 17 and Version 18 of MultipleRepositorySupport
- Timestamp:
- Mar 22, 2009, 4:50:55 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MultipleRepositorySupport
v17 v18 3 3 This branch adds support for accessing multiple repositories inside one Trac project. 4 4 5 For now, there is support for the Mercurial (`hg`) and Subversion ( `direct-svnfs`) type of repositories.5 For now, there is support for the Mercurial (`hg`) and Subversion (both `svn` and `direct-svnfs` types of repositories). 6 6 7 7 See: … … 13 13 - r6469: a few bug fixes 14 14 - 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. 16 18 17 19 The 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. … … 20 22 If the only repository known is the default one (i.e. the one defined in TracIni, section `[trac] repository_...`), then Trac behaves exactly as before. 21 23 But `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. 24 Since 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 26 Finally, 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. 22 27 23 28 == Installation (with mercurial) == … … 74 79 - More [changeset:6448 IRepositoryProvider] components: 75 80 - !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)'' 77 82 - in trac.conf use: 78 83 {{{ … … 88 93 }}} 89 94 - !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) 91 96 - ~~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. 93 98 - support the `.url` repository metadata (#1781) 94 99 - ~~ small issue: visual glitch in Firefox 2 for the new Rev column, … … 100 105 (only need to compare folders in a backend neutral way, we already do our own diff at the file level) 101 106 - 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]] 103 108 Bonus points if that cache is smart enough to handle multiple scoped repositories without data duplication. [[br]] 104 109 A second (much) more ambitious step would be to generalize the cache so that it can support other (d)vcs. … … 119 124 > 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. 120 125 121 Yes, known issue , currently it's not possible to get rid of the "default" repository, specified in `[trac]` (see [#TODO]).126 Yes, known issue: (''verify'') 122 127 - 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. 123 128 - 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? … … 127 132 128 133 === Known Issues === 129 [[TicketQuery( keywords=~multirepos)]]134 [[TicketQuery(group=status,keywords=~multirepos)]] 130 135 136