gitit 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/gitit/command_branch.rb +33 -0
- data/lib/gitit/command_branches.rb +41 -0
- data/lib/gitit/git.rb +7 -2
- data/lib/gitit/repo.rb +1 -1
- data/lib/tasks/version.rake +138 -0
- data/spec/gitit_branch_spec.rb +29 -0
- data/spec/gitit_branches_spec.rb +83 -0
- data/spec/gitit_config_spec.rb +1 -1
- data/spec/gitit_spec.rb +1 -0
- data/spec/gitit_status_spec.rb +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af209587e77caca9136ae19f2d0efbf8ba3eb91b
|
4
|
+
data.tar.gz: 666be3564b3934764dc32bd234b3d5fb33826e89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6021bd64aad05f62f49cf37418428b40fc2a4bce8aac5d61530495be7258d98d27822ff9eda80f16752971206896e9508fcd447293a5ec899fef17901da8d5c9
|
7
|
+
data.tar.gz: 4f56f4a768aa3920f4ad1eaacb1170d823b595c0f25377d2fbc1523f47d5e5f1f4b69a5b19b17c4aa30fe18f80736d363b2169d1566dbd8c5b8777cec789e1a1
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
require "gitit/command_executor"
|
3
|
+
|
4
|
+
Bundler.require(:default)
|
5
|
+
|
6
|
+
module Gitit
|
7
|
+
|
8
|
+
# ---------------------------------------------------------------------------
|
9
|
+
# ---------------------------------------------------------------------------
|
10
|
+
class Branch
|
11
|
+
include CommandExecutor
|
12
|
+
|
13
|
+
attr_reader :name;
|
14
|
+
|
15
|
+
# -------------------------------------------------------------------------
|
16
|
+
# -------------------------------------------------------------------------
|
17
|
+
def initialize(repo, name)
|
18
|
+
@repo = repo
|
19
|
+
@name = name
|
20
|
+
end
|
21
|
+
|
22
|
+
# -------------------------------------------------------------------------
|
23
|
+
# -------------------------------------------------------------------------
|
24
|
+
def valid?
|
25
|
+
executeCommand("diff --cached --no-ext-diff --ignore-submodules --quiet --exit-code")
|
26
|
+
return true if $?.exitstatus == 1
|
27
|
+
return false
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
require "gitit/command_executor"
|
3
|
+
|
4
|
+
Bundler.require(:default)
|
5
|
+
|
6
|
+
module Gitit
|
7
|
+
|
8
|
+
# ---------------------------------------------------------------------------
|
9
|
+
# ---------------------------------------------------------------------------
|
10
|
+
class Branches
|
11
|
+
include CommandExecutor
|
12
|
+
|
13
|
+
# -------------------------------------------------------------------------
|
14
|
+
# -------------------------------------------------------------------------
|
15
|
+
def initialize(repo)
|
16
|
+
@repo = repo
|
17
|
+
end
|
18
|
+
|
19
|
+
# -------------------------------------------------------------------------
|
20
|
+
# -------------------------------------------------------------------------
|
21
|
+
def existsLocally?(name)
|
22
|
+
branches = executeCommand("branch --no-color | sed 's/^[* ] //'")
|
23
|
+
executeCommand("branch --no-color | sed 's/^[* ] //' | grep #{name}")
|
24
|
+
return true if $?.exitstatus == 0
|
25
|
+
return false
|
26
|
+
end
|
27
|
+
|
28
|
+
# -------------------------------------------------------------------------
|
29
|
+
# -------------------------------------------------------------------------
|
30
|
+
def existsRemotely?(name)
|
31
|
+
branches = executeCommand("branch -r --no-color | sed 's/^[* ] //'")
|
32
|
+
executeCommand("branch --no-color | sed 's/^[* ] //' | grep #{name}")
|
33
|
+
return true if $?.exitstatus == 0
|
34
|
+
return false
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
|
data/lib/gitit/git.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
require "bundler/setup"
|
2
2
|
require "gitit"
|
3
3
|
require "gitit/repo"
|
4
|
-
|
5
|
-
require
|
4
|
+
Dir[File.dirname(__FILE__) + "/command_*.rb"].each do |file|
|
5
|
+
require file
|
6
|
+
end
|
7
|
+
#require "gitit/command_config"
|
8
|
+
#require "gitit/command_status"
|
6
9
|
|
7
10
|
Bundler.require(:default)
|
8
11
|
|
@@ -14,6 +17,7 @@ module Gitit
|
|
14
17
|
attr_reader :repo;
|
15
18
|
attr_reader :config;
|
16
19
|
attr_reader :status;
|
20
|
+
attr_reader :branches;
|
17
21
|
|
18
22
|
# -------------------------------------------------------------------------
|
19
23
|
# -------------------------------------------------------------------------
|
@@ -21,6 +25,7 @@ module Gitit
|
|
21
25
|
@repo = Repo.new(location)
|
22
26
|
@config = Config.new(repo)
|
23
27
|
@status = Status.new(repo)
|
28
|
+
@branches = Branches.new(repo)
|
24
29
|
end
|
25
30
|
end
|
26
31
|
|
data/lib/gitit/repo.rb
CHANGED
@@ -20,7 +20,7 @@ module Gitit
|
|
20
20
|
# -------------------------------------------------------------------------
|
21
21
|
# -------------------------------------------------------------------------
|
22
22
|
def valid?
|
23
|
-
commandres = `(cd #{@location} && git
|
23
|
+
commandres = `(cd #{@location} && git rev-parse --git-dir >/dev/null 2>&1)`
|
24
24
|
return true unless $?.exitstatus != 0
|
25
25
|
return false
|
26
26
|
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
require 'cli-colorize'
|
2
|
+
|
3
|
+
def valid? version
|
4
|
+
pattern = /^\d+\.\d+\.\d+(\-(dev|beta|rc\d+))?$/
|
5
|
+
raise "Tried to set invalid version: #{version}".red unless version =~ pattern
|
6
|
+
end
|
7
|
+
|
8
|
+
def correct_version version
|
9
|
+
ver, flag = version.split '-'
|
10
|
+
v = ver.split '.'
|
11
|
+
(0..2).each do |n|
|
12
|
+
v[n] = v[n].to_i
|
13
|
+
end
|
14
|
+
[v.join('.'), flag].compact.join '-'
|
15
|
+
end
|
16
|
+
|
17
|
+
def read_version
|
18
|
+
begin
|
19
|
+
File.read 'VERSION'
|
20
|
+
rescue
|
21
|
+
raise "VERSION file not found or unreadable.".red
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def write_version version
|
26
|
+
valid? version
|
27
|
+
begin
|
28
|
+
File.open 'VERSION', 'w' do |file|
|
29
|
+
file.write correct_version(version)
|
30
|
+
end
|
31
|
+
rescue
|
32
|
+
raise "VERSION file not found or unwritable.".red
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def reset current, which
|
37
|
+
version, flag = current.split '-'
|
38
|
+
v = version.split '.'
|
39
|
+
which.each do |part|
|
40
|
+
v[part] = 0
|
41
|
+
end
|
42
|
+
[v.join('.'), flag].compact.join '-'
|
43
|
+
end
|
44
|
+
|
45
|
+
def increment current, which
|
46
|
+
version, flag = current.split '-'
|
47
|
+
v = version.split '.'
|
48
|
+
v[which] = v[which].to_i + 1
|
49
|
+
[v.join('.'), flag].compact.join '-'
|
50
|
+
end
|
51
|
+
|
52
|
+
desc "Prints the current application version"
|
53
|
+
version = read_version
|
54
|
+
task :version do
|
55
|
+
puts <<HELP
|
56
|
+
Available commands are:
|
57
|
+
-----------------------
|
58
|
+
rake version:write[version] # set custom version in the x.x.x-? format
|
59
|
+
rake version:patch # increment the patch x.x.x+1 (keeps any flags on)
|
60
|
+
rake version:minor # increment minor and reset patch x.x+1.0 (keeps any flags on)
|
61
|
+
rake version:major # increment major and reset others x+1.0.0 (keeps any flags on)
|
62
|
+
rake version:dev # set the dev flag on x.x.x-dev
|
63
|
+
rake version:beta # set the beta flag on x.x.x-beta
|
64
|
+
rake version:rc # set or increment the rc flag x.x.x-rcX
|
65
|
+
rake version:release # removes any flags from the current version
|
66
|
+
|
67
|
+
HELP
|
68
|
+
puts "Current version is: #{version.green}"
|
69
|
+
end
|
70
|
+
|
71
|
+
namespace :version do
|
72
|
+
|
73
|
+
desc "Write version explicitly by specifying version number as a parameter"
|
74
|
+
task :write, [:version] do |task, args|
|
75
|
+
write_version args[:version].strip
|
76
|
+
puts "Version explicitly written: #{read_version.green}"
|
77
|
+
end
|
78
|
+
|
79
|
+
desc "Increments the patch version"
|
80
|
+
task :patch do
|
81
|
+
new_version = increment read_version, 2
|
82
|
+
write_version new_version
|
83
|
+
puts "Application patched: #{new_version.green}"
|
84
|
+
end
|
85
|
+
|
86
|
+
desc "Increments the minor version and resets the patch"
|
87
|
+
task :minor do
|
88
|
+
incremented = increment read_version, 1
|
89
|
+
new_version = reset incremented, [2]
|
90
|
+
write_version new_version
|
91
|
+
puts "New version released: #{new_version.green}"
|
92
|
+
end
|
93
|
+
|
94
|
+
desc "Increments the major version and resets both minor and patch"
|
95
|
+
task :major do
|
96
|
+
incremented = increment read_version, 0
|
97
|
+
new_version = reset incremented, [1, 2]
|
98
|
+
write_version new_version
|
99
|
+
puts "Major application version change: #{new_version.green}. Congratulations!"
|
100
|
+
end
|
101
|
+
|
102
|
+
desc "Sets the development flag on"
|
103
|
+
task :dev do
|
104
|
+
version, flag = read_version.split '-'
|
105
|
+
new_version = [version, 'dev'].join '-'
|
106
|
+
write_version new_version
|
107
|
+
puts "Version in development: #{new_version.green}"
|
108
|
+
end
|
109
|
+
|
110
|
+
desc "Sets the beta flag on"
|
111
|
+
task :beta do
|
112
|
+
version, flag = read_version.split '-'
|
113
|
+
new_version = [version, 'beta'].join '-'
|
114
|
+
write_version new_version
|
115
|
+
puts "Version in beta: #{new_version.green}"
|
116
|
+
end
|
117
|
+
|
118
|
+
desc "Sets or increments the rc flag"
|
119
|
+
task :rc do
|
120
|
+
version, flag = read_version.split '-'
|
121
|
+
rc = /^rc(\d+)$/.match flag
|
122
|
+
if rc
|
123
|
+
new_version = [version, "rc#{rc[1].to_i+1}"].join '-'
|
124
|
+
else
|
125
|
+
new_version = [version, 'rc1'].join '-'
|
126
|
+
end
|
127
|
+
write_version new_version
|
128
|
+
puts "New version release candidate: #{new_version.green}"
|
129
|
+
end
|
130
|
+
|
131
|
+
desc "Removes any version flags"
|
132
|
+
task :release do
|
133
|
+
version, flag = read_version.split '-'
|
134
|
+
write_version version
|
135
|
+
puts "Released stable version: #{version.green}"
|
136
|
+
end
|
137
|
+
|
138
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
module Gitit
|
4
|
+
|
5
|
+
describe Branch do
|
6
|
+
|
7
|
+
# -------------------------------------------------------------------------
|
8
|
+
# -------------------------------------------------------------------------
|
9
|
+
describe "#testRepoBranch" do
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
FileUtils.mkpath TEST_REPO_PATH
|
13
|
+
git = Git.new(TEST_REPO_PATH)
|
14
|
+
@myRepo = git.repo
|
15
|
+
@myRepo.init
|
16
|
+
@repoBranch = Gitit::Branch.new(@myRepo, "master")
|
17
|
+
end
|
18
|
+
|
19
|
+
it "will tell us if the branch is a valid branch" do
|
20
|
+
end
|
21
|
+
|
22
|
+
after(:each) do
|
23
|
+
FileUtils.rm_rf TEST_REPO_PATH
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
module Gitit
|
4
|
+
|
5
|
+
describe Branches do
|
6
|
+
|
7
|
+
# -------------------------------------------------------------------------
|
8
|
+
# -------------------------------------------------------------------------
|
9
|
+
describe "#testBranchesExistance" do
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
FileUtils.mkpath TEST_REPO_PATH
|
13
|
+
git = Git.new(TEST_REPO_PATH)
|
14
|
+
@myRepo = git.repo
|
15
|
+
@myRepo.init
|
16
|
+
@repoBranches = git.branches
|
17
|
+
|
18
|
+
File.open("#{TEST_REPO_PATH}/out.txt", "w+") { |file| file.write("boo!") }
|
19
|
+
`(cd #{TEST_REPO_PATH} && git add #{TEST_REPO_PATH}/out.txt && git commit -am "wip")`
|
20
|
+
|
21
|
+
`(mkdir -p #{TEST_REPO_PATH_BARE} && cd #{TEST_REPO_PATH_BARE} && git init --bare)`
|
22
|
+
`(cd #{TEST_REPO_PATH} && git remote add origin #{TEST_REPO_PATH_BARE})`
|
23
|
+
`(cd #{TEST_REPO_PATH} && git push origin master --quiet)`
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
it "will successfully find a valid local branch" do
|
28
|
+
@repoBranches.existsLocally?("master").should eq true
|
29
|
+
end
|
30
|
+
|
31
|
+
it "will fail to find an invalid local branch" do
|
32
|
+
@repoBranches.existsLocally?("asdasdsad").should eq false
|
33
|
+
end
|
34
|
+
|
35
|
+
it "will successfully find a valid remote branch" do
|
36
|
+
@repoBranches.existsRemotely?("master").should eq true
|
37
|
+
end
|
38
|
+
|
39
|
+
it "will fail to find an invalid remote branch" do
|
40
|
+
@repoBranches.existsRemotely?("asdasdsad").should eq false
|
41
|
+
end
|
42
|
+
|
43
|
+
after(:each) do
|
44
|
+
FileUtils.rm_rf TEST_REPO_PATH
|
45
|
+
FileUtils.rm_rf TEST_REPO_PATH_BARE
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
# -------------------------------------------------------------------------
|
51
|
+
# -------------------------------------------------------------------------
|
52
|
+
describe "#testBranchCreationLocally" do
|
53
|
+
|
54
|
+
before(:each) do
|
55
|
+
FileUtils.mkpath TEST_REPO_PATH
|
56
|
+
git = Git.new(TEST_REPO_PATH)
|
57
|
+
@myRepo = git.repo
|
58
|
+
@myRepo.init
|
59
|
+
@repoBranches = git.branches
|
60
|
+
|
61
|
+
File.open("#{TEST_REPO_PATH}/out.txt", "w+") { |file| file.write("boo!") }
|
62
|
+
`(cd #{TEST_REPO_PATH} && git add #{TEST_REPO_PATH}/out.txt && git commit -am "wip")`
|
63
|
+
|
64
|
+
`(mkdir -p #{TEST_REPO_PATH_BARE} && cd #{TEST_REPO_PATH_BARE} && git init --bare)`
|
65
|
+
`(cd #{TEST_REPO_PATH} && git remote add origin #{TEST_REPO_PATH_BARE})`
|
66
|
+
`(cd #{TEST_REPO_PATH} && git push origin master --quiet)`
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
after(:each) do
|
71
|
+
FileUtils.rm_rf TEST_REPO_PATH
|
72
|
+
FileUtils.rm_rf TEST_REPO_PATH_BARE
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
# -------------------------------------------------------------------------
|
78
|
+
# -------------------------------------------------------------------------
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
data/spec/gitit_config_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
3
3
|
|
4
4
|
module Gitit
|
5
5
|
|
6
|
-
describe
|
6
|
+
describe Config do
|
7
7
|
|
8
8
|
# -------------------------------------------------------------------------
|
9
9
|
# -------------------------------------------------------------------------
|
data/spec/gitit_spec.rb
CHANGED
data/spec/gitit_status_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
3
3
|
|
4
4
|
module Gitit
|
5
5
|
|
6
|
-
describe
|
6
|
+
describe Status do
|
7
7
|
|
8
8
|
# -------------------------------------------------------------------------
|
9
9
|
# -------------------------------------------------------------------------
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pat Laplante
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: '"ruby git command line wrapper"'
|
14
14
|
email:
|
@@ -33,12 +33,17 @@ files:
|
|
33
33
|
- gitit.gemspecbak
|
34
34
|
- lib/ext/string.rb
|
35
35
|
- lib/gitit.rb
|
36
|
+
- lib/gitit/command_branch.rb
|
37
|
+
- lib/gitit/command_branches.rb
|
36
38
|
- lib/gitit/command_config.rb
|
37
39
|
- lib/gitit/command_executor.rb
|
38
40
|
- lib/gitit/command_status.rb
|
39
41
|
- lib/gitit/git.rb
|
40
42
|
- lib/gitit/repo.rb
|
41
43
|
- lib/gitit/version.rb
|
44
|
+
- lib/tasks/version.rake
|
45
|
+
- spec/gitit_branch_spec.rb
|
46
|
+
- spec/gitit_branches_spec.rb
|
42
47
|
- spec/gitit_config_spec.rb
|
43
48
|
- spec/gitit_spec.rb
|
44
49
|
- spec/gitit_status_spec.rb
|
@@ -71,6 +76,8 @@ test_files:
|
|
71
76
|
- features/gitit.feature
|
72
77
|
- features/step_definitions/gitit_steps.rb
|
73
78
|
- features/support/env.rb
|
79
|
+
- spec/gitit_branch_spec.rb
|
80
|
+
- spec/gitit_branches_spec.rb
|
74
81
|
- spec/gitit_config_spec.rb
|
75
82
|
- spec/gitit_spec.rb
|
76
83
|
- spec/gitit_status_spec.rb
|