diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-10-01 09:50:40 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-10-01 09:50:40 +0000 |
commit | 6add33352316af566cec5d827981f1783c59b7f4 (patch) | |
tree | e4d4da632a7cb75497982abe52745d2eb1738b61 | |
parent | 57bc57298c64f40a0a851e474b3e6de91a551ec5 (diff) | |
parent | ac814447cbf1da9f65299a96fb787fc6bb3ce2e6 (diff) | |
download | gitlab-shell-6add33352316af566cec5d827981f1783c59b7f4.tar.gz |
Merge branch 'no-init-on-gcryptsetup' into 'master'
Skip 'git annex init' when using 'gcryptsetup'
'gcryptsetup' is a special git-annex feature that does its own
initialization.
See merge request !18
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | lib/gitlab_shell.rb | 7 | ||||
-rw-r--r-- | spec/gitlab_shell_spec.rb | 8 |
3 files changed, 15 insertions, 1 deletions
@@ -1,6 +1,7 @@ v2.6.6 (unreleased) - Do not clean LANG environment variable for the git hooks when working through the SSH-protocol - Add git-lfs-authenticate command to white list (this command is used by git-lfs for SSO authentication through SSH-protocol) + - Handle git-annex and gcryptsetup v2.6.5 - Handle broken symlinks in create-hooks diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb index cae501a..4bc1cd7 100644 --- a/lib/gitlab_shell.rb +++ b/lib/gitlab_shell.rb @@ -67,7 +67,7 @@ class GitlabShell @repo_name = escape_path(args[2].sub(/\A\/~\//, '')) # Make sure repository has git-annex enabled - init_git_annex(@repo_name) + init_git_annex(@repo_name) unless gcryptsetup?(args) when 'git-lfs-authenticate' raise DisallowedCommandError unless args.count >= 2 @repo_name = escape_path(args[1]) @@ -177,4 +177,9 @@ class GitlabShell $logger.info "Enable git-annex for repository: #{path}." end end + + def gcryptsetup?(args) + non_dashed = args.reject { |a| a.start_with?('-') } + non_dashed[0, 2] == %w{git-annex-shell gcryptsetup} + end end diff --git a/spec/gitlab_shell_spec.rb b/spec/gitlab_shell_spec.rb index 77523d7..62e0d36 100644 --- a/spec/gitlab_shell_spec.rb +++ b/spec/gitlab_shell_spec.rb @@ -96,6 +96,14 @@ describe GitlabShell do it 'should init git-annex' do File.exists?(File.join(tmp_repos_path, 'dzaporozhets/gitlab.git/annex')).should be_true end + + context 'with git-annex-shell gcryptsetup' do + let(:ssh_cmd) { 'git-annex-shell gcryptsetup /~/dzaporozhets/gitlab.git' } + + it 'should not init git-annex' do + File.exists?(File.join(tmp_repos_path, 'dzaporozhets/gitlab.git/annex')).should be_false + end + end end end |