summaryrefslogtreecommitdiff
path: root/app/models/repository.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/repository.rb')
-rw-r--r--app/models/repository.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 3fd7b6126d8..4100218944f 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -696,14 +696,22 @@ class Repository
end
def head_tree(skip_flat_paths: true)
- if head_commit
+ if Feature.enabled?(:optimized_head_tree)
+ return if empty? || root_ref.nil?
+
+ @head_tree ||= Tree.new(self, root_ref, nil, skip_flat_paths: skip_flat_paths)
+ elsif head_commit
@head_tree ||= Tree.new(self, head_commit.sha, nil, skip_flat_paths: skip_flat_paths)
end
end
def tree(sha = :head, path = nil, recursive: false, skip_flat_paths: true, pagination_params: nil)
if sha == :head
- return unless head_commit
+ if Feature.enabled?(:optimized_head_tree)
+ return if empty? || root_ref.nil?
+ else
+ return unless head_commit
+ end
if path.nil?
return head_tree(skip_flat_paths: skip_flat_paths)