edgecase-git-pair 0.2.0 → 0.2.1
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/VERSION +1 -0
- data/edgecase-git-pair.gemspec +62 -0
- data/features/adding_an_author.feature +6 -0
- data/features/step_definitions/config_steps.rb +12 -0
- data/features/support/env.rb +2 -2
- data/foo +65 -0
- data/lib/git-pair/author.rb +10 -0
- data/lib/git-pair/command.rb +2 -0
- metadata +5 -2
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.2.1
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{edgecase-git-pair}
|
8
|
+
s.version = "0.2.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Chris Kampmeier", "Adam McCrea", "Jon Distad"]
|
12
|
+
s.date = %q{2010-02-25}
|
13
|
+
s.default_executable = %q{git-pair}
|
14
|
+
s.description = %q{A git porcelain for pair programming. Changes git-config's user.name and user.email settings so you can commit as more than one author.}
|
15
|
+
s.email = %q{adam@edgecase.com}
|
16
|
+
s.executables = ["git-pair"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE",
|
19
|
+
"README.markdown"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".autotest",
|
23
|
+
".gitignore",
|
24
|
+
"LICENSE",
|
25
|
+
"README.markdown",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"bin/git-pair",
|
29
|
+
"config/cucumber.yml",
|
30
|
+
"edgecase-git-pair.gemspec",
|
31
|
+
"features/adding_an_author.feature",
|
32
|
+
"features/removing_an_author.feature",
|
33
|
+
"features/resetting_the_pair.feature",
|
34
|
+
"features/step_definitions/config_steps.rb",
|
35
|
+
"features/support/env.rb",
|
36
|
+
"features/switching_authors.feature",
|
37
|
+
"foo",
|
38
|
+
"lib/git-pair.rb",
|
39
|
+
"lib/git-pair/author.rb",
|
40
|
+
"lib/git-pair/command.rb",
|
41
|
+
"lib/git-pair/config.rb"
|
42
|
+
]
|
43
|
+
s.homepage = %q{http://github.com/edgecase/git-pair}
|
44
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
45
|
+
s.require_paths = ["lib"]
|
46
|
+
s.rubygems_version = %q{1.3.5}
|
47
|
+
s.summary = %q{Configure git to commit as more than one author}
|
48
|
+
|
49
|
+
if s.respond_to? :specification_version then
|
50
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
51
|
+
s.specification_version = 3
|
52
|
+
|
53
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
54
|
+
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
55
|
+
else
|
56
|
+
s.add_dependency(%q<cucumber>, [">= 0"])
|
57
|
+
end
|
58
|
+
else
|
59
|
+
s.add_dependency(%q<cucumber>, [">= 0"])
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
@@ -19,3 +19,9 @@ Feature: Adding an author
|
|
19
19
|
Then `git pair` should display "Linus Torvalds" in its author list only once
|
20
20
|
And the gitconfig should include "Linus Torvalds" in its author list only once
|
21
21
|
And the gitconfig should include "linus@example.org" as the email of "Linus Torvalds"
|
22
|
+
|
23
|
+
Scenario: adding a malformed author string
|
24
|
+
When I add the author " "
|
25
|
+
And I add the author "Bob Dole"
|
26
|
+
And I add the author "Jimmy <asdf"
|
27
|
+
Then the config file should have no authors
|
@@ -38,6 +38,13 @@ Then /^`git pair` should display "([^\"]*)" in its author list only once$/ do |n
|
|
38
38
|
assert_equal 1, authors.select { |author| author == name}.size
|
39
39
|
end
|
40
40
|
|
41
|
+
Then /^`git pair` should display no authors$/ do
|
42
|
+
output = git_pair
|
43
|
+
authors = authors_list_from_output(output)
|
44
|
+
authors.size.should be_zero
|
45
|
+
end
|
46
|
+
|
47
|
+
|
41
48
|
Then /^`git pair` should display "([^\"]*)" for the current author$/ do |names|
|
42
49
|
output = git_pair
|
43
50
|
assert_equal names, current_author_from_output(output)
|
@@ -75,6 +82,11 @@ Then /^the last command's output should include "([^\"]*)"$/ do |output|
|
|
75
82
|
assert @output.include?(output)
|
76
83
|
end
|
77
84
|
|
85
|
+
Then /^the config file should have no authors$/ do
|
86
|
+
git_config(%(--global --get-all git-pair.authors)).should == ''
|
87
|
+
end
|
88
|
+
|
89
|
+
|
78
90
|
def authors_list_from_output(output)
|
79
91
|
output =~ /Author list: (.*?)\n\s?\n/im
|
80
92
|
$1.strip.split("\n").map { |name| name.strip }
|
data/features/support/env.rb
CHANGED
@@ -13,13 +13,13 @@ module RepositoryHelper
|
|
13
13
|
CONFIG_BACKUP_PATH = "#{PROJECT_PATH}/tmp"
|
14
14
|
|
15
15
|
def git_pair(options = "")
|
16
|
-
output = `HOME=#{TEST_REPO_PATH} GIT_DIR=#{TEST_REPO_DOT_GIT_PATH}
|
16
|
+
output = `HOME=#{TEST_REPO_PATH} GIT_DIR=#{TEST_REPO_DOT_GIT_PATH} #{GIT_PAIR} #{options} 2>&1`
|
17
17
|
output.gsub(/\e\[\d\d?m/, '') # strip any ANSI colors
|
18
18
|
end
|
19
19
|
|
20
20
|
def git_config(options = nil)
|
21
21
|
options ||= "--list"
|
22
|
-
`HOME=#{TEST_REPO_PATH} GIT_DIR=#{TEST_REPO_DOT_GIT_PATH}
|
22
|
+
`HOME=#{TEST_REPO_PATH} GIT_DIR=#{TEST_REPO_DOT_GIT_PATH} git config #{options} 2>&1`
|
23
23
|
end
|
24
24
|
|
25
25
|
def backup_gitconfigs
|
data/foo
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# Logfile created on Thu Feb 25 16:50:49 -0500 2010 by /
|
2
|
+
I, [2010-02-25T16:50:49.598792 #46617] INFO -- : nil
|
3
|
+
I, [2010-02-25T16:50:50.167870 #46634] INFO -- : nil
|
4
|
+
I, [2010-02-25T16:50:50.483740 #46645] INFO -- : nil
|
5
|
+
I, [2010-02-25T16:50:51.055276 #46663] INFO -- : nil
|
6
|
+
I, [2010-02-25T16:50:51.331615 #46673] INFO -- : nil
|
7
|
+
I, [2010-02-25T16:50:51.908748 #46693] INFO -- : nil
|
8
|
+
I, [2010-02-25T16:50:52.201900 #46704] INFO -- : nil
|
9
|
+
I, [2010-02-25T16:50:52.493925 #46713] INFO -- : nil
|
10
|
+
I, [2010-02-25T16:50:52.838910 #46726] INFO -- : nil
|
11
|
+
I, [2010-02-25T16:50:53.127413 #46736] INFO -- : nil
|
12
|
+
I, [2010-02-25T16:50:53.962228 #46763] INFO -- : nil
|
13
|
+
I, [2010-02-25T16:50:54.240749 #46773] INFO -- : nil
|
14
|
+
I, [2010-02-25T16:50:55.344564 #46811] INFO -- : nil
|
15
|
+
I, [2010-02-25T16:50:56.771899 #46859] INFO -- : nil
|
16
|
+
I, [2010-02-25T16:50:57.833084 #46892] INFO -- : nil
|
17
|
+
I, [2010-02-25T16:50:58.116170 #46902] INFO -- : nil
|
18
|
+
I, [2010-02-25T16:51:16.032615 #46975] INFO -- : nil
|
19
|
+
I, [2010-02-25T16:51:16.595670 #46992] INFO -- : nil
|
20
|
+
I, [2010-02-25T16:51:16.905772 #47003] INFO -- : nil
|
21
|
+
I, [2010-02-25T16:51:17.476570 #47021] INFO -- : nil
|
22
|
+
I, [2010-02-25T16:51:17.767028 #47031] INFO -- : nil
|
23
|
+
I, [2010-02-25T16:51:18.347631 #47051] INFO -- : nil
|
24
|
+
I, [2010-02-25T16:51:18.626542 #47061] INFO -- : nil
|
25
|
+
I, [2010-02-25T16:51:18.900286 #47070] INFO -- : nil
|
26
|
+
I, [2010-02-25T16:51:19.235287 #47083] INFO -- : nil
|
27
|
+
I, [2010-02-25T16:51:19.511262 #47093] INFO -- : nil
|
28
|
+
I, [2010-02-25T16:51:20.343885 #47120] INFO -- : nil
|
29
|
+
I, [2010-02-25T16:51:20.673957 #47130] INFO -- : nil
|
30
|
+
I, [2010-02-25T16:51:21.794346 #47168] INFO -- : nil
|
31
|
+
I, [2010-02-25T16:51:23.214325 #47216] INFO -- : nil
|
32
|
+
I, [2010-02-25T16:51:24.291254 #47249] INFO -- : nil
|
33
|
+
I, [2010-02-25T16:51:24.571564 #47259] INFO -- : nil
|
34
|
+
I, [2010-02-25T16:53:23.796179 #47349] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
35
|
+
I, [2010-02-25T16:53:23.814352 #47349] INFO -- : nil
|
36
|
+
I, [2010-02-25T16:53:24.367462 #47366] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
37
|
+
I, [2010-02-25T16:53:24.367663 #47366] INFO -- : nil
|
38
|
+
I, [2010-02-25T16:53:24.642472 #47376] INFO -- : #<GitPair::Author:0x619e50 @email="linus@example.org", @name="Linus Torvalds">
|
39
|
+
I, [2010-02-25T16:53:24.642623 #47376] INFO -- : nil
|
40
|
+
I, [2010-02-25T16:53:25.203469 #47394] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
41
|
+
I, [2010-02-25T16:53:25.203601 #47394] INFO -- : nil
|
42
|
+
I, [2010-02-25T16:53:25.475837 #47404] INFO -- : #<GitPair::Author:0x619e50 @email="linus@example.com", @name="Linus Torvalds">
|
43
|
+
I, [2010-02-25T16:53:25.475983 #47404] INFO -- : nil
|
44
|
+
I, [2010-02-25T16:53:26.046659 #47424] INFO -- : #<GitPair::Author:0x7d7f8 @email="", @name="">
|
45
|
+
I, [2010-02-25T16:53:26.046792 #47424] INFO -- : nil
|
46
|
+
I, [2010-02-25T16:53:26.325583 #47434] INFO -- : #<GitPair::Author:0x7f404 @email="", @name="">
|
47
|
+
I, [2010-02-25T16:53:26.325716 #47434] INFO -- : nil
|
48
|
+
I, [2010-02-25T16:53:26.592889 #47443] INFO -- : #<GitPair::Author:0x619e8c @email="", @name="">
|
49
|
+
I, [2010-02-25T16:53:26.593022 #47443] INFO -- : nil
|
50
|
+
I, [2010-02-25T16:53:26.914915 #47456] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
51
|
+
I, [2010-02-25T16:53:26.915065 #47456] INFO -- : nil
|
52
|
+
I, [2010-02-25T16:53:27.195149 #47466] INFO -- : #<GitPair::Author:0x619e50 @email="junio@example.org", @name="Junio C Hamano">
|
53
|
+
I, [2010-02-25T16:53:27.195291 #47466] INFO -- : nil
|
54
|
+
I, [2010-02-25T16:53:28.073257 #47493] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
55
|
+
I, [2010-02-25T16:53:28.073412 #47493] INFO -- : nil
|
56
|
+
I, [2010-02-25T16:53:28.394054 #47504] INFO -- : #<GitPair::Author:0x619e50 @email="junio@example.org", @name="Junio C Hamano">
|
57
|
+
I, [2010-02-25T16:53:28.394197 #47504] INFO -- : nil
|
58
|
+
I, [2010-02-25T16:53:29.492154 #47542] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
59
|
+
I, [2010-02-25T16:53:29.492287 #47542] INFO -- : nil
|
60
|
+
I, [2010-02-25T16:53:30.880479 #47590] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
61
|
+
I, [2010-02-25T16:53:30.881116 #47590] INFO -- : nil
|
62
|
+
I, [2010-02-25T16:53:32.004486 #47623] INFO -- : #<GitPair::Author:0x300804 @email="linus@example.org", @name="Linus Torvalds">
|
63
|
+
I, [2010-02-25T16:53:32.006099 #47623] INFO -- : nil
|
64
|
+
I, [2010-02-25T16:53:32.286488 #47633] INFO -- : #<GitPair::Author:0x619e50 @email="junio@example.org", @name="Junio C Hamano">
|
65
|
+
I, [2010-02-25T16:53:32.286632 #47633] INFO -- : nil
|
data/lib/git-pair/author.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module GitPair
|
2
2
|
class Author
|
3
|
+
|
4
|
+
class InvalidAuthorString < TypeError; end
|
3
5
|
|
4
6
|
def self.all
|
5
7
|
Config.all_author_strings.map { |string| new(string) }
|
@@ -28,9 +30,17 @@ module GitPair
|
|
28
30
|
self.all.find { |a| a.name == author.name }
|
29
31
|
end
|
30
32
|
|
33
|
+
def self.valid_string?(author_string)
|
34
|
+
author_string =~ /^\s*[^<]+\s*<[^>]+>\s*$/
|
35
|
+
end
|
36
|
+
|
31
37
|
attr_reader :name, :email
|
32
38
|
|
33
39
|
def initialize(string)
|
40
|
+
unless Author.valid_string?(string)
|
41
|
+
raise(InvalidAuthorString, "\"#{string}\" is not a valid name and email")
|
42
|
+
end
|
43
|
+
|
34
44
|
string =~ /^(.+)\s+<([^>]+)>$/
|
35
45
|
@name = $1.to_s
|
36
46
|
@email = $2.to_s
|
data/lib/git-pair/command.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: edgecase-git-pair
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Kampmeier
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2010-02-
|
14
|
+
date: 2010-02-25 00:00:00 -05:00
|
15
15
|
default_executable: git-pair
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
@@ -39,14 +39,17 @@ files:
|
|
39
39
|
- LICENSE
|
40
40
|
- README.markdown
|
41
41
|
- Rakefile
|
42
|
+
- VERSION
|
42
43
|
- bin/git-pair
|
43
44
|
- config/cucumber.yml
|
45
|
+
- edgecase-git-pair.gemspec
|
44
46
|
- features/adding_an_author.feature
|
45
47
|
- features/removing_an_author.feature
|
46
48
|
- features/resetting_the_pair.feature
|
47
49
|
- features/step_definitions/config_steps.rb
|
48
50
|
- features/support/env.rb
|
49
51
|
- features/switching_authors.feature
|
52
|
+
- foo
|
50
53
|
- lib/git-pair.rb
|
51
54
|
- lib/git-pair/author.rb
|
52
55
|
- lib/git-pair/command.rb
|