gitlab_git 7.2.6 → 7.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/gitlab_git/repository.rb +35 -19
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40404bc6eebccdbd4fe6e3389a5ea3db396ab5ca
4
- data.tar.gz: 01639046d7956b321c868ba026d3f03c49634af4
3
+ metadata.gz: 0fb286d72a72f537e6256122e9017c6901e7534f
4
+ data.tar.gz: a65bf64b798e5bdc6ed45f8a9837b8bd9e5437bb
5
5
  SHA512:
6
- metadata.gz: cc39687fd79229843b61053f62293b9ce1afed9f4a112cf305d7e4aefef10e27de3c7839780a1233f9a9e83f067e95349e4741f61dcea5eee31ec38b15fbd921
7
- data.tar.gz: 1c0d0abcb8f8d1df2f886f994226a33a35a4e2eff95673347522e2287b25e284d5181675df4fce6cab63917bbda1197394241617326297b81e79e83d6e2738fb
6
+ metadata.gz: cd4a03b4bc7fbeef4436f919855ad0f9f424387f22ab8e09a78d12fa60925017f4e59e2157bba93c39dd2e833b83fd5fddde92248fb70134a37452d91cb8a948
7
+ data.tar.gz: 0002e83c7288132e5cd7a8ba70696bbc3dd8d04748b988abbf64777612c65be5cfbe81991c5cedc5474096f8bac03ab781fb32b832eecf16e1438a9fe931bbad
data/VERSION CHANGED
@@ -1 +1 @@
1
- 7.2.6
1
+ 7.2.8
@@ -53,8 +53,12 @@ module Gitlab
53
53
  # Returns an Array of Branches
54
54
  def branches
55
55
  rugged.branches.map do |rugged_ref|
56
- Branch.new(rugged_ref.name, rugged_ref.target)
57
- end.sort_by(&:name)
56
+ begin
57
+ Branch.new(rugged_ref.name, rugged_ref.target)
58
+ rescue Rugged::ReferenceError
59
+ # Omit invalid branch
60
+ end
61
+ end.compact.sort_by(&:name)
58
62
  end
59
63
 
60
64
  # Returns an Array of tag names
@@ -135,7 +139,7 @@ module Gitlab
135
139
  # Archive Project to .tar.gz
136
140
  #
137
141
  # Already packed repo archives stored at
138
- # app_root/tmp/repositories/project_name/project_name-commit-id.tag.gz
142
+ # app_root/tmp/repositories/<project_name>.git/<project_name>-<ref>-<commit id>.tar.gz
139
143
  #
140
144
  def archive_repo(ref, storage_path, format = "tar.gz")
141
145
  ref ||= root_ref
@@ -147,16 +151,15 @@ module Gitlab
147
151
 
148
152
  case format
149
153
  when "tar.bz2", "tbz", "tbz2", "tb2", "bz2"
150
- pipe_cmd = %W(bzip2)
154
+ compress_cmd = %W(bzip2)
151
155
  when "tar"
152
- pipe_cmd = %W(cat)
156
+ compress_cmd = %W(cat)
153
157
  when "zip"
154
158
  git_archive_format = "zip"
155
- pipe_cmd = %W(cat)
159
+ compress_cmd = %W(cat)
156
160
  else
157
161
  # everything else should fall back to tar.gz
158
- git_archive_format = nil
159
- pipe_cmd = %W(gzip -n)
162
+ compress_cmd = %W(gzip -n)
160
163
  end
161
164
 
162
165
  FileUtils.mkdir_p File.dirname(file_path)
@@ -174,7 +177,7 @@ module Gitlab
174
177
  temp_file_path = "#{file_path}.#{Process.pid}-#{Time.now.to_i}"
175
178
 
176
179
  begin
177
- archive_to_file(ref, temp_file_path, git_archive_format, pipe_cmd)
180
+ archive_to_file(ref, temp_file_path, git_archive_format, compress_cmd)
178
181
  rescue
179
182
  FileUtils.rm(temp_file_path)
180
183
  raise
@@ -188,26 +191,34 @@ module Gitlab
188
191
  file_path
189
192
  end
190
193
 
191
- def archive_file_path(ref, storage_path, format = "tar.gz")
194
+ def archive_name(ref)
192
195
  ref ||= root_ref
193
196
  commit = Gitlab::Git::Commit.find(self, ref)
194
197
  return nil unless commit
195
198
 
199
+ project_name = self.name.sub(/\.git\z/, "")
200
+ file_name = "#{project_name}-#{ref}-#{commit.id}"
201
+ end
202
+
203
+ def archive_file_path(ref, storage_path, format = "tar.gz")
204
+ # Build file path
205
+ name = archive_name(ref)
206
+ return nil unless name
207
+
196
208
  extension =
197
209
  case format
198
210
  when "tar.bz2", "tbz", "tbz2", "tb2", "bz2"
199
- ".tar.bz2"
211
+ "tar.bz2"
200
212
  when "tar"
201
- ".tar"
213
+ "tar"
202
214
  when "zip"
203
- ".zip"
215
+ "zip"
204
216
  else
205
217
  # everything else should fall back to tar.gz
206
- ".tar.gz"
218
+ "tar.gz"
207
219
  end
208
220
 
209
- # Build file path
210
- file_name = self.name.gsub("\.git", "") + "-" + commit.id.to_s + extension
221
+ file_name = "#{name}.#{extension}"
211
222
  File.join(storage_path, self.name, file_name)
212
223
  end
213
224
 
@@ -289,12 +300,15 @@ module Gitlab
289
300
  #
290
301
  def commits_between(from, to)
291
302
  walker = Rugged::Walker.new(rugged)
303
+ walker.sorting(Rugged::SORT_DATE | Rugged::SORT_REVERSE)
304
+
292
305
  walker.push(to)
293
306
  walker.hide(from)
307
+
294
308
  commits = walker.to_a
295
309
  walker.reset
296
310
 
297
- commits.reverse
311
+ commits
298
312
  end
299
313
 
300
314
  # Returns the SHA of the most recent common ancestor of +from+ and +to+
@@ -944,14 +958,16 @@ module Gitlab
944
958
  end
945
959
  end
946
960
 
947
- def archive_to_file(treeish = 'master', filename = 'archive.tar.gz', format = nil, compress_cmd = %W(gzip))
961
+ def archive_to_file(treeish = 'master', filename = 'archive.tar.gz', format = nil, compress_cmd = %W(gzip -n))
948
962
  git_archive_cmd = %W(git --git-dir=#{path} archive)
949
963
 
950
964
  # Put files into a directory before archiving
951
- prefix = File.basename(self.name) + "/"
965
+ prefix = "#{archive_name(treeish)}/"
952
966
  git_archive_cmd << "--prefix=#{prefix}"
953
967
 
968
+ # Format defaults to tar
954
969
  git_archive_cmd << "--format=#{format}" if format
970
+
955
971
  git_archive_cmd += %W(-- #{treeish})
956
972
 
957
973
  open(filename, 'w') do |file|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab_git
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.6
4
+ version: 7.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Zaporozhets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-28 00:00:00.000000000 Z
11
+ date: 2015-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gitlab-linguist