mgit 0.3.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72da3e471054578d574fab47f09886ebdf696676
4
- data.tar.gz: 889b8f08aa19321f4162aceddb7e9b0e4beca58c
3
+ metadata.gz: d9b3bfc54404924e4ed38ea5a98aa62a11707fa4
4
+ data.tar.gz: c72619042d01acef75e949a9e957bf63f84421c8
5
5
  SHA512:
6
- metadata.gz: fe550448650a1c9cc3530e1cf583423771a7630b4c11069051ba8743c269abdc2f1dbfbc91db07bcd31049d8c66dab4f036f64047797d650461ddadeb60bd675
7
- data.tar.gz: 6ca1f337596f69e8ec7f223857c8b2b1715bed676c9a3dc47849a138e9c7c57f169700b54ccbc6c6acf1a029ae250643377f29963eeef4667c4d00f9340297c2
6
+ metadata.gz: 09e18f231d617d8ecd65e59f690d337a0cfa11de889d33e52babb830476ddb9003b96eb113bef2e4764157f30d63c661f85dd2f4b7ac9b5e92b97a67a65b0ae6
7
+ data.tar.gz: 658fb29f923abb609ab78972d3dfedf379ae7d338d78293f99d97338b34723b6eeb999a88295da7f70ad1b220bfc8d3f0d90d30f00d359fb8058c2d0f0c12c0a
@@ -0,0 +1,64 @@
1
+ module MGit
2
+ class ShowCommand < Command
3
+ def execute(args)
4
+ @commit = args.shift
5
+
6
+ case repos.size
7
+ when 0
8
+ perror "Couldn't find commit #{@commit} in any repository."
9
+ when 1
10
+ show_commit(repos.first)
11
+ else
12
+ show_menu
13
+ end
14
+ end
15
+
16
+ def arity
17
+ [1, 1]
18
+ end
19
+
20
+ def usage
21
+ 'show <commit-sha/obj>'
22
+ end
23
+
24
+ def description
25
+ 'display commit object from any repository'
26
+ end
27
+
28
+ register_command :show
29
+
30
+ private
31
+
32
+ def repos
33
+ @rs || begin
34
+ @rs = []
35
+ Registry.chdir_each do |r|
36
+ @rs << r if has_commit?
37
+ end
38
+ @rs
39
+ end
40
+ end
41
+
42
+ def has_commit?
43
+ !(`git rev-parse --quiet --verify #{@commit}`.empty?)
44
+ end
45
+
46
+ def show_commit(repo)
47
+ repo.chdir do
48
+ system("git show #{@commit}")
49
+ end
50
+ end
51
+
52
+ def show_menu
53
+ pinfo "Found commit #{@commit} in multiple repositories."
54
+ choose do |menu|
55
+ menu.prompt = 'Which one should be used?'
56
+ repos.each do |r|
57
+ menu.choice(r.name) do
58
+ show_commit(r)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -96,12 +96,14 @@ module MGit
96
96
  [:index, :dirty, :untracked].any? { |f| flags.include?(f) }
97
97
  end
98
98
 
99
- private
100
-
101
99
  def in_repo
102
100
  Dir.chdir(path) { yield }
103
101
  end
104
102
 
103
+ alias_method :chdir, :in_repo
104
+
105
+ private
106
+
105
107
  def status
106
108
  @status ||= in_repo { `git status --short --branch --ignore-submodules`.split("\n") }
107
109
  end
data/lib/mgit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MGit
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mgit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - FlavourSys Technology GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-06 00:00:00.000000000 Z
11
+ date: 2013-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -92,6 +92,7 @@ files:
92
92
  - lib/mgit/commands/foreach.rb
93
93
  - lib/mgit/commands/add.rb
94
94
  - lib/mgit/commands/log.rb
95
+ - lib/mgit/commands/show.rb
95
96
  - lib/mgit/commands/ffmerge.rb
96
97
  - lib/mgit/commands/clone.rb
97
98
  - lib/mgit/command.rb