capita_git 0.0.2 → 0.1.0
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/.gitignore +2 -1
- data/Gemfile +0 -1
- data/Gemfile.lock +6 -4
- data/README.rdoc +25 -16
- data/Rakefile +16 -0
- data/capita_git.gemspec +7 -4
- data/lib/capita_git/cli.rb +1 -2
- data/lib/capita_git/man/gitc +1 -1
- data/lib/capita_git/man/gitc-check +1 -1
- data/lib/capita_git/man/gitc-check.txt +1 -1
- data/lib/capita_git/man/gitc.txt +1 -1
- data/lib/capita_git/version.rb +1 -1
- data/test/cli_test.rb +101 -0
- data/test/shoulda_macros.rb +160 -0
- data/test/test_helper.rb +16 -0
- metadata +59 -8
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
capita_git (0.0
|
4
|
+
capita_git (0.1.0)
|
5
5
|
git (>= 1.2.5)
|
6
6
|
thor (>= 0.14.6)
|
7
7
|
|
@@ -11,11 +11,13 @@ GEM
|
|
11
11
|
git (1.2.5)
|
12
12
|
hpricot (0.8.3)
|
13
13
|
mustache (0.12.0)
|
14
|
+
open4 (1.0.1)
|
14
15
|
rdiscount (1.6.5)
|
15
16
|
ronn (0.7.3)
|
16
17
|
hpricot (>= 0.8.2)
|
17
18
|
mustache (>= 0.7.0)
|
18
19
|
rdiscount (>= 1.5.8)
|
20
|
+
shoulda (2.11.3)
|
19
21
|
thor (0.14.6)
|
20
22
|
|
21
23
|
PLATFORMS
|
@@ -23,6 +25,6 @@ PLATFORMS
|
|
23
25
|
|
24
26
|
DEPENDENCIES
|
25
27
|
capita_git!
|
26
|
-
|
27
|
-
ronn
|
28
|
-
|
28
|
+
open4
|
29
|
+
ronn (>= 0.7.3)
|
30
|
+
shoulda (>= 2.11.0)
|
data/README.rdoc
CHANGED
@@ -8,23 +8,23 @@
|
|
8
8
|
|
9
9
|
$ gitc check
|
10
10
|
|
11
|
-
$ gitc create [name] [source_branch]
|
11
|
+
$ gitc create [name] ([source_branch])
|
12
12
|
|
13
|
-
$ gitc update [
|
13
|
+
$ gitc update ([source_branch])
|
14
14
|
|
15
|
-
$ gitc close [
|
15
|
+
$ gitc close ([source_branch])
|
16
16
|
|
17
17
|
=== DESCRIPTION
|
18
18
|
|
19
|
-
*gitc* is a git automation tool used by CAPITA Unternehmensberatung GmbH
|
20
|
-
|
19
|
+
*gitc* is a git automation tool used by CAPITA Unternehmensberatung GmbH which comes
|
20
|
+
packaged as the Rubygem *capita_git*.
|
21
21
|
|
22
|
-
It's main purpose is to automate repetivite tasks
|
22
|
+
It's main purpose is to automate repetivite tasks like spawing new feature branches,
|
23
23
|
updating and rebasing from the source branch of a given feature branch, as well as
|
24
|
-
closing/merging feature
|
24
|
+
closing/merging feature branches back into their original tree.
|
25
25
|
|
26
|
-
*
|
27
|
-
local and remote branches and depends on the
|
26
|
+
*gitc* uses a strict naming convention for creating, identifying and maintaining
|
27
|
+
local and remote branches and depends on the user's name being set in the git
|
28
28
|
configuration of your local cloned copy or in the global settings.
|
29
29
|
|
30
30
|
Please make sure that both
|
@@ -33,7 +33,7 @@ and
|
|
33
33
|
$ git config user.email
|
34
34
|
return your correct name and email address.
|
35
35
|
|
36
|
-
===
|
36
|
+
=== INSTALLATION
|
37
37
|
|
38
38
|
$ gem install capita_git
|
39
39
|
|
@@ -44,14 +44,23 @@ For detailed explanation of the various commands, please use *gitc help <command
|
|
44
44
|
Available commands currently are:
|
45
45
|
|
46
46
|
* <check>:
|
47
|
-
|
48
|
-
major release tags both locally and remotely
|
47
|
+
Performs a basic check of your repository, as well as maintains fixbranches for
|
48
|
+
major release tags both locally and remotely.
|
49
|
+
i.e., assuming your current release tag is 1.0, this will automatically create
|
50
|
+
the remote branch 1.0-fix that is based upon 1.0
|
49
51
|
|
50
|
-
* <create
|
51
|
-
|
52
|
+
* <create> branch_name:
|
53
|
+
Creates a feature branch based upon the current branch with the naming scheme
|
54
|
+
<USER_INITIALS>_sourcebranch_branch_name>.
|
55
|
+
Assuming you are 'CO' and on 1.0-fix, gitc create js_bugfix will create
|
56
|
+
the local branch co_1.0-fix_js_bugfix and check it out
|
52
57
|
|
53
58
|
* <update>:
|
54
|
-
|
59
|
+
Updates the active feature branch's source branch and does a rebase, thus pulling
|
60
|
+
in the latest changes into your local tree
|
55
61
|
|
56
62
|
* <close>:
|
57
|
-
|
63
|
+
Closes a feature branch by updating the source branch, rebasing it onto your feature
|
64
|
+
branch and then merging into the source branch.
|
65
|
+
|
66
|
+
|
data/Rakefile
CHANGED
@@ -2,6 +2,22 @@ $:.unshift File.expand_path("../lib", __FILE__)
|
|
2
2
|
require 'bundler/gem_helper'
|
3
3
|
Bundler::GemHelper.install_tasks
|
4
4
|
|
5
|
+
require 'rake/testtask'
|
6
|
+
Rake::TestTask.new(:test) do |test|
|
7
|
+
test.libs << 'lib' << 'test'
|
8
|
+
test.pattern = 'test/**/*_test.rb'
|
9
|
+
test.verbose = true
|
10
|
+
end
|
11
|
+
|
12
|
+
task :default => :test
|
13
|
+
|
14
|
+
require 'rake/rdoctask'
|
15
|
+
Rake::RDocTask.new do |rdoc|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
17
|
+
rdoc.rdoc_files.include('README*')
|
18
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
19
|
+
end
|
20
|
+
|
5
21
|
task :install => ["man:clean", "man:build"]
|
6
22
|
task :build => ["man:clean", "man:build"]
|
7
23
|
task :release => ["man:clean", "man:build"]
|
data/capita_git.gemspec
CHANGED
@@ -6,11 +6,11 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "capita_git"
|
7
7
|
s.version = CapitaGit::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["Sebastian Georgi"]
|
10
|
-
s.email = ["sgeorgi@capita.de"]
|
9
|
+
s.authors = ["Sebastian Georgi", "Christoph Olszowka"]
|
10
|
+
s.email = ["sgeorgi@capita.de", "colszowka at capita de"]
|
11
11
|
s.homepage = "https://github.com/capita/capita_git"
|
12
|
-
s.summary = %q{Git-automation tool for
|
13
|
-
s.description = %q{
|
12
|
+
s.summary = %q{Git-automation tool for quick handling of common patterns for feature and fix branches}
|
13
|
+
s.description = %q{Git-automation tool for quick handling of common patterns for feature and fix branches}
|
14
14
|
|
15
15
|
s.rubyforge_project = "capita_git"
|
16
16
|
|
@@ -21,4 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
s.add_dependency('git', '>= 1.2.5')
|
23
23
|
s.add_dependency('thor', '>= 0.14.6')
|
24
|
+
s.add_development_dependency('ronn', ">= 0.7.3")
|
25
|
+
s.add_development_dependency('shoulda', ">= 2.11.0")
|
26
|
+
s.add_development_dependency('open4')
|
24
27
|
end
|
data/lib/capita_git/cli.rb
CHANGED
@@ -126,7 +126,6 @@ module CapitaGit
|
|
126
126
|
raise "Source branch '#{name}' is not a feature branch, can't close!" unless repo.is_local_feature_branch?(name)
|
127
127
|
|
128
128
|
CapitaGit.ui.confirm "--> Closing feature branch '#{name}' onto '#{repo.source_branch(name)}'"
|
129
|
-
repo.rebase_local_branch(name)
|
130
129
|
repo.close_local_branch(name)
|
131
130
|
end
|
132
131
|
|
@@ -142,4 +141,4 @@ module CapitaGit
|
|
142
141
|
!(`which groff` rescue '').empty?
|
143
142
|
end
|
144
143
|
end
|
145
|
-
end
|
144
|
+
end
|
data/lib/capita_git/man/gitc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "GITC" "5" "January 2011" "GITC 0.0
|
4
|
+
.TH "GITC" "5" "January 2011" "GITC 0.1.0" "GITC Manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBgitc\fR \- git helper for CAPITA Unternehmensberatung GmbH
|
data/lib/capita_git/man/gitc.txt
CHANGED
data/lib/capita_git/version.rb
CHANGED
data/test/cli_test.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class CliTest < Test::Unit::TestCase
|
4
|
+
with_a_repo_setup do
|
5
|
+
in_dir 'local_checkout_1' do
|
6
|
+
after('git pull') { should_have_tag '1.0' }
|
7
|
+
|
8
|
+
gitc 'check' do
|
9
|
+
should_have_branch '1.0-fix'
|
10
|
+
|
11
|
+
in_dir 'local_checkout_2' do
|
12
|
+
should_not_have_branch '1.0-fix'
|
13
|
+
|
14
|
+
gitc 'check' do
|
15
|
+
should_have_branch '1.0-fix'
|
16
|
+
|
17
|
+
context "after creating a fix" do
|
18
|
+
setup do
|
19
|
+
assert_command 'git checkout 1.0-fix'
|
20
|
+
assert_command 'echo "foo" > fixfile'
|
21
|
+
assert_command 'git add . && git commit -m "fixfile" && git push'
|
22
|
+
end
|
23
|
+
|
24
|
+
should_not_have_file 'fixfile', :in => 'local_checkout_1'
|
25
|
+
|
26
|
+
context "after pull and checkout of 1.0-fix in checkout 1" do
|
27
|
+
setup do
|
28
|
+
in_dir 'local_checkout_1' do
|
29
|
+
assert_command 'git checkout 1.0-fix'
|
30
|
+
assert_command 'git pull'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
should_have_file 'fixfile', :in => 'local_checkout_1'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
gitc 'create my_feature' do
|
42
|
+
should "be on branch USER_master_my_feature" do
|
43
|
+
user = CapitaGit::Repository.new('.').user_shortcut
|
44
|
+
assert_equal "#{user}_master_my_feature", repo.current_branch
|
45
|
+
end
|
46
|
+
|
47
|
+
should_not_have_file 'awesome_feature', :in => 'local_checkout_1'
|
48
|
+
|
49
|
+
# Propagating changes on source branch with gitc update
|
50
|
+
context "after checkout 2 pushes file master_2_update on master" do
|
51
|
+
setup do
|
52
|
+
in_dir 'local_checkout_2' do
|
53
|
+
assert_command 'echo "foo" > master_2_update'
|
54
|
+
assert_command 'git add . && git commit -m "master 2 update" && git push'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
after 'git pull origin master' do
|
59
|
+
should_not_have_file 'awesome_feature', :in => 'local_checkout_1'
|
60
|
+
end
|
61
|
+
|
62
|
+
context "after invoking 'gitc update'" do
|
63
|
+
setup { assert_command("#{ShouldaMacros::BIN_PATH} update") }
|
64
|
+
should_have_file 'master_2_update', :in => 'local_checkout_1'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Committing a fix and closing branch
|
69
|
+
context "after committing a file and gitc close" do
|
70
|
+
setup do
|
71
|
+
assert_command 'echo "foo" > awesome_feature'
|
72
|
+
assert_command 'git add . && git commit -m "my feature"'
|
73
|
+
assert_command("#{ShouldaMacros::BIN_PATH} close")
|
74
|
+
assert_command 'git push'
|
75
|
+
end
|
76
|
+
|
77
|
+
should "be on branch master" do
|
78
|
+
assert_equal 'master', repo.current_branch
|
79
|
+
end
|
80
|
+
|
81
|
+
should "have removed the feature branch" do
|
82
|
+
assert !repo.branches.map(&:name).any? {|n| n =~ /feature/}
|
83
|
+
end
|
84
|
+
|
85
|
+
should_have_file 'awesome_feature', :in => 'local_checkout_1'
|
86
|
+
|
87
|
+
context "after git pull on local_checkout_2" do
|
88
|
+
setup do
|
89
|
+
in_dir 'local_checkout_2' do
|
90
|
+
assert_command 'git pull'
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
should_have_file 'awesome_feature', :in => 'local_checkout_2'
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,160 @@
|
|
1
|
+
module ShouldaMacros
|
2
|
+
TEMP_DIR = File.expand_path('/tmp/capita_git_tmp')
|
3
|
+
BIN_PATH = File.expand_path(File.join(File.dirname(__FILE__), '..', 'bin/gitc'))
|
4
|
+
|
5
|
+
# Test method level helpers
|
6
|
+
module InstanceMethods
|
7
|
+
# Returns the path to the temporary directory, with the optional subdirectory
|
8
|
+
# Creates the directory if it's missing
|
9
|
+
def temp_dir(subdirectory = nil)
|
10
|
+
path = ShouldaMacros::TEMP_DIR
|
11
|
+
path = File.join(path, subdirectory) if subdirectory
|
12
|
+
FileUtils.mkdir_p(path)
|
13
|
+
path
|
14
|
+
end
|
15
|
+
|
16
|
+
# Switches current working directory to the temp_dir subdirectory of given
|
17
|
+
# name for the given block, switching back after execution
|
18
|
+
def in_dir(name)
|
19
|
+
Dir.chdir(temp_dir(name)) do
|
20
|
+
yield
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Runs the specified command and asserts it's exit status should be 0
|
25
|
+
def assert_command(cmd)
|
26
|
+
Open4.popen4(cmd) { |pid, stdin, stdout, stderr| }
|
27
|
+
#puts `#{cmd}`
|
28
|
+
assert_equal 0, $?.exitstatus, "Expected exit status of 0 for command '#{cmd}'"
|
29
|
+
end
|
30
|
+
|
31
|
+
# Opens a Git ruby lib instance for current working dir and returns it
|
32
|
+
def repo
|
33
|
+
Git.open(Dir.getwd)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Context and should block helpers
|
38
|
+
module ClassMethods
|
39
|
+
|
40
|
+
#
|
41
|
+
# Creates a repository with a remote in temp_dir
|
42
|
+
#
|
43
|
+
def with_a_repo_setup
|
44
|
+
context "With a basic repo setup" do
|
45
|
+
setup do
|
46
|
+
ENV["GIT_WORK_TREE"] = nil
|
47
|
+
ENV['GIT_DIR'] = nil
|
48
|
+
ENV['GIT_INDEX_FILE'] = nil
|
49
|
+
|
50
|
+
in_dir 'origin' do
|
51
|
+
assert_command 'git init --bare'
|
52
|
+
end
|
53
|
+
|
54
|
+
in_dir "initial_commit" do
|
55
|
+
assert_command 'git init'
|
56
|
+
assert_command "echo 'foo bar commit' > README"
|
57
|
+
assert_command "git add . && git commit -m 'Initial commit'"
|
58
|
+
assert_command "git remote add origin #{temp_dir('origin')}"
|
59
|
+
assert_command 'git push origin master'
|
60
|
+
end
|
61
|
+
|
62
|
+
in_dir "local_checkout_1" do
|
63
|
+
assert_command "git clone #{temp_dir('origin')} ."
|
64
|
+
assert_command 'git push origin master'
|
65
|
+
assert_command 'git pull origin master'
|
66
|
+
end
|
67
|
+
|
68
|
+
in_dir "local_checkout_2" do
|
69
|
+
assert_command "git clone #{temp_dir('origin')} ."
|
70
|
+
assert_command 'git tag -a 1.0 -m "First release"'
|
71
|
+
assert_command 'git push --tags origin master'
|
72
|
+
assert_command 'git pull origin master'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
yield
|
77
|
+
|
78
|
+
# Make sure the temporary directory is purged after every run
|
79
|
+
teardown do
|
80
|
+
FileUtils.rm_rf(temp_dir)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def in_dir(name)
|
86
|
+
context "in dir '#{name}'" do
|
87
|
+
setup do
|
88
|
+
@original_wd ||= {}
|
89
|
+
@original_wd[name] = Dir.getwd
|
90
|
+
Dir.chdir(temp_dir(name))
|
91
|
+
end
|
92
|
+
|
93
|
+
yield
|
94
|
+
|
95
|
+
teardown do
|
96
|
+
Dir.chdir(@original_wd[name]) if @original_wd
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Invokes the gitc binary with given arguments and yields after the setup
|
102
|
+
def gitc(args)
|
103
|
+
context "after invoking 'gitc #{args}'" do
|
104
|
+
setup { assert_command("#{BIN_PATH} #{args}") }
|
105
|
+
yield
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def after(command)
|
110
|
+
context "after '#{command}'" do
|
111
|
+
setup do
|
112
|
+
assert_command command
|
113
|
+
end
|
114
|
+
yield
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def should_have_branch(name)
|
119
|
+
should "have branch '#{name}'" do
|
120
|
+
assert repo.branches.map(&:name).include?(name), "Found in #{Dir.getwd}: " + repo.branches.map(&:name).inspect
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def should_not_have_branch(name)
|
125
|
+
should "NOT have branch '#{name}'" do
|
126
|
+
assert !repo.branches.map(&:name).include?(name), "Found in #{Dir.getwd}: " + repo.branches.map(&:name).inspect
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
def should_have_tag(name)
|
131
|
+
should "have tag '#{name}'" do
|
132
|
+
assert repo.tags.map(&:name).include?(name), repo.tags.map(&:name).inspect
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def should_not_have_tag(name)
|
137
|
+
should "NOT have tag '#{name}'" do
|
138
|
+
assert !repo.tags.map(&:name).include?(name), repo.tags.map(&:name).inspect
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
def should_have_file(name, options)
|
143
|
+
raise "Usage: should_have_file 'filename', :in => 'tempdirname' (or %w(dir1 dir2))" unless options[:in]
|
144
|
+
[options[:in]].flatten.each do |dir|
|
145
|
+
should "have file '#{name}' in #{dir}" do
|
146
|
+
assert_equal 1, Dir[File.join(temp_dir(dir), name)].length
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def should_not_have_file(name, options)
|
152
|
+
raise "Usage: should_not_have_file 'filename', :in => 'tempdirname' (or %w(dir1 dir2))" unless options[:in]
|
153
|
+
[options[:in]].flatten.each do |dir|
|
154
|
+
should "not have file '#{name}' in #{dir}" do
|
155
|
+
assert_equal 0, Dir[File.join(temp_dir(dir), name)].length
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'capita_git'
|
4
|
+
require 'git'
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'shoulda'
|
8
|
+
|
9
|
+
require 'fileutils'
|
10
|
+
require "open4" # See http://tech.natemurray.com/2007/03/ruby-shell-commands.html
|
11
|
+
require 'shoulda_macros'
|
12
|
+
|
13
|
+
class Test::Unit::TestCase
|
14
|
+
include ShouldaMacros::InstanceMethods
|
15
|
+
extend ShouldaMacros::ClassMethods
|
16
|
+
end
|
metadata
CHANGED
@@ -2,20 +2,21 @@
|
|
2
2
|
name: capita_git
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
hash: 27
|
5
|
-
prerelease:
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.2
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sebastian Georgi
|
14
|
+
- Christoph Olszowka
|
14
15
|
autorequire:
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2011-01-
|
19
|
+
date: 2011-01-27 00:00:00 +01:00
|
19
20
|
default_executable:
|
20
21
|
dependencies:
|
21
22
|
- !ruby/object:Gem::Dependency
|
@@ -50,9 +51,56 @@ dependencies:
|
|
50
51
|
version: 0.14.6
|
51
52
|
type: :runtime
|
52
53
|
version_requirements: *id002
|
53
|
-
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: ronn
|
56
|
+
prerelease: false
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 5
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
- 7
|
66
|
+
- 3
|
67
|
+
version: 0.7.3
|
68
|
+
type: :development
|
69
|
+
version_requirements: *id003
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: shoulda
|
72
|
+
prerelease: false
|
73
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 35
|
79
|
+
segments:
|
80
|
+
- 2
|
81
|
+
- 11
|
82
|
+
- 0
|
83
|
+
version: 2.11.0
|
84
|
+
type: :development
|
85
|
+
version_requirements: *id004
|
86
|
+
- !ruby/object:Gem::Dependency
|
87
|
+
name: open4
|
88
|
+
prerelease: false
|
89
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
hash: 3
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
version: "0"
|
98
|
+
type: :development
|
99
|
+
version_requirements: *id005
|
100
|
+
description: Git-automation tool for quick handling of common patterns for feature and fix branches
|
54
101
|
email:
|
55
102
|
- sgeorgi@capita.de
|
103
|
+
- colszowka at capita de
|
56
104
|
executables:
|
57
105
|
- gitc
|
58
106
|
extensions: []
|
@@ -74,10 +122,13 @@ files:
|
|
74
122
|
- lib/capita_git/version.rb
|
75
123
|
- man/gitc-check.ronn
|
76
124
|
- man/gitc.ronn
|
125
|
+
- test/cli_test.rb
|
126
|
+
- test/shoulda_macros.rb
|
127
|
+
- test/test_helper.rb
|
77
128
|
- lib/capita_git/man/gitc
|
129
|
+
- lib/capita_git/man/gitc.txt
|
78
130
|
- lib/capita_git/man/gitc-check.txt
|
79
131
|
- lib/capita_git/man/gitc-check
|
80
|
-
- lib/capita_git/man/gitc.txt
|
81
132
|
has_rdoc: true
|
82
133
|
homepage: https://github.com/capita/capita_git
|
83
134
|
licenses: []
|
@@ -108,9 +159,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
159
|
requirements: []
|
109
160
|
|
110
161
|
rubyforge_project: capita_git
|
111
|
-
rubygems_version: 1.
|
162
|
+
rubygems_version: 1.4.1
|
112
163
|
signing_key:
|
113
164
|
specification_version: 3
|
114
|
-
summary: Git-automation tool for
|
165
|
+
summary: Git-automation tool for quick handling of common patterns for feature and fix branches
|
115
166
|
test_files: []
|
116
167
|
|