git-smart 0.1.6 → 0.1.7
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/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
|
+

|
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
|
+

|
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
|
+

|
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
|
-
|