Modify

Opened 8 years ago

Closed 4 years ago

#1040 closed enhancement (fixed)

support for multiple repos

Reported by: toon.verstraelen@… Owned by: hvr
Priority: high Component: GitPlugin
Severity: minor Keywords:
Cc: tolsen Trac Release: 0.12

Description

Hi, I'm currently trying the git plugin for the first time. Is it possible to include multiple git repositories? Will it ever be possible? I have this situation:

/var/git/project1.git
/var/git/project2.git
/var/git/project3.git

but it would be convenient to have one trac site for all these projects. Is this a good idea?

Attachments (1)

trac-gitplugin-fix-changeset-error.patch (2.7 KB) - added by anonymous 5 years ago.
Fix changeset error and make it work on the multirepo branch

Download all attachments as: .zip

Change History (25)

comment:1 follow-up: Changed 7 years ago by anonymous

  • Priority changed from low to high

It would seem this project supports multiple repos:

http://dev.laptop.org/git.do?p=projects/trac-git;a=summary

comment:2 follow-up: Changed 6 years ago by hvr

if you want to have multiple repostories per Trac environment, you'll have to wait for
trac:MultipleRepositorySupport

for now you have to create one Trac environment per git repository...

comment:3 in reply to: ↑ 1 Changed 6 years ago by olaf.meeuwissen@…

Replying to anonymous:

It would seem this project supports multiple repos:

http://dev.laptop.org/git.do?p=projects/trac-git;a=summary

Apart from that link now being apparently broken, they seem to be using the GitwebPlugin.

comment:4 in reply to: ↑ 2 ; follow-up: Changed 6 years ago by olaf.meeuwissen@…

Replying to hvr:

if you want to have multiple repostories per Trac environment, you'll have to wait for
trac:MultipleRepositorySupport

for now you have to create one Trac environment per git repository...

What about combining your git repositories in a super-repository using submodules? Would that work? See http://git.or.cz/gitwiki/GitSubmoduleTutorial for details on setting up a super-repository.

comment:5 in reply to: ↑ 4 ; follow-up: Changed 6 years ago by hvr

Replying to olaf.meeuwissen@avasys.jp:

What about combining your git repositories in a super-repository using submodules? Would that work? See http://git.or.cz/gitwiki/GitSubmoduleTutorial for details on setting up a super-repository.

I doubt that GitPlugin right now properly supports submodules yet (I haven't tested it yet, and I expect issues)

comment:6 in reply to: ↑ 5 ; follow-up: Changed 6 years ago by anonymous

Replying to hvr:

Replying to olaf.meeuwissen@avasys.jp:

What about combining your git repositories in a super-repository using submodules? Would that work? See http://git.or.cz/gitwiki/GitSubmoduleTutorial for details on setting up a super-repository.

I doubt that GitPlugin right now properly supports submodules yet (I haven't tested it yet, and I expect issues)

indeed ,the error is

internal error (got unexpected object kind 'commit')

comment:7 Changed 6 years ago by tolsen

  • Cc tolsen added

comment:9 in reply to: ↑ 6 Changed 6 years ago by anonymous

This one works for me:
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html

Just some little drawbacks: The repository the subprojects are imported into must not be empty. I had to make an initial commit with a dummy file which also appears in the revision history.

comment:10 follow-up: Changed 5 years ago by anonymous

So, I tried using the MultipleRepos branch of .12 with git plugin. http://svn.edgewall.com/repos/trac/sandbox/multirepos

Everything works for the most part it seems (surprisingly), aside from when going to a changeset the links to the parent in the non-default repository tries to go to the repository path such as

Parents:    a2e0f4c40330a9e197bd44dce2f28c6ca059075f

Changed 5 years ago by anonymous

Fix changeset error and make it work on the multirepo branch

comment:11 in reply to: ↑ 10 ; follow-up: Changed 5 years ago by anonymous

  • Trac Release changed from 0.10 to 0.11

Above patch should fix the issue encountered in above comment.

Now gitplugin appears to work nicely with multiple repositories. :)

comment:12 Changed 5 years ago by lxsameer@…

hi , does that patch is for version 0.11 of trac or 0.12? and how can i use that? i mean what should i have in my trac.ini to use multi repo?

comment:13 Changed 5 years ago by jsimpson@…

+1 on the last comment

comment:14 in reply to: ↑ 11 Changed 5 years ago by anonymous

Replying to anonymous:

Above patch should fix the issue encountered in above comment.

Now gitplugin appears to work nicely with multiple repositories. :)

yep works very well here (Trac 0.12multirepos-r8245)

ty!

comment:15 Changed 5 years ago by Haw Loeung

I'm getting the following error against 0.12multirepos rev 8345.

 Trac detected an internal error:

AttributeError: components
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/web/main.py", line 467, in _dispatch_request
  dispatcher.dispatch(req)
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/web/main.py", line 212, in dispatch
  resp = chosen_handler.process_request(req)
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/versioncontrol/web_ui/browser.py", line 372, in process_request
  repo_data = self._render_repository_index(
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/versioncontrol/web_ui/browser.py", line 452, in _render_repository_index
  youngest = repos.get_changeset(repos.youngest_rev)
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/versioncontrol/api.py", line 712, in <lambda>
  youngest_rev = property(lambda x: x.get_youngest_rev())
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/versioncontrol/cache.py", line 312, in get_youngest_rev
  return self.metadata.get().get(CACHE_YOUNGEST_REV)
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/cache.py", line 106, in get
  return CacheManager(self.env).get(self.id, self.retriever, db)
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/core.py", line 150, in __new__
  self = compmgr.components.get(cls)
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/db/util.py", line 93, in __getattr__
  return getattr(self.cnx, name)
File "/usr/lib/python2.4/site-packages/Trac-0.12multirepos-py2.4.egg/trac/db/util.py", line 93, in __getattr__
  return getattr(self.cnx, name)
File "/usr/lib64/python2.4/site-packages/sqlite/main.py", line 580, in __getattr__
  raise AttributeError, key

I also get the following error when running resync

# trac-admin /data/projects/sysadmin/ repository resync "*"
Resyncing repository history for haw...
AttributeError: get_db_cnx
Traceback (most recent call last):
  File "/usr/lib64/python2.4/logging/__init__.py", line 737, in emit
    self.stream.write(fs % msg)
ValueError: I/O operation on closed file

Any ideas on how I could fix this up?

comment:16 Changed 5 years ago by Haw Loeung

Seems disabling cached_repository fixes my problems.

comment:17 Changed 5 years ago by cboos

Note that there's an upcoming API change on Trac:MultiRepos, we're going away from composite (reponame,id) for changeset and source resource and we will instead make them subresource of a Resource('repository', reponame) resource. See #T7706.

comment:18 Changed 5 years ago by cboos

  • Trac Release changed from 0.11 to 0.12

comment:19 Changed 4 years ago by anonymous

With Multirepos r9085 I get:

2010-01-27 17:24:07,698 Trac[chrome] ERROR: Error with navigation contributor BrowserModule: TypeError: 'NoneType' object is unsubscriptable

comment:20 follow-ups: Changed 4 years ago by cboos

Well, I guess a 0.12 branch of that plugin is really needed at this point...

comment:21 in reply to: ↑ 20 Changed 4 years ago by kevin

Replying to cboos:

Well, I guess a 0.12 branch of that plugin is really needed at this point...

I've started working on a port of this to 0.12 at http://github.com/lentil/trac-git-plugin.

Currently the cached_repository is still not working, but with that option disabled it seems to be OK. Feel free to pull this into a new 0.12 branch if that's any help.

comment:22 Changed 4 years ago by kevin

I went ahead and added a ticket with the above patch -- #6554. Hopefully it will be of some use.

Cheers,
Kevin

comment:23 in reply to: ↑ 20 Changed 4 years ago by anonymous

Replying to cboos:

Well, I guess a 0.12 branch of that plugin is really needed at this point...

there is now :-)

comment:24 follow-up: Changed 4 years ago by lkraav

i'd say this can be closed as fixed.

comment:25 in reply to: ↑ 24 Changed 4 years ago by hvr

  • Resolution set to fixed
  • Status changed from new to closed

Replying to lkraav:

i'd say this can be closed as fixed.

sounds fine to me :-)

Add Comment

Modify Ticket

Action
as closed .
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from hvr. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.