diff --git a/app/models/repository/git.rb b/app/models/repository/git.rb index 0ebd866..63faea6 100644 --- a/app/models/repository/git.rb +++ b/app/models/repository/git.rb @@ -29,6 +29,10 @@ class Repository::Git < Repository 'Git' end + def repo_log_encoding + 'UTF-8' + end + # Returns the identifier for the given git changeset def self.changeset_identifier(changeset) changeset.scmid diff --git a/lib/redmine/scm/adapters/git_adapter.rb b/lib/redmine/scm/adapters/git_adapter.rb index 4d3ea59..6ad7426 100644 --- a/lib/redmine/scm/adapters/git_adapter.rb +++ b/lib/redmine/scm/adapters/git_adapter.rb @@ -129,7 +129,7 @@ module Redmine def lastrev(path, rev) return nil if path.nil? - cmd_args = %w|log --no-color --date=iso --pretty=fuller --no-merges -n 1| + cmd_args = %w|log --no-color --encoding=UTF-8 --date=iso --pretty=fuller --no-merges -n 1| cmd_args << rev if rev cmd_args << "--" << path unless path.empty? lines = [] @@ -157,7 +157,7 @@ module Redmine def revisions(path, identifier_from, identifier_to, options={}) revisions = Revisions.new - cmd_args = %w|log --no-color --raw --date=iso --pretty=fuller| + cmd_args = %w|log --no-color --encoding=UTF-8 --raw --date=iso --pretty=fuller| cmd_args << "--reverse" if options[:reverse] cmd_args << "--all" if options[:all] cmd_args << "-n" << "#{options[:limit].to_i}" if options[:limit] diff --git a/test/fixtures/repositories/git_repository.tar.gz b/test/fixtures/repositories/git_repository.tar.gz index 58b4df5fdb0c97b8a3f06b48f44eb33032cd3899..48c8027c86c7f9850658aadfff118e0102557f22 100644 GIT binary patch literal 15432 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 literal 20730 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≻ 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 true).length + assert_equal 16, @adapter.revisions('',nil,nil,:all => true).length end def test_getting_certain_revisions diff --git a/test/unit/repository_git_test.rb b/test/unit/repository_git_test.rb index 46d1ad6..baa1764 100644 --- a/test/unit/repository_git_test.rb +++ b/test/unit/repository_git_test.rb @@ -38,8 +38,8 @@ class RepositoryGitTest < ActiveSupport::TestCase @repository.fetch_changesets @repository.reload - assert_equal 15, @repository.changesets.count - assert_equal 24, @repository.changes.count + assert_equal 16, @repository.changesets.count + assert_equal 25, @repository.changes.count commit = @repository.changesets.find(:first, :order => 'committed_on ASC') assert_equal "Initial import.\nThe repository contains 3 files.", commit.comments @@ -61,10 +61,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 12, @repository.changesets.count + assert_equal 13, @repository.changesets.count @repository.fetch_changesets - assert_equal 15, @repository.changesets.count + assert_equal 16, @repository.changesets.count end def test_find_changeset_by_name