git-smart 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +3 -5
- data/Gemfile.lock +14 -22
- data/LICENSE.txt +1 -1
- data/README.md +2 -2
- data/Rakefile +4 -15
- data/VERSION +1 -1
- data/docs/images/smart-log-comparison.png +0 -0
- data/docs/images/smart-pull-screenshot.png +0 -0
- data/docs/introductory_blog_post.md +43 -0
- data/docs/smart-log.html +59 -0
- data/docs/smart-merge.html +1 -0
- data/docs/smart-pull.html +3 -2
- data/lib/commands/smart-log.rb +1 -1
- data/lib/commands/smart-pull.rb +5 -2
- metadata +70 -130
- data/git-smart.gemspec +0 -91
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,35 +2,27 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
colorize (0.5.8)
|
5
|
-
diff-lcs (1.1.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
rake
|
11
|
-
mustache (0.12.0)
|
12
|
-
rake (0.8.7)
|
13
|
-
rcov (0.9.8)
|
14
|
-
rdiscount (1.6.5)
|
15
|
-
rocco (0.5)
|
5
|
+
diff-lcs (1.1.3)
|
6
|
+
mustache (0.99.4)
|
7
|
+
rcov (0.9.11)
|
8
|
+
redcarpet (1.17.2)
|
9
|
+
rocco (0.8.2)
|
16
10
|
mustache
|
17
|
-
|
18
|
-
rspec (2.
|
19
|
-
rspec-core (~> 2.
|
20
|
-
rspec-expectations (~> 2.
|
21
|
-
rspec-mocks (~> 2.
|
22
|
-
rspec-core (2.
|
23
|
-
rspec-expectations (2.
|
11
|
+
redcarpet
|
12
|
+
rspec (2.7.0)
|
13
|
+
rspec-core (~> 2.7.0)
|
14
|
+
rspec-expectations (~> 2.7.0)
|
15
|
+
rspec-mocks (~> 2.7.0)
|
16
|
+
rspec-core (2.7.1)
|
17
|
+
rspec-expectations (2.7.0)
|
24
18
|
diff-lcs (~> 1.1.2)
|
25
|
-
rspec-mocks (2.
|
19
|
+
rspec-mocks (2.7.0)
|
26
20
|
|
27
21
|
PLATFORMS
|
28
22
|
ruby
|
29
23
|
|
30
24
|
DEPENDENCIES
|
31
|
-
bundler (~> 1.0.0)
|
32
25
|
colorize
|
33
|
-
jeweler (~> 1.5.2)
|
34
26
|
rcov
|
35
27
|
rocco
|
36
|
-
rspec
|
28
|
+
rspec
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -21,7 +21,7 @@ You almost certainly want to run this as well, to allow git commands to be outpu
|
|
21
21
|
git config --global color.ui always
|
22
22
|
|
23
23
|
Git normally only colours output when being run from the terminal, not from within scripts like these. This sorts that right out.
|
24
|
-
|
24
|
+
|
25
25
|
## Get smart!
|
26
26
|
|
27
27
|
There's only three commands at this point, but there'll be more!
|
@@ -64,5 +64,5 @@ Recommended alias to use: `gl`
|
|
64
64
|
|
65
65
|
## Copyright
|
66
66
|
|
67
|
-
Copyright (c) 2011 Glen Maddern. See LICENSE.txt for
|
67
|
+
Copyright (c) 2011 Glen Maddern and Envato Pty Ltd. See LICENSE.txt for
|
68
68
|
further details.
|
data/Rakefile
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
|
+
|
3
4
|
begin
|
4
5
|
Bundler.setup(:default, :development)
|
5
6
|
rescue Bundler::BundlerError => e
|
@@ -7,20 +8,8 @@ rescue Bundler::BundlerError => e
|
|
7
8
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
9
|
exit e.status_code
|
9
10
|
end
|
10
|
-
require 'rake'
|
11
11
|
|
12
|
-
require '
|
13
|
-
Jeweler::Tasks.new do |gem|
|
14
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
-
gem.name = "git-smart"
|
16
|
-
gem.homepage = "http://github.com/geelen/git-smart"
|
17
|
-
gem.license = "MIT"
|
18
|
-
gem.summary = %Q{Add some smarts to your git workflow}
|
19
|
-
gem.description = %Q{Installs some additional 'smart' git commands, like `git smart-pull`.}
|
20
|
-
gem.email = "glenmaddern@gmail.com"
|
21
|
-
gem.authors = ["Glen Maddern"]
|
22
|
-
end
|
23
|
-
Jeweler::RubygemsDotOrgTasks.new
|
12
|
+
require 'rake'
|
24
13
|
|
25
14
|
require 'rspec/core'
|
26
15
|
require 'rspec/core/rake_task'
|
@@ -35,7 +24,7 @@ end
|
|
35
24
|
|
36
25
|
task :default => :spec
|
37
26
|
|
38
|
-
require '
|
27
|
+
require 'rdoc/task'
|
39
28
|
Rake::RDocTask.new do |rdoc|
|
40
29
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
41
30
|
|
@@ -79,4 +68,4 @@ GitSmart.run('#{cmd}', ARGV)
|
|
79
68
|
}
|
80
69
|
end
|
81
70
|
|
82
|
-
task :
|
71
|
+
task :build => :generate_binaries
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
Binary file
|
Binary file
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Introducing git-smart
|
2
|
+
|
3
|
+
Recently, I grappled with some unexpected git behaviour when trying to rebase local changes (in particular, merge commits) onto changes from upstream. I blogged about [the solution](http://notes.envato.com/developers/rebasing-merge-commits-in-git/), which is to use `git rebase -p`, but I still didn't feel 'done'.
|
4
|
+
|
5
|
+
Most of the dev team here at Envato had begun using my [aliases](https://gist.github.com/590895), but it's not exactly an easy or maintainable solution. I also wanted to do more, such as stashing local changes if required, using fast-forward when possible, and giving more feedback to the user. But most importantly, I wanted to remove the 'magic' from using someone else's aliases and help people understand the decisions behind choosing the 'correct' git command to run.
|
6
|
+
|
7
|
+
## A gem is born
|
8
|
+
|
9
|
+
Git allows you to add arbitrary commands by placing executables on the path. When you type `git some-custom-command`, git looks for a `git-custom-command` executable on your path and executes it. It can be in any language you want and has no special access to git's internals. It's perfect.
|
10
|
+
|
11
|
+
Packaging gems also allows you to generate any number of custom executables onto the path. It's perfect, too!
|
12
|
+
|
13
|
+
Putting them together, we get [git-smart](http://github.com/geelen/git-smart):
|
14
|
+
|
15
|
+
![git-smart logo](https://github.com/geelen/git-smart/raw/master/docs/images/git-smart.png)
|
16
|
+
|
17
|
+
Installing it is as easy as `gem install git-smart` and will give you three new commands, `git smart-pull`, `git smart-merge` and `git smart-log`:
|
18
|
+
|
19
|
+
## git smart-pull, the new king of the 'fetch & rebase' workflow
|
20
|
+
|
21
|
+
The first command I wrote was designed to expand on the knowledge behind `gup`, giving people a reliably-safe method of pulling updates from the server. I also wanted to give plenty of feedback to the user while it runs, and have the source code as [readable and well-documented as possible](http://github-displayer.heroku.com/geelen/git-smart/raw/master/docs/smart-pull.html).
|
22
|
+
|
23
|
+
In a nutshell, this script will detect which branch you want to pull from, assuming origin/same-branch-name if you haven't set up branch-tracking. If the remote branch hasn't moved on, there's nothing to do. If your local branch hasn't moved on, it can simply be fast-forwarded (wrapped in a `git stash`/`git stash pop` if necessary). Only if both the remote and your local branch have moved on, fall back to a `git rebase -p`, again wrapped in a stash/pop if needed. Easy!
|
24
|
+
|
25
|
+
This is what it looks like:
|
26
|
+
|
27
|
+
![screenshot](https://github.com/geelen/git-smart/raw/master/docs/images/smart-pull-screenshot.png)
|
28
|
+
|
29
|
+
## git smart-merge, a non-fast-forward merge wrapped in a stash
|
30
|
+
|
31
|
+
If you haven't read ["A successful Git branching model"](http://nvie.com/posts/a-successful-git-branching-model/) by Vincent Driessen, you really should. It's good stuff, and it makes the argument for using the `--no-ff` flag whenever you merge. I won't repeat the arguments here, but I wrote `git smart-merge` to effectively make `--no-ff` the default. It also does a stash/pop if required.
|
32
|
+
|
33
|
+
For more detail, take a look at the [annotated source code](http://github-displayer.heroku.com/geelen/git-smart/raw/master/docs/smart-merge.html).
|
34
|
+
|
35
|
+
## git smart-log, the most blinged out ASCII log possible
|
36
|
+
|
37
|
+
Use this in place of `git log`. I'll let the output speak for itself:
|
38
|
+
|
39
|
+
![screenshot](https://github.com/geelen/git-smart/raw/master/docs/images/smart-log-comparison.png)
|
40
|
+
|
41
|
+
Check out the [code itself](http://github-displayer.heroku.com/geelen/git-smart/raw/master/docs/smart-log.html). Hat tip to [@ben_h](http://twitter.com/ben_h) for the guts of this.
|
42
|
+
|
43
|
+
Also, if you're on OSX and not using [brotherbard's fork of gitx](https://github.com/brotherbard/gitx/wiki), you really should be. It's absolutely the best way to navigate through a git project's history.
|
data/docs/smart-log.html
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>smart-log.rb</title>
|
6
|
+
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div id='container'>
|
10
|
+
<div id="background"></div>
|
11
|
+
<div id="jump_to">
|
12
|
+
Jump To …
|
13
|
+
<div id="jump_wrapper">
|
14
|
+
<div id="jump_page">
|
15
|
+
<a class="source" href="smart-log.html">smart-log.rb</a>
|
16
|
+
<a class="source" href="smart-merge.html">smart-merge.rb</a>
|
17
|
+
<a class="source" href="smart-pull.html">smart-pull.rb</a>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
<table cellspacing=0 cellpadding=0>
|
22
|
+
<thead>
|
23
|
+
<tr>
|
24
|
+
<th class=docs><h1>smart-log.rb</h1></th>
|
25
|
+
<th class=code></th>
|
26
|
+
</tr>
|
27
|
+
</thead>
|
28
|
+
<tbody>
|
29
|
+
<tr id='section-1'>
|
30
|
+
<td class=docs>
|
31
|
+
<div class="octowrap">
|
32
|
+
<a class="octothorpe" href="#section-1">#</a>
|
33
|
+
</div>
|
34
|
+
<p>This is a super simple alias for the most badass of log outputs that git
|
35
|
+
offers. Uses git log —graph under the hood.</p>
|
36
|
+
|
37
|
+
<p>Thanks to <a href="http://twitter.com/ben_h">@ben_h</a> for this one!</p>
|
38
|
+
</td>
|
39
|
+
<td class=code>
|
40
|
+
<div class='highlight'><pre><span class="no">GitSmart</span><span class="o">.</span><span class="n">register</span> <span class="s1">'smart-log'</span> <span class="k">do</span> <span class="o">|</span><span class="n">repo</span><span class="p">,</span> <span class="n">args</span><span class="o">|</span></pre></div>
|
41
|
+
</td>
|
42
|
+
</tr>
|
43
|
+
<tr id='section-2'>
|
44
|
+
<td class=docs>
|
45
|
+
<div class="octowrap">
|
46
|
+
<a class="octothorpe" href="#section-2">#</a>
|
47
|
+
</div>
|
48
|
+
<p>Super simple, passes the args through to git log, but
|
49
|
+
ratchets up the badassness quotient.</p>
|
50
|
+
|
51
|
+
</td>
|
52
|
+
<td class=code>
|
53
|
+
<div class='highlight'><pre> <span class="n">repo</span><span class="o">.</span><span class="n">log_to_shell</span><span class="p">(</span><span class="s1">'--pretty=format:%Cblue%h%d%Creset %ar %Cgreen%an%Creset %s'</span><span class="p">,</span> <span class="s1">'--graph'</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
54
|
+
<span class="k">end</span></pre></div>
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
</table>
|
58
|
+
</div>
|
59
|
+
</body>
|
data/docs/smart-merge.html
CHANGED
@@ -12,6 +12,7 @@
|
|
12
12
|
Jump To …
|
13
13
|
<div id="jump_wrapper">
|
14
14
|
<div id="jump_page">
|
15
|
+
<a class="source" href="smart-log.html">smart-log.rb</a>
|
15
16
|
<a class="source" href="smart-merge.html">smart-merge.rb</a>
|
16
17
|
<a class="source" href="smart-pull.html">smart-pull.rb</a>
|
17
18
|
</div>
|
data/docs/smart-pull.html
CHANGED
@@ -12,6 +12,7 @@
|
|
12
12
|
Jump To …
|
13
13
|
<div id="jump_wrapper">
|
14
14
|
<div id="jump_page">
|
15
|
+
<a class="source" href="smart-log.html">smart-log.rb</a>
|
15
16
|
<a class="source" href="smart-merge.html">smart-merge.rb</a>
|
16
17
|
<a class="source" href="smart-pull.html">smart-pull.rb</a>
|
17
18
|
</div>
|
@@ -34,7 +35,7 @@
|
|
34
35
|
and reapply your work on top of it. It’s like a much, much
|
35
36
|
smarter version of <code>git pull --rebase</code>.</p>
|
36
37
|
|
37
|
-
<p>For some background as to why this is needed, see <a href="
|
38
|
+
<p>For some background as to why this is needed, see <a href="http://notes.envato.com/developers/rebasing-merge-commits-in-git/">my blog
|
38
39
|
post about the perils of rebasing merge commits</a></p>
|
39
40
|
|
40
41
|
<p>This is how it works:</p>
|
@@ -244,7 +245,7 @@ to pull.</p>
|
|
244
245
|
<p>If our local branch has new commits, we need to rebase them on top of master.</p>
|
245
246
|
|
246
247
|
<p>When we rebase, we use <code>git rebase -p</code>, which attempts to recreate merges
|
247
|
-
instead of ignoring them. For a description as to why, see my <a href="
|
248
|
+
instead of ignoring them. For a description as to why, see my <a href="http://notes.envato.com/developers/rebasing-merge-commits-in-git/">blog post</a>.</p>
|
248
249
|
</td>
|
249
250
|
<td class=code>
|
250
251
|
<div class='highlight'><pre> <span class="n">note</span> <span class="s2">"Both local and remote branches have moved on. Branch 'master' needs to be rebased onto 'origin/master'"</span>
|
data/lib/commands/smart-log.rb
CHANGED
@@ -5,5 +5,5 @@
|
|
5
5
|
GitSmart.register 'smart-log' do |repo, args|
|
6
6
|
#Super simple, passes the args through to git log, but
|
7
7
|
#ratchets up the badassness quotient.
|
8
|
-
repo.log_to_shell('--pretty=format:%
|
8
|
+
repo.log_to_shell('--pretty=format:%C(yellow)%h%Cblue%d%Creset %s %C(white) %an, %ar%Creset', '--graph', *args)
|
9
9
|
end
|
data/lib/commands/smart-pull.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#smarter version of `git pull --rebase`.
|
4
4
|
#
|
5
5
|
#For some background as to why this is needed, see [my blog
|
6
|
-
#post about the perils of rebasing merge commits](
|
6
|
+
#post about the perils of rebasing merge commits](http://notes.envato.com/developers/rebasing-merge-commits-in-git/)
|
7
7
|
#
|
8
8
|
#This is how it works:
|
9
9
|
|
@@ -89,7 +89,7 @@ GitSmart.register 'smart-pull' do |repo, args|
|
|
89
89
|
#If our local branch has new commits, we need to rebase them on top of master.
|
90
90
|
#
|
91
91
|
#When we rebase, we use `git rebase -p`, which attempts to recreate merges
|
92
|
-
#instead of ignoring them. For a description as to why, see my [blog post](
|
92
|
+
#instead of ignoring them. For a description as to why, see my [blog post](http://notes.envato.com/developers/rebasing-merge-commits-in-git/).
|
93
93
|
note "Both local and remote branches have moved on. Branch 'master' needs to be rebased onto 'origin/master'"
|
94
94
|
repo.rebase_preserving_merges!(upstream_branch)
|
95
95
|
success_messages << "HEAD moved from #{head[0,7]} to #{repo.sha('HEAD')[0,7]}."
|
@@ -101,6 +101,9 @@ GitSmart.register 'smart-pull' do |repo, args|
|
|
101
101
|
repo.stash_pop!
|
102
102
|
end
|
103
103
|
|
104
|
+
#Use smart-log to show the new commits.
|
105
|
+
GitSmart.run('smart-log', ["#{merge_base}..#{upstream_branch}"])
|
106
|
+
|
104
107
|
#Display a nice completion message in large, friendly letters.
|
105
108
|
success ["All good.", *success_messages].join(" ")
|
106
109
|
end
|
metadata
CHANGED
@@ -1,138 +1,78 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-smart
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 6
|
10
|
-
version: 0.1.6
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.7
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Glen Maddern
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
type: :runtime
|
12
|
+
date: 2011-01-06 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
24
15
|
name: colorize
|
25
|
-
|
16
|
+
requirement: &70227984126720 !ruby/object:Gem::Requirement
|
26
17
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
|
32
|
-
- 0
|
33
|
-
version: "0"
|
34
|
-
requirement: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *70227984126720
|
25
|
+
- !ruby/object:Gem::Dependency
|
38
26
|
name: rspec
|
39
|
-
|
27
|
+
requirement: &70227984126060 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 3
|
48
|
-
- 0
|
49
|
-
version: 2.3.0
|
50
|
-
requirement: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
prerelease: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.7.0
|
53
33
|
type: :development
|
54
|
-
name: rcov
|
55
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
|
-
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
hash: 3
|
61
|
-
segments:
|
62
|
-
- 0
|
63
|
-
version: "0"
|
64
|
-
requirement: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
34
|
prerelease: false
|
67
|
-
|
68
|
-
|
69
|
-
|
35
|
+
version_requirements: *70227984126060
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rcov
|
38
|
+
requirement: &70227984125420 !ruby/object:Gem::Requirement
|
70
39
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
segments:
|
76
|
-
- 1
|
77
|
-
- 0
|
78
|
-
- 0
|
79
|
-
version: 1.0.0
|
80
|
-
requirement: *id004
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
prerelease: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
83
44
|
type: :development
|
84
|
-
name: jeweler
|
85
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
86
|
-
none: false
|
87
|
-
requirements:
|
88
|
-
- - ~>
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
hash: 7
|
91
|
-
segments:
|
92
|
-
- 1
|
93
|
-
- 5
|
94
|
-
- 2
|
95
|
-
version: 1.5.2
|
96
|
-
requirement: *id005
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
45
|
prerelease: false
|
99
|
-
|
46
|
+
version_requirements: *70227984125420
|
47
|
+
- !ruby/object:Gem::Dependency
|
100
48
|
name: rocco
|
101
|
-
|
49
|
+
requirement: &70227984124580 !ruby/object:Gem::Requirement
|
102
50
|
none: false
|
103
|
-
requirements:
|
104
|
-
- -
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
requirement: *id006
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70227984124580
|
111
58
|
description: Installs some additional 'smart' git commands, like `git smart-pull`.
|
112
59
|
email: glenmaddern@gmail.com
|
113
|
-
executables:
|
60
|
+
executables:
|
114
61
|
- git-smart-log
|
115
|
-
- git-smart-pull
|
116
62
|
- git-smart-merge
|
63
|
+
- git-smart-pull
|
117
64
|
extensions: []
|
118
|
-
|
119
|
-
extra_rdoc_files:
|
65
|
+
extra_rdoc_files:
|
120
66
|
- LICENSE.txt
|
121
67
|
- README.md
|
122
|
-
files:
|
123
|
-
- Gemfile
|
124
|
-
- Gemfile.lock
|
125
|
-
- LICENSE.txt
|
126
|
-
- README.md
|
127
|
-
- Rakefile
|
128
|
-
- VERSION
|
129
|
-
- bin/git-smart-log
|
130
|
-
- bin/git-smart-merge
|
131
|
-
- bin/git-smart-pull
|
68
|
+
files:
|
132
69
|
- docs/images/git-smart.png
|
70
|
+
- docs/images/smart-log-comparison.png
|
71
|
+
- docs/images/smart-pull-screenshot.png
|
72
|
+
- docs/introductory_blog_post.md
|
73
|
+
- docs/smart-log.html
|
133
74
|
- docs/smart-merge.html
|
134
75
|
- docs/smart-pull.html
|
135
|
-
- git-smart.gemspec
|
136
76
|
- lib/commands/smart-log.rb
|
137
77
|
- lib/commands/smart-merge.rb
|
138
78
|
- lib/commands/smart-pull.rb
|
@@ -145,45 +85,45 @@ files:
|
|
145
85
|
- lib/git-smart/git_repo.rb
|
146
86
|
- lib/git-smart/git_smart.rb
|
147
87
|
- lib/git-smart/safe_shell.rb
|
88
|
+
- Gemfile
|
89
|
+
- Gemfile.lock
|
90
|
+
- LICENSE.txt
|
91
|
+
- README.md
|
92
|
+
- Rakefile
|
93
|
+
- VERSION
|
148
94
|
- spec/smart-merge_failures_spec.rb
|
149
95
|
- spec/smart-merge_spec.rb
|
150
96
|
- spec/smart-pull_spec.rb
|
151
97
|
- spec/spec_helper.rb
|
152
|
-
|
98
|
+
- bin/git-smart-log
|
99
|
+
- bin/git-smart-merge
|
100
|
+
- bin/git-smart-pull
|
153
101
|
homepage: http://github.com/geelen/git-smart
|
154
|
-
licenses:
|
102
|
+
licenses:
|
155
103
|
- MIT
|
156
104
|
post_install_message:
|
157
105
|
rdoc_options: []
|
158
|
-
|
159
|
-
require_paths:
|
106
|
+
require_paths:
|
160
107
|
- lib
|
161
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
162
109
|
none: false
|
163
|
-
requirements:
|
164
|
-
- -
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
|
167
|
-
|
168
|
-
- 0
|
169
|
-
version: "0"
|
170
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ! '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
115
|
none: false
|
172
|
-
requirements:
|
173
|
-
- -
|
174
|
-
- !ruby/object:Gem::Version
|
175
|
-
|
176
|
-
segments:
|
177
|
-
- 0
|
178
|
-
version: "0"
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
179
120
|
requirements: []
|
180
|
-
|
181
121
|
rubyforge_project:
|
182
|
-
rubygems_version: 1.
|
122
|
+
rubygems_version: 1.8.6.1
|
183
123
|
signing_key:
|
184
124
|
specification_version: 3
|
185
125
|
summary: Add some smarts to your git workflow
|
186
|
-
test_files:
|
126
|
+
test_files:
|
187
127
|
- spec/smart-merge_failures_spec.rb
|
188
128
|
- spec/smart-merge_spec.rb
|
189
129
|
- spec/smart-pull_spec.rb
|
data/git-smart.gemspec
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{git-smart}
|
8
|
-
s.version = "0.1.6"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Glen Maddern"]
|
12
|
-
s.date = %q{2011-01-06}
|
13
|
-
s.description = %q{Installs some additional 'smart' git commands, like `git smart-pull`.}
|
14
|
-
s.email = %q{glenmaddern@gmail.com}
|
15
|
-
s.executables = ["git-smart-log", "git-smart-pull", "git-smart-merge"]
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE.txt",
|
18
|
-
"README.md"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
"Gemfile",
|
22
|
-
"Gemfile.lock",
|
23
|
-
"LICENSE.txt",
|
24
|
-
"README.md",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"bin/git-smart-log",
|
28
|
-
"bin/git-smart-merge",
|
29
|
-
"bin/git-smart-pull",
|
30
|
-
"docs/images/git-smart.png",
|
31
|
-
"docs/smart-merge.html",
|
32
|
-
"docs/smart-pull.html",
|
33
|
-
"git-smart.gemspec",
|
34
|
-
"lib/commands/smart-log.rb",
|
35
|
-
"lib/commands/smart-merge.rb",
|
36
|
-
"lib/commands/smart-pull.rb",
|
37
|
-
"lib/core_ext/array.rb",
|
38
|
-
"lib/core_ext/hash.rb",
|
39
|
-
"lib/core_ext/object.rb",
|
40
|
-
"lib/git-smart.rb",
|
41
|
-
"lib/git-smart/exceptions.rb",
|
42
|
-
"lib/git-smart/execution_context.rb",
|
43
|
-
"lib/git-smart/git_repo.rb",
|
44
|
-
"lib/git-smart/git_smart.rb",
|
45
|
-
"lib/git-smart/safe_shell.rb",
|
46
|
-
"spec/smart-merge_failures_spec.rb",
|
47
|
-
"spec/smart-merge_spec.rb",
|
48
|
-
"spec/smart-pull_spec.rb",
|
49
|
-
"spec/spec_helper.rb"
|
50
|
-
]
|
51
|
-
s.homepage = %q{http://github.com/geelen/git-smart}
|
52
|
-
s.licenses = ["MIT"]
|
53
|
-
s.require_paths = ["lib"]
|
54
|
-
s.rubygems_version = %q{1.3.7}
|
55
|
-
s.summary = %q{Add some smarts to your git workflow}
|
56
|
-
s.test_files = [
|
57
|
-
"spec/smart-merge_failures_spec.rb",
|
58
|
-
"spec/smart-merge_spec.rb",
|
59
|
-
"spec/smart-pull_spec.rb",
|
60
|
-
"spec/spec_helper.rb"
|
61
|
-
]
|
62
|
-
|
63
|
-
if s.respond_to? :specification_version then
|
64
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
65
|
-
s.specification_version = 3
|
66
|
-
|
67
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
68
|
-
s.add_runtime_dependency(%q<colorize>, [">= 0"])
|
69
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
70
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
71
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
72
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
73
|
-
s.add_development_dependency(%q<rocco>, [">= 0"])
|
74
|
-
else
|
75
|
-
s.add_dependency(%q<colorize>, [">= 0"])
|
76
|
-
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
77
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
78
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
79
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
80
|
-
s.add_dependency(%q<rocco>, [">= 0"])
|
81
|
-
end
|
82
|
-
else
|
83
|
-
s.add_dependency(%q<colorize>, [">= 0"])
|
84
|
-
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
85
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
86
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
87
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
88
|
-
s.add_dependency(%q<rocco>, [">= 0"])
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|