git-gc-cron 0.0.2 → 0.0.3

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.
data/README CHANGED
@@ -17,18 +17,21 @@ As user or as root:
17
17
 
18
18
  Put this into the system crontab (for example fcron on Linux):
19
19
 
20
- %weekly,nice(10),runas(git) * * git-gc-cron /var/spool/gitosis/repositories
21
- %weekly,nice(10),runas(me) * * git-gc-cron /home/me/myprojects /home/me/myotherprojects
20
+ %weekly,nice(10),runas(git) * * git-gc-cron -v /var/spool/gitosis/repositories
21
+ %weekly,nice(10),runas(me) * * git-gc-cron -v /home/me/myprojects /home/me/myotherprojects
22
22
 
23
23
  or into your personal crontab, if you like:
24
24
 
25
- %weekly,nice(10) * * git-gc-cron /home/me
25
+ %weekly,nice(10) * * git-gc-cron -v /home/me
26
26
 
27
27
 
28
28
  git-gc-cron takes any number of paths to traverse as argument.
29
29
 
30
- To see the progress you can watch the output of ps or top. For each repo it
31
- compresses git-gc-cron changes the process name of the subprocess "git gc" to
32
- something more useful:
30
+ The option -v prints the path of every repo to stdout. Remove the option -v
31
+ from the above examples if you want the cron job to be silent.
32
+
33
+ To watch the progress live you can take a look at the output of ps or top. For
34
+ each repo it compresses git-gc-cron changes the process name of the subprocess
35
+ "git gc" to something more useful:
33
36
 
34
37
  (#1/10 /var/spool/gitosis/repositories/myproject.git) git
@@ -13,3 +13,10 @@ Feature: CLI
13
13
  And the repo "repos1/def/xyz" should be packed
14
14
  And the repo "repos2/ghi.git" should be packed
15
15
  And the repo "repos3/jkl.git" should not be packed
16
+
17
+ Scenario: Verbose output
18
+ Given a checked out repo "repos1/abc"
19
+ And a checked out repo "repos1/def/xyz"
20
+ When I run "git-gc-cron -v repos1"
21
+ Then the output should contain "repos1/abc"
22
+ And the output should contain "repos1/def/xyz"
@@ -2,10 +2,12 @@ module GitGcCron
2
2
  class CLI
3
3
 
4
4
  def self.start
5
+ verbose = ARGV.first == '-v' and ARGV.shift
5
6
  ARGV.each do |base|
6
7
  repos = Dir["#{base}/**/{.git,*.git}"]
7
8
  repos.each_with_index do |repo_path, i|
8
9
  Dir.chdir(repo_path) do
10
+ puts repo_path if verbose
9
11
  system ["git", "(##{i + 1}/#{repos.size + 1} #{repo_path}) git"], "gc", "-q"
10
12
  end
11
13
  end
@@ -1,3 +1,3 @@
1
1
  module GitGcCron
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: git-gc-cron
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Thomas Ritz
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-06 00:00:00 +01:00
13
+ date: 2011-02-26 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -94,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  requirements: []
95
95
 
96
96
  rubyforge_project:
97
- rubygems_version: 1.5.0
97
+ rubygems_version: 1.5.2
98
98
  signing_key:
99
99
  specification_version: 3
100
100
  summary: Let cron run "git gc" on all your git repos