Extend changes.path and changes.from_path to support longer paths. #5771

Long paths to SCM files would be truncated or wouldn't insert into some
databases.  This extends those fields to support arbitrary length filenames.

Contributed by Holger Just

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3828 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Eric Davis 2010-07-06 02:07:46 +00:00
parent 48a5460da4
commit 56af944afa
5 changed files with 18 additions and 6 deletions

View File

@ -0,0 +1,11 @@
class ChangeChangesPathLengthLimit < ActiveRecord::Migration
def self.up
change_column :changes, :path, :text, :default => "", :null => false
change_column :changes, :from_path, :text
end
def self.down
change_column :changes, :path, :string, :default => "", :null => false
change_column :changes, :from_path, :string
end
end

Binary file not shown.

View File

@ -50,8 +50,9 @@ class RepositoriesGitControllerTest < ActionController::TestCase
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert_equal 6, assigns(:entries).size
assert_equal 7, assigns(:entries).size
assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'this_is_a_really_long_and_verbose_directory_name' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
assert assigns(:entries).detect {|e| e.name == 'copied_README' && e.kind == 'file'}

View File

@ -13,7 +13,7 @@ class GitAdapterTest < ActiveSupport::TestCase
end
def test_getting_all_revisions
assert_equal 12, @adapter.revisions('',nil,nil,:all => true).length
assert_equal 13, @adapter.revisions('',nil,nil,:all => true).length
end
def test_annotate

View File

@ -34,8 +34,8 @@ class RepositoryGitTest < ActiveSupport::TestCase
@repository.fetch_changesets
@repository.reload
assert_equal 12, @repository.changesets.count
assert_equal 21, @repository.changes.count
assert_equal 13, @repository.changesets.count
assert_equal 22, @repository.changes.count
commit = @repository.changesets.find(:first, :order => 'committed_on ASC')
assert_equal "Initial import.\nThe repository contains 3 files.", commit.comments
@ -57,10 +57,10 @@ class RepositoryGitTest < ActiveSupport::TestCase
# Remove the 3 latest changesets
@repository.changesets.find(:all, :order => 'committed_on DESC', :limit => 3).each(&:destroy)
@repository.reload
assert_equal 9, @repository.changesets.count
assert_equal 10, @repository.changesets.count
@repository.fetch_changesets
assert_equal 12, @repository.changesets.count
assert_equal 13, @repository.changesets.count
end
else
puts "Git test repository NOT FOUND. Skipping unit tests !!!"