summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-02-05 11:39:55 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-02-05 11:39:55 +0200
commit55572c4e86c6b4cb12c8984b54de57fc02972ad1 (patch)
treeeb9fb516b0300737bae24dc5119460a5eadd2eb3 /app
parentd701d5869516142a4073804622503299202cfbe2 (diff)
downloadgitlab-ce-55572c4e86c6b4cb12c8984b54de57fc02972ad1.tar.gz
Repository#blob_at_branch
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app')
-rw-r--r--app/models/repository.rb10
-rw-r--r--app/services/files/create_service.rb3
-rw-r--r--app/services/files/delete_service.rb3
-rw-r--r--app/services/files/update_service.rb3
4 files changed, 13 insertions, 6 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 271c2e4dbbc..a408fe13f80 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -178,4 +178,14 @@ class Repository
Tree.new(self, sha, path)
end
+
+ def blob_at_branch(branch_name, path)
+ last_commit = commit(branch_name)
+
+ if last_commit
+ blob_at(last_commit.sha, path)
+ else
+ nil
+ end
+ end
end
diff --git a/app/services/files/create_service.rb b/app/services/files/create_service.rb
index 1876dba0887..1998fb79e7d 100644
--- a/app/services/files/create_service.rb
+++ b/app/services/files/create_service.rb
@@ -24,8 +24,7 @@ module Files
return error("Your changes could not be committed, because file name contains not allowed characters")
end
- commit = repository.commit(ref)
- blob = repository.blob_at(commit.sha, file_path)
+ blob = repository.blob_at_branch(ref, file_path)
if blob
return error("Your changes could not be committed, because file with such name exists")
diff --git a/app/services/files/delete_service.rb b/app/services/files/delete_service.rb
index bacd0ccc5fb..ff5dc6ef34c 100644
--- a/app/services/files/delete_service.rb
+++ b/app/services/files/delete_service.rb
@@ -17,8 +17,7 @@ module Files
return error("You can only create files if you are on top of a branch")
end
- commit = repository.commit(ref)
- blob = repository.blob_at(commit.sha, path)
+ blob = repository.blob_at_branch(ref, path)
unless blob
return error("You can only edit text files")
diff --git a/app/services/files/update_service.rb b/app/services/files/update_service.rb
index 19bd62e1e36..c631f28749c 100644
--- a/app/services/files/update_service.rb
+++ b/app/services/files/update_service.rb
@@ -17,8 +17,7 @@ module Files
return error("You can only create files if you are on top of a branch")
end
- commit = repository.commit(ref)
- blob = repository.blob_at(commit.sha, path)
+ blob = repository.blob_at_branch(ref, path)
unless blob
return error("You can only edit text files")