Commit 41b0c0e9 authored by Kim Carlbäcker's avatar Kim Carlbäcker Committed by Robert Speicher

Migrate Git::Repository#fsck to Gitaly

parent 22666b78
...@@ -1160,9 +1160,15 @@ module Gitlab ...@@ -1160,9 +1160,15 @@ module Gitlab
end end
def fsck def fsck
output, status = run_git(%W[--git-dir=#{path} fsck], nice: true) gitaly_migrate(:git_fsck) do |is_enabled|
msg, status = if is_enabled
gitaly_fsck
else
shell_fsck
end
raise GitError.new("Could not fsck repository:\n#{output}") unless status.zero? raise GitError.new("Could not fsck repository: #{msg}") unless status.zero?
end
end end
def rebase(user, rebase_id, branch:, branch_sha:, remote_repository:, remote_branch:) def rebase(user, rebase_id, branch:, branch_sha:, remote_repository:, remote_branch:)
...@@ -1310,6 +1316,14 @@ module Gitlab ...@@ -1310,6 +1316,14 @@ module Gitlab
File.write(File.join(worktree_info_path, 'sparse-checkout'), files) File.write(File.join(worktree_info_path, 'sparse-checkout'), files)
end end
def gitaly_fsck
gitaly_repository_client.fsck
end
def shell_fsck
run_git(%W[--git-dir=#{path} fsck], nice: true)
end
def rugged_fetch_source_branch(source_repository, source_branch, local_ref) def rugged_fetch_source_branch(source_repository, source_branch, local_ref)
with_repo_branch_commit(source_repository, source_branch) do |commit| with_repo_branch_commit(source_repository, source_branch) do |commit|
if commit if commit
......
...@@ -87,6 +87,17 @@ module Gitlab ...@@ -87,6 +87,17 @@ module Gitlab
response.result response.result
end end
def fsck
request = Gitaly::FsckRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :repository_service, :fsck, request)
if response.error.empty?
return "", 0
else
return response.error.b, 1
end
end
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment