Defect #2583
closedSubversion changeset import does not work reliably
0%
Description
Hey guys,
when running the command line changeset fetch script, it just aborts at some revision (Development.log snippet below). It's interesting that it works correctly for many projects, but at a certain project (deterministically) it always breaks.
My environment looks as following:
About your application's environment
Ruby version              1.8.6 (i386-freebsd6)
RubyGems version          1.0.1
Rails version             2.1.0
Active Record version     2.1.0
Action Pack version       2.1.0
Active Resource version   2.1.0
Action Mailer version     2.1.0
Active Support version    2.1.0
Application root          /var/rails/redmine_trunk
Environment               development
Database adapter          mysql
Database schema version   95
Shelling out: svn info --xml 'https://svn.typo3.org/TYPO3v4/Extensions/direct_mail/' --config-dir /tmp/.svntmp
  ESC[4;35;1mChangeset Load (0.002614)ESC[0m   ESC[0mSELECT * FROM `changesets` WHERE (`changesets`.repository_id = 234) ORDER BY changesets.committed_on DESC, changesets.id DESC LIMIT 1ESC[0m
Shelling out: svn info --xml 'https://svn.typo3.org/TYPO3v4/Extensions/julle_events/' --config-dir /tmp/.svntmp
  ESC[4;36;1mChangeset Load (0.000985)ESC[0m   ESC[0;1mSELECT * FROM `changesets` WHERE (`changesets`.repository_id = 235) ORDER BY changesets.committed_on DESC, changesets.id DESC LIMIT 1ESC[0m
Fetching changesets for repository https://svn.typo3.org/TYPO3v4/Extensions/julle_events
Shelling out: svn log --xml -r 786:781 --config-dir /tmp/.svntmp --verbose  'https://svn.typo3.org/TYPO3v4/Extensions/julle_events/'
  ESC[4;35;1mSQL (0.000121)ESC[0m   ESC[0mBEGINESC[0m
  ESC[4;36;1mSQL (0.000280)ESC[0m   ESC[0;1mSELECT `revision` FROM `changesets` WHERE (`changesets`.revision = '781' AND `changesets`.repository_id = 235) ESC[0m
  ESC[4;35;1mChange Columns (0.000935)ESC[0m   ESC[0mSHOW FIELDS FROM `changes`ESC[0m
  ESC[4;36;1mSQL (0.000280)ESC[0m   ESC[0;1mSELECT `revision` FROM `changesets` WHERE (`changesets`.revision = '781' AND `changesets`.repository_id = 235) ESC[0m
  ESC[4;35;1mChange Create (0.000000)ESC[0m   ESC[0mMysql::Error: Column 'changeset_id' cannot be null: INSERT INTO `changes` (`changeset_id`, `action`, `revision`, `branch`, `from_path`, `path`, `from_revision`) VALUESESC[0m
  ESC[4;36;1mSQL (0.000074)ESC[0m   ESC[0;1mROLLBACKESC[0m
Do you have any idea how to locate the error?
Thanks for your great work,
Sebastian
      
      Updated by Jean-Philippe Lang almost 17 years ago
      
    
    Can you try this patch?
Index: app/models/repository/subversion.rb
===================================================================
--- app/models/repository/subversion.rb    (revision 2326)
+++ app/models/repository/subversion.rb    (working copy)
@@ -68,7 +68,7 @@
                               :path => change[:path],
                               :from_path => change[:from_path],
                               :from_revision => change[:from_revision])
-              end
+              end unless changeset.new_record?
             end
           end unless revisions.nil?
           identifier_from = identifier_to + 1
	I'm also interested to get an extract from your changesets table (eg. SELECT * FROM changesets WHERE revision LIKE '7%').
      
      Updated by Sebastian Kurfuerst over 16 years ago
      
    
    Hey Jean-Philippe,
the above patch seems to solve our problem! I hope it goes into redmine trunk :-)
Thanks for your great work,
Sebastian
      
      Updated by Jean-Philippe Lang over 16 years ago
      
    
    - Category set to SCM
 - Status changed from New to Resolved
 - Target version set to 0.8.3
 - Resolution set to Fixed
 
Committed in r2563.
      
      Updated by Jean-Philippe Lang over 16 years ago
      
    
    - Status changed from Resolved to Closed
 
Committed in 0.8-stable in r2650.