diff options
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | lib/gitlab_projects.rb | 15 |
4 files changed, 21 insertions, 3 deletions
@@ -1,3 +1,6 @@ +v2.6.10 + - Add git gc for housekeeping + v2.6.9 - Remove trailing slashes from gitlab_url @@ -121,6 +121,10 @@ Remove tag: ./bin/gitlab-projects rm-tag gitlab/gitlab-ci.git v3.0.0 +Gc repo: + + ./bin/gitlab-projects gc gitlab/gitlab-ci.git + ## Keys Add key: @@ -1 +1 @@ -2.6.9 +2.6.10 diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb index 67fd298..c1d175a 100644 --- a/lib/gitlab_projects.rb +++ b/lib/gitlab_projects.rb @@ -55,12 +55,13 @@ class GitlabProjects when 'rm-tag'; rm_tag when 'add-project'; add_project when 'list-projects'; puts list_projects - when 'rm-project'; rm_project - when 'mv-project'; mv_project + when 'rm-project'; rm_project + when 'mv-project'; mv_project when 'import-project'; import_project when 'fork-project'; fork_project when 'fetch-remote'; fetch_remote when 'update-head'; update_head + when 'gc'; gc else $logger.warn "Attempt to execute invalid gitlab-projects command #{@command.inspect}." puts 'not allowed' @@ -275,4 +276,14 @@ class GitlabProjects $logger.info "Update head in project #{project_name} to <#{new_head}>." true end + + def gc + $logger.info "Running git gc for <#{full_path}>." + unless File.exists?(full_path) + $logger.error "gc failed: destination path <#{full_path}> does not exist." + return false + end + cmd = %W(git --git-dir=#{full_path} gc) + system(*cmd) + end end |