Edgewall Software
Modify

Opened 18 years ago

Closed 18 years ago

#4968 closed enhancement (duplicate)

Multiple SVN Branches seems to break Trac

Reported by: wrochow@… Owned by: Christian Boos
Priority: normal Milestone:
Component: version control Version: 0.10.3
Severity: normal Keywords:
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description

We have been using Trac successfully for several months now. We are a small team, and just now started using Branches in SVN. One of our developers just created and committed code from a second concurrent branch in Subversion.

As soon as he did that, we can no longer access Trac. Cannot login, or access any of the services.

It would seem to me that if something breaks in one of the modules, the others should continue to work.

I will try synchronizing Subversion, and report back on my success, but I wanted to capture this Trackback.


Python Traceback

Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 387, in dispatch_request
    dispatcher.dispatch(req)
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 191, in dispatch
    chosen_handler = self._pre_process_request(req, chosen_handler)
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 263, in _pre_process_request
    chosen_handler = f.pre_process_request(req, chosen_handler)
  File "/usr/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 73, in pre_process_request
    self.get_repository(req.authname) # triggers a sync if applicable
  File "/usr/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 101, in get_repository
    repos = self._connector.get_repository(rtype, rdir, authname)
  File "/usr/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 260, in get_repository
    crepos = CachedRepository(self.env.get_db_cnx(), repos, None, self.log)
  File "/usr/lib/python2.4/site-packages/trac/versioncontrol/cache.py", line 34, in __init__
    self.sync()
  File "/usr/lib/python2.4/site-packages/trac/versioncontrol/cache.py", line 100, in sync
    (str(current_rev), path, kind, action,
  File "/usr/lib/python2.4/site-packages/trac/db/util.py", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File "/usr/lib/python2.4/site-packages/trac/db/sqlite_backend.py", line 56, in execute
    args or [])
  File "/usr/lib/python2.4/site-packages/trac/db/sqlite_backend.py", line 48, in _rollback_on_error
    return function(self, *args, **kwargs)
IntegrityError: columns rev, path, change_type are not unique

Attachments (0)

Change History (5)

comment:1 by wrochow@…, 18 years ago

Priority: normalhigh

Synchronizing Subversion had no effect.

I am unable to use Trac at all right now. Any advice regarding a work around… (perhaps shutting down the "Browse Source" or something) would be greatly appreciated.

Thanks, Waldo

comment:2 by wrochow@…, 18 years ago

Priority: highnormal
Type: defectenhancement

Fixed

The problem was solved by running trac-admin and resync.

Perhaps future versions of Trac might be able to detect this lack synchronization, and provide a more useful error message.

Keep up the good work!

Man, I just love this software!

Waldo

comment:3 by hyuga <hyugaricdeau@…>, 18 years ago

Hrm…what exactly do you mean when you started using branches in SVN?

Subversion doesn't have a built-in notion of a "branch" like CVS. Branching in SVN is just a copy operation on the tree you want to branch off from—Trac handles this fine so far as I've seen. This operation should update the revision number of the repository, so I'm not sure how you ended up with a duplicate key in the node_change table…

comment:4 by Christian Boos, 18 years ago

Component: generalversion control
Keywords: needinfo added
Owner: changed from Jonas Borgström to Christian Boos
Version: 0.10.3

Thanks for raising the attention on this ticket again: we once had a similar report that could be related to a subtle bug in the changeset code. In order to understand what's going on, we need the output of svn log -v -rXYZ where XYZ is the changeset that can't be synchronized (run a trac-admin $TRAC_ENV resync resync with the TracLogging set at DEBUG level).

comment:5 by Christian Boos, 18 years ago

Keywords: needinfo removed
Resolution: duplicate
Status: newclosed

Duplicate of #4586. This kind of issues are fixed in 0.10.4, please upgrade.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Christian Boos.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Christian Boos to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.