defunkt-github 0.3.2 → 0.3.3
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/Manifest +6 -3
- data/commands/network.rb +113 -0
- data/github-gem.gemspec +2 -2
- metadata +2 -1
data/Manifest
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
History.txt
|
2
2
|
LICENSE
|
3
|
-
Manifest
|
4
|
-
README
|
3
|
+
Manifest
|
4
|
+
README
|
5
5
|
Rakefile
|
6
|
+
bin/gh
|
6
7
|
bin/github
|
7
8
|
commands/commands.rb
|
8
9
|
commands/helpers.rb
|
9
|
-
|
10
|
+
commands/network.rb
|
11
|
+
github-gem.gemspec
|
10
12
|
lib/github/command.rb
|
11
13
|
lib/github/extensions.rb
|
12
14
|
lib/github/helper.rb
|
15
|
+
lib/github.rb
|
13
16
|
spec/command_spec.rb
|
14
17
|
spec/extensions_spec.rb
|
15
18
|
spec/github_spec.rb
|
data/commands/network.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
desc "Project network tools - sub-commands : web [user], list, fetch, commits"
|
2
|
+
flags :after => "Only show commits after a certain date"
|
3
|
+
flags :before => "Only show commits before a certain date"
|
4
|
+
flags :shas => "Only show shas"
|
5
|
+
flags :project => "Filter commits on a certain project"
|
6
|
+
flags :author => "Filter commits on a email address of author"
|
7
|
+
flags :applies => "Filter commits to patches that apply cleanly"
|
8
|
+
flags :noapply => "Filter commits to patches that do not apply cleanly"
|
9
|
+
flags :nocache => "Do not use the cached network data"
|
10
|
+
flags :cache => "Use the network data even if it's expired"
|
11
|
+
flags :sort => "How to sort : date(*), branch, author"
|
12
|
+
flags :common => "Show common branch point"
|
13
|
+
flags :thisbranch => "Look at branches that match the current one"
|
14
|
+
flags :limit => "Only look through the first X heads - useful for really large projects"
|
15
|
+
command :network do |command, user|
|
16
|
+
return if !helper.project
|
17
|
+
user ||= helper.owner
|
18
|
+
|
19
|
+
case command
|
20
|
+
when 'web'
|
21
|
+
helper.open helper.network_page_for(user)
|
22
|
+
when 'list'
|
23
|
+
data = helper.get_network_data(user, options)
|
24
|
+
data['users'].each do |hsh|
|
25
|
+
puts [ hsh['name'].ljust(20), hsh['heads'].map {|a| a['name']}.uniq.join(', ') ].join(' ')
|
26
|
+
end
|
27
|
+
when 'fetch'
|
28
|
+
# fetch each remote we don't have
|
29
|
+
data = helper.get_network_data(user, options)
|
30
|
+
data['users'].each do |hsh|
|
31
|
+
u = hsh['name']
|
32
|
+
GitHub.invoke(:track, u) unless helper.tracking?(u)
|
33
|
+
puts "fetching #{u}"
|
34
|
+
GitHub.invoke(:fetch_all, u)
|
35
|
+
end
|
36
|
+
when 'commits'
|
37
|
+
# show commits we don't have yet
|
38
|
+
|
39
|
+
$stderr.puts 'gathering heads'
|
40
|
+
cherry = []
|
41
|
+
|
42
|
+
if helper.cache_commits_data(options)
|
43
|
+
ids = []
|
44
|
+
data = helper.get_network_data(user, options)
|
45
|
+
data['users'].each do |hsh|
|
46
|
+
u = hsh['name']
|
47
|
+
if options[:thisbranch]
|
48
|
+
user_ids = hsh['heads'].map { |a| a['id'] if a['name'] == helper.current_branch }.compact
|
49
|
+
else
|
50
|
+
user_ids = hsh['heads'].map { |a| a['id'] }
|
51
|
+
end
|
52
|
+
user_ids.each do |id|
|
53
|
+
if !helper.has_commit?(id) && helper.cache_expired?
|
54
|
+
GitHub.invoke(:track, u) unless helper.tracking?(u)
|
55
|
+
puts "fetching #{u}"
|
56
|
+
GitHub.invoke(:fetch_all, u)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
ids += user_ids
|
60
|
+
end
|
61
|
+
ids.uniq!
|
62
|
+
|
63
|
+
$stderr.puts 'has heads'
|
64
|
+
|
65
|
+
# check that we have all these shas locally
|
66
|
+
local_heads = helper.local_heads
|
67
|
+
local_heads_not = local_heads.map { |a| "^#{a}"}
|
68
|
+
looking_for = (ids - local_heads) + local_heads_not
|
69
|
+
commits = helper.get_commits(looking_for)
|
70
|
+
|
71
|
+
$stderr.puts 'ID SIZE:' + ids.size.to_s
|
72
|
+
|
73
|
+
ignores = helper.ignore_sha_array
|
74
|
+
|
75
|
+
ids.each do |id|
|
76
|
+
next if ignores[id] || !commits.assoc(id)
|
77
|
+
cherries = helper.get_cherry(id)
|
78
|
+
cherries = helper.remove_ignored(cherries, ignores)
|
79
|
+
cherry += cherries
|
80
|
+
helper.ignore_shas([id]) if cherries.size == 0
|
81
|
+
$stderr.puts "checking head #{id} : #{cherry.size.to_s}"
|
82
|
+
break if options[:limit] && cherry.size > options[:limit].to_i
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
if cherry.size > 0 || !helper.cache_commits_data(options)
|
87
|
+
helper.print_network_cherry_help if !options[:shas]
|
88
|
+
|
89
|
+
if helper.cache_commits_data(options)
|
90
|
+
$stderr.puts "caching..."
|
91
|
+
$stderr.puts "commits: " + cherry.size.to_s
|
92
|
+
our_commits = cherry.map { |item| c = commits.assoc(item[1]); [item, c] if c }
|
93
|
+
our_commits.delete_if { |item| item == nil }
|
94
|
+
helper.cache_commits(our_commits)
|
95
|
+
else
|
96
|
+
$stderr.puts "using cached..."
|
97
|
+
our_commits = helper.commits_cache
|
98
|
+
end
|
99
|
+
|
100
|
+
helper.print_commits(our_commits, options)
|
101
|
+
else
|
102
|
+
puts "no unapplied commits"
|
103
|
+
end
|
104
|
+
else
|
105
|
+
helper.print_network_help
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
desc "Ignore a SHA (from 'github network commits')"
|
110
|
+
command :ignore do |sha|
|
111
|
+
commits = helper.resolve_commits(sha)
|
112
|
+
helper.ignore_shas(commits) # add to .git/ignore-shas file
|
113
|
+
end
|
data/github-gem.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "github"
|
3
|
-
s.version = "0.3.
|
3
|
+
s.version = "0.3.3"
|
4
4
|
|
5
5
|
s.specification_version = 2 if s.respond_to? :specification_version=
|
6
6
|
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.email = %q{chris@ozmm.org}
|
13
13
|
s.executables = ["github", "gh"]
|
14
14
|
s.extra_rdoc_files = ["bin/github", "bin/gh", "lib/github/extensions.rb", "lib/github/command.rb", "lib/github/helper.rb", "lib/github.rb", "LICENSE", "README"]
|
15
|
-
s.files = ["bin/github", "commands/commands.rb", "commands/helpers.rb", "lib/github/extensions.rb", "lib/github/command.rb", "lib/github/helper.rb", "lib/github.rb", "LICENSE", "Manifest", "README", "spec/command_spec.rb", "spec/extensions_spec.rb", "spec/github_spec.rb", "spec/helper_spec.rb", "spec/spec_helper.rb", "spec/ui_spec.rb", "spec/windoze_spec.rb", "github-gem.gemspec"]
|
15
|
+
s.files = ["bin/github", "commands/network.rb", "commands/commands.rb", "commands/helpers.rb", "lib/github/extensions.rb", "lib/github/command.rb", "lib/github/helper.rb", "lib/github.rb", "LICENSE", "Manifest", "README", "spec/command_spec.rb", "spec/extensions_spec.rb", "spec/github_spec.rb", "spec/helper_spec.rb", "spec/spec_helper.rb", "spec/ui_spec.rb", "spec/windoze_spec.rb", "github-gem.gemspec"]
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.homepage = %q{http://github.com/}
|
18
18
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Github", "--main", "README"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: defunkt-github
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Wanstrath, Kevin Ballard, Scott Chacon
|
@@ -39,6 +39,7 @@ extra_rdoc_files:
|
|
39
39
|
- README
|
40
40
|
files:
|
41
41
|
- bin/github
|
42
|
+
- commands/network.rb
|
42
43
|
- commands/commands.rb
|
43
44
|
- commands/helpers.rb
|
44
45
|
- lib/github/extensions.rb
|