From 5ed4b76c3ba93df1c87826b4d2c64415dff12056 Mon Sep 17 00:00:00 2001 From: Holger Just Date: Mon, 5 Jul 2010 22:55:58 +0200 Subject: [PATCH] Allow arbitrary length filenames in repositories (#5771) --- ...00705164950_change_changes_path_length_limit.rb | 11 +++++++++++ test/fixtures/repositories/git_repository.tar.gz | Bin 17716 -> 19452 bytes .../functional/repositories_git_controller_test.rb | 3 ++- .../lib/redmine/scm/adapters/git_adapter_test.rb | 2 +- test/unit/repository_git_test.rb | 8 ++++---- 5 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20100705164950_change_changes_path_length_limit.rb diff --git a/db/migrate/20100705164950_change_changes_path_length_limit.rb b/db/migrate/20100705164950_change_changes_path_length_limit.rb new file mode 100644 index 0000000..3e4fbdb --- /dev/null +++ b/db/migrate/20100705164950_change_changes_path_length_limit.rb @@ -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, :from_path, :string, :default => "", :null => false + change_column :changes, :from_path, :string + end +end diff --git a/test/fixtures/repositories/git_repository.tar.gz b/test/fixtures/repositories/git_repository.tar.gz index 48966da30bf58b5d804ee9b51deb0dcce9da4edb..8158d583244a12064c1d48d20eb64427d56d3159 100644 GIT binary patch literal 19452 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%0A>0n{OjKsIMt(ySXTBznrqD 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 literal 17716 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 true).length + assert_equal 13, @adapter.revisions('',nil,nil,:all => true).length end def test_annotate diff --git a/test/unit/repository_git_test.rb b/test/unit/repository_git_test.rb index 71b3e4d..dad5610 100644 --- a/test/unit/repository_git_test.rb +++ b/test/unit/repository_git_test.rb @@ -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 !!!" -- 1.7.1