From baf12f45d8705693755a8343e53525e92dc26ca6 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> Date: Wed, 1 Jul 2015 11:02:37 +0200 Subject: [PATCH] Repository#blob_at should return nil for 00000000... sha Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> --- app/models/repository.rb | 6 ++++-- spec/models/repository_spec.rb | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/repository.rb b/app/models/repository.rb index b32e8847bb5..cab3e896159 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -8,7 +8,7 @@ class Repository @project = project if path_with_namespace - @raw_repository = Gitlab::Git::Repository.new(path_to_repo) + @raw_repository = Gitlab::Git::Repository.new(path_to_repo) @raw_repository.autocrlf = :input end @@ -173,7 +173,9 @@ class Repository end def blob_at(sha, path) - Gitlab::Git::Blob.find(self, sha, path) + unless Gitlab::Git.blank_ref?(sha) + Gitlab::Git::Blob.find(self, sha, path) + end end def blob_by_oid(oid) diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index f41e5a97ca3..77ceb6c8adc 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -25,4 +25,12 @@ describe Repository do it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') } end + + describe :blob_at do + context 'blank sha' do + subject { repository.blob_at(Gitlab::Git::BLANK_SHA, '.gitignore') } + + it { is_expected.to be_nil } + end + end end -- GitLab