From b360c9fe2ef7174c16a387c9aeae57bfbb370df1 Mon Sep 17 00:00:00 2001 From: Dimitris Koutsogiorgas Date: Tue, 3 Aug 2021 13:49:50 +0300 Subject: [PATCH] Force encode branch name to properly clone it. --- CHANGELOG.md | 5 ++++- lib/cocoapods-downloader/git.rb | 3 ++- spec/fixtures/git-repo.tar.gz | Bin 19793 -> 25339 bytes spec/git_spec.rb | 7 +++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 786e589..78cc0af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,10 @@ ##### Bug Fixes -* None. +* Force encode branch name to properly clone it. + [xdkhan](https://github.com/xdkhan) + [Dimitris Koutsogiorgas](https://github.com/dnkoutso) + [#116](https://github.com/CocoaPods/cocoapods-downloader/pull/116) ## 1.4.0 (2020-07-17) diff --git a/lib/cocoapods-downloader/git.rb b/lib/cocoapods-downloader/git.rb index 307e6d0..f7914e6 100644 --- a/lib/cocoapods-downloader/git.rb +++ b/lib/cocoapods-downloader/git.rb @@ -52,7 +52,8 @@ def self.preprocess_options(options) # def self.commit_from_ls_remote(output, branch_name) return nil if branch_name.nil? - match = %r{([a-z0-9]*)\trefs\/(heads|tags)\/#{Regexp.quote(branch_name)}}.match(output) + encoded_branch_name = branch_name.force_encoding(Encoding::ASCII_8BIT) + match = %r{([a-z0-9]*)\trefs\/(heads|tags)\/#{Regexp.quote(encoded_branch_name)}}.match(output) match[1] unless match.nil? end diff --git a/spec/fixtures/git-repo.tar.gz b/spec/fixtures/git-repo.tar.gz index 86b101326d8e72cd8d3a1b37f81b5d582495f0a4..31e6d0465ce7de18a59f64edd4efcb1dcf217ac0 100644 GIT binary patch literal 25339 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 diff --git a/spec/git_spec.rb b/spec/git_spec.rb index d518f59..bafea00 100644 --- a/spec/git_spec.rb +++ b/spec/git_spec.rb @@ -26,6 +26,13 @@ def fixture_url(name) tmp_folder('README').read.strip.should == 'topic_branch' end + it 'checks out a specific branch with forced encoding' do + options = { :git => fixture('git-repo'), :branch => '中文分支' } + downloader = Downloader.for_target(tmp_folder, options) + downloader.download + tmp_folder('README').read.strip.should == '中文分支' + end + it 'checks out a specific tag' do options = { :git => fixture('git-repo'), :tag => 'v1.0' } downloader = Downloader.for_target(tmp_folder, options)