mgit 0.4.2 → 0.4.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.
- checksums.yaml +4 -4
- data/lib/mgit/cli.rb +0 -3
- data/lib/mgit/command.rb +3 -0
- data/lib/mgit/commands/add.rb +3 -5
- data/lib/mgit/commands/clone.rb +2 -3
- data/lib/mgit/commands/config.rb +20 -6
- data/lib/mgit/commands/fetch.rb +8 -11
- data/lib/mgit/commands/ffmerge.rb +32 -15
- data/lib/mgit/commands/foreach.rb +5 -2
- data/lib/mgit/commands/grep.rb +2 -3
- data/lib/mgit/commands/head.rb +1 -1
- data/lib/mgit/commands/help.rb +3 -2
- data/lib/mgit/commands/show.rb +2 -4
- data/lib/mgit/commands/tags.rb +3 -4
- data/lib/mgit/configuration.rb +36 -9
- data/lib/mgit/exceptions.rb +14 -1
- data/lib/mgit/output.rb +16 -4
- data/lib/mgit/registry.rb +2 -0
- data/lib/mgit/repository.rb +17 -15
- data/lib/mgit/system.rb +70 -0
- data/lib/mgit/version.rb +1 -1
- data/lib/mgit.rb +1 -0
- metadata +34 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72dbe1352a6bd0ec28b0bcb8f058cd6827f4e2f1
|
4
|
+
data.tar.gz: 28d308609a2eccfe69bfab61574f251b31e562e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f2f0cc707a0f1e7a3cf1171348b06de20fc5f5bb3242f7a3cc2638b188ddb1bf7922290c955c3218c976093d67819f6f3902154deb30d26a8f548abc5380362
|
7
|
+
data.tar.gz: cc4893566bb6ffe38ad6169a6d25d786260f59b9c9336ce87331018c242ae466ff9639fa0bc30004d4dfc9f55198e360996914ce9004d9408e4a787932e3c4c5
|
data/lib/mgit/cli.rb
CHANGED
@@ -8,9 +8,6 @@ module MGit
|
|
8
8
|
# Initialize AppData and migrate if necessary.
|
9
9
|
AppData.update
|
10
10
|
|
11
|
-
# Initialize Commands.
|
12
|
-
Command.load_commands
|
13
|
-
|
14
11
|
# Run command, consuming its name from the list of arguments.
|
15
12
|
command = Command.execute(ARGV.shift, ARGV)
|
16
13
|
rescue UsageError => e
|
data/lib/mgit/command.rb
CHANGED
data/lib/mgit/commands/add.rb
CHANGED
@@ -6,9 +6,7 @@ module MGit
|
|
6
6
|
raise CommandUsageError.new('First argument must be a path to a git repository.', self) unless is_git_dir?(path)
|
7
7
|
raise CommandUsageError.new('Sorry, mgit can not handle bare repositories.', self) if is_bare?(path)
|
8
8
|
|
9
|
-
|
10
|
-
# https://github.com/JEG2/highline/issues/69
|
11
|
-
name = (args.size == 2) ? args[1] : (ask('Name of the repository? ') { |q| q.default = File.basename(path) }).to_s
|
9
|
+
name = (args.size == 2) ? args[1] : File.basename(path)
|
12
10
|
raise CommandUsageError.new("Repository named #{name} already exists with different path.", self) unless is_new_or_same?(name, path)
|
13
11
|
|
14
12
|
Registry.add(name, path)
|
@@ -36,11 +34,11 @@ module MGit
|
|
36
34
|
end
|
37
35
|
|
38
36
|
def is_git_dir?(path)
|
39
|
-
|
37
|
+
System::git('status', :chdir => path) !~ /fatal: Not a git repository/
|
40
38
|
end
|
41
39
|
|
42
40
|
def is_bare?(path)
|
43
|
-
|
41
|
+
System::git('status', :chdir => path) =~ /fatal: This operation must be run in a work tree/
|
44
42
|
end
|
45
43
|
end
|
46
44
|
end
|
data/lib/mgit/commands/clone.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
module MGit
|
2
2
|
class CloneCommand < Command
|
3
3
|
def execute(args)
|
4
|
-
log =
|
5
|
-
|
6
|
-
|
4
|
+
log = System::git("clone #{args.join(' ')}", { :raise => true, :print_stderr => true }).stdout
|
5
|
+
|
7
6
|
m = /Cloning into '(.*)'/.match(log.split("\n").first)
|
8
7
|
Command.execute('add', [m[1]])
|
9
8
|
end
|
data/lib/mgit/commands/config.rb
CHANGED
@@ -1,16 +1,30 @@
|
|
1
1
|
module MGit
|
2
2
|
class ConfigCommand < Command
|
3
3
|
def execute(args)
|
4
|
-
|
5
|
-
|
4
|
+
if args.size == 0
|
5
|
+
t = []
|
6
|
+
Configuration.each { |k, v| t << [k.to_s, v] }
|
7
|
+
ptable t
|
8
|
+
else
|
9
|
+
key = args[0]
|
6
10
|
|
7
|
-
|
8
|
-
|
9
|
-
|
11
|
+
if args.size == 1
|
12
|
+
psystem Configuration.send(key.to_sym).to_s
|
13
|
+
else
|
14
|
+
key = args[0]
|
15
|
+
value = args[1]
|
16
|
+
|
17
|
+
begin
|
18
|
+
Configuration.set(key, value)
|
19
|
+
rescue ConfigurationError => e
|
20
|
+
raise CommandUsageError.new(e.to_s, self)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
10
24
|
end
|
11
25
|
|
12
26
|
def arity
|
13
|
-
[
|
27
|
+
[0, 2]
|
14
28
|
end
|
15
29
|
|
16
30
|
def usage
|
data/lib/mgit/commands/fetch.rb
CHANGED
@@ -4,11 +4,9 @@ module MGit
|
|
4
4
|
class FetchCommand < Command
|
5
5
|
def execute(args)
|
6
6
|
thread_class = Configuration.threads ? Thread : NullThread
|
7
|
-
|
8
|
-
Registry.
|
9
|
-
|
10
|
-
fetch(repo)
|
11
|
-
end
|
7
|
+
|
8
|
+
threads = Registry.collect do |repo|
|
9
|
+
thread_class.new { fetch(repo) }
|
12
10
|
end
|
13
11
|
|
14
12
|
threads.each { |t| t.join }
|
@@ -31,16 +29,15 @@ module MGit
|
|
31
29
|
private
|
32
30
|
|
33
31
|
def fetch(repo)
|
34
|
-
|
32
|
+
sc = System::git('remote', :chdir => repo.path)
|
35
33
|
|
36
|
-
if
|
34
|
+
if !sc.success?
|
37
35
|
perror "Failed to read remotes for repository #{repo.name}! Abort."
|
38
|
-
|
36
|
+
return
|
39
37
|
end
|
40
38
|
|
41
|
-
|
42
|
-
|
43
|
-
if st.exitstatus == 0
|
39
|
+
sc.stdout.strip.split.each do |remote|
|
40
|
+
if System::git("fetch #{remote}", :chdir => repo.path).success?
|
44
41
|
pinfo "Fetched #{remote} in repository #{repo.name}."
|
45
42
|
else
|
46
43
|
perror "Failed to fetch #{remote} in repository #{repo.name}! Abort."
|
@@ -2,26 +2,15 @@ module MGit
|
|
2
2
|
class FFMergeCommand < Command
|
3
3
|
def execute(args)
|
4
4
|
Registry.chdir_each do |repo|
|
5
|
-
|
6
|
-
|
7
|
-
!repo.unmerged_commits(branch, upstream).empty?
|
8
|
-
end.map { |b, u| b }
|
9
|
-
|
10
|
-
next if bs.empty?
|
5
|
+
branches = mergable_branches(repo)
|
6
|
+
next if branches.empty?
|
11
7
|
|
12
8
|
if repo.dirty?
|
13
9
|
pwarn "Skipping repository #{repo.name} since it's dirty."
|
14
10
|
next
|
15
|
-
end
|
16
|
-
|
17
|
-
pinfo "Fast-forward merging branches in repository #{repo.name}..."
|
18
|
-
|
19
|
-
cb = repo.current_branch
|
20
|
-
bs.each do |b|
|
21
|
-
`git checkout -q #{b}`
|
22
|
-
`git merge --ff-only @{u}`
|
23
11
|
end
|
24
|
-
|
12
|
+
|
13
|
+
merge_branches(repo, branches)
|
25
14
|
end
|
26
15
|
end
|
27
16
|
|
@@ -38,5 +27,33 @@ module MGit
|
|
38
27
|
end
|
39
28
|
|
40
29
|
register_command :ffmerge
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def mergable_branches(repo)
|
34
|
+
repo.remote_tracking_branches.select do |branch, upstream|
|
35
|
+
!repo.unmerged_commits(branch, upstream).empty?
|
36
|
+
end.map { |b, u| b }
|
37
|
+
end
|
38
|
+
|
39
|
+
def merge_branches(repo, branches)
|
40
|
+
pinfo "Fast-forward merging branches in repository #{repo.name}..."
|
41
|
+
|
42
|
+
cb = repo.current_branch
|
43
|
+
|
44
|
+
begin
|
45
|
+
branches.each { |b| merge_branch(b) }
|
46
|
+
rescue GitError
|
47
|
+
perror "Failed to merge a branch in repository #{repo.name}."
|
48
|
+
pwarn "Please visit this repository and check that everything's alright. Trying to set back to original working branch."
|
49
|
+
ensure
|
50
|
+
System::git("checkout -q #{cb}", :print_stderr => true)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def merge_branch(branch)
|
55
|
+
System::git("checkout -q #{branch}", { :raise => true, :print_stderr => true })
|
56
|
+
System::git("merge --ff-only @{u}", { :raise => true, :print_stderr => true })
|
57
|
+
end
|
41
58
|
end
|
42
59
|
end
|
@@ -3,9 +3,12 @@ module MGit
|
|
3
3
|
def execute(args)
|
4
4
|
command = args.join(' ')
|
5
5
|
|
6
|
-
Registry.
|
6
|
+
Registry.each do |repo|
|
7
7
|
pinfo "Executing command in repository #{repo.name}..."
|
8
|
-
|
8
|
+
|
9
|
+
sc = System::run(command, { :chdir => repo.path, :print_stdout => true, :print_stderr => true })
|
10
|
+
|
11
|
+
if !sc.success? && !agree("Executing command '#{command}' in repository '#{repo.name}' failed. Would you like to continue anyway?".red)
|
9
12
|
break
|
10
13
|
end
|
11
14
|
end
|
data/lib/mgit/commands/grep.rb
CHANGED
@@ -3,10 +3,9 @@ module MGit
|
|
3
3
|
def execute(args)
|
4
4
|
ptrn = args[0]
|
5
5
|
|
6
|
-
Registry.
|
6
|
+
Registry.each do |repo|
|
7
7
|
pinfo "Looking for pattern '#{ptrn}' in repository #{repo.name}..."
|
8
|
-
|
9
|
-
puts
|
8
|
+
System::git("grep #{ptrn}", { :chdir => repo.path, :print_stdout => true })
|
10
9
|
end
|
11
10
|
end
|
12
11
|
|
data/lib/mgit/commands/head.rb
CHANGED
data/lib/mgit/commands/help.rb
CHANGED
@@ -3,10 +3,11 @@ module MGit
|
|
3
3
|
def execute(args)
|
4
4
|
if args.size == 0
|
5
5
|
pinfo "M[eta]Git - manage multiple git repositories at the same time"
|
6
|
-
|
6
|
+
pinfo ''
|
7
7
|
pinfo "Usage:"
|
8
8
|
Command.instance_each do |cmd|
|
9
|
-
pinfo "mgit #{cmd.usage}
|
9
|
+
pinfo "mgit #{cmd.usage}"
|
10
|
+
pinfo "\t- #{cmd.description}"
|
10
11
|
end
|
11
12
|
else
|
12
13
|
pinfo Command.create(args[0]).help
|
data/lib/mgit/commands/show.rb
CHANGED
@@ -40,13 +40,11 @@ module MGit
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def has_commit?
|
43
|
-
!(
|
43
|
+
!(System::git("rev-parse --quiet --verify #{@commit}").stdout.empty?)
|
44
44
|
end
|
45
45
|
|
46
46
|
def show_commit(repo)
|
47
|
-
repo.
|
48
|
-
system("git show #{@commit}")
|
49
|
-
end
|
47
|
+
System::git("show #{@commit}", { :chdir => repo.path, :print_stdout => true } )
|
50
48
|
end
|
51
49
|
|
52
50
|
def show_menu
|
data/lib/mgit/commands/tags.rb
CHANGED
@@ -25,13 +25,12 @@ module MGit
|
|
25
25
|
private
|
26
26
|
|
27
27
|
def latest_tag(path)
|
28
|
-
|
29
|
-
|
28
|
+
sc = System::git('describe --tags --abbrev=0 master', :chdir => path)
|
29
|
+
sc =~ /fatal:/ ? 'none' : sc.stdout.strip
|
30
30
|
end
|
31
31
|
|
32
32
|
def latest_tag_time(path, tag)
|
33
|
-
|
34
|
-
Time.at(sout.strip.to_i).strftime('%Y-%m-%d')
|
33
|
+
Time.at(System::git("log -n 1 --format='%at' #{tag}", :chdir => path).stdout.strip.to_i).strftime('%Y-%m-%d')
|
35
34
|
end
|
36
35
|
|
37
36
|
def print_latest_tag(repo)
|
data/lib/mgit/configuration.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module MGit
|
2
2
|
module Configuration
|
3
|
+
extend Enumerable
|
4
|
+
|
3
5
|
KEYS = {
|
4
6
|
:threads => {
|
5
7
|
:default => true,
|
@@ -9,6 +11,11 @@ module MGit
|
|
9
11
|
:plugindir => {
|
10
12
|
:default => File.join(AppData::AppDataVersion.latest.send(:config_dir), 'plugins'),
|
11
13
|
:description => 'directory from where plugin commands are loaded'
|
14
|
+
},
|
15
|
+
|
16
|
+
:colors => {
|
17
|
+
:default => true,
|
18
|
+
:description => 'set to false to disable all colored output'
|
12
19
|
}
|
13
20
|
}
|
14
21
|
|
@@ -28,19 +35,39 @@ module MGit
|
|
28
35
|
|
29
36
|
def self.set(key, value)
|
30
37
|
case key
|
31
|
-
when 'threads'
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
if ['true', 'on'].include?(value)
|
37
|
-
self.threads = true
|
38
|
-
else
|
39
|
-
self.threads = false
|
38
|
+
when 'threads', 'colors'
|
39
|
+
set_boolean(key, value)
|
40
|
+
when 'plugindir'
|
41
|
+
if !File.directory?(value)
|
42
|
+
raise ConfigurationError.new("Illegal value for key plugindir. Has to be a directory.")
|
40
43
|
end
|
44
|
+
self.plugindir = File.expand_path(value)
|
41
45
|
else
|
42
46
|
raise ConfigurationError.new("Unknown key: #{key}.")
|
43
47
|
end
|
44
48
|
end
|
49
|
+
|
50
|
+
def self.each
|
51
|
+
KEYS.each do |key|
|
52
|
+
yield [key.first.to_s, self.send(key.first).to_s]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.method_missing(meth, *args, &block)
|
57
|
+
raise ConfigurationError.new("Unknown key: #{key}")
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def self.set_boolean(key, value)
|
63
|
+
unless ['true', 'false', 'on', 'off'].include?(value)
|
64
|
+
raise ConfigurationError.new("Illegal value for key #{key}.")
|
65
|
+
end
|
66
|
+
if ['true', 'on'].include?(value)
|
67
|
+
self.send("#{key}=", true)
|
68
|
+
else
|
69
|
+
self.send("#{key}=", false)
|
70
|
+
end
|
71
|
+
end
|
45
72
|
end
|
46
73
|
end
|
data/lib/mgit/exceptions.rb
CHANGED
@@ -1,7 +1,20 @@
|
|
1
1
|
module MGit
|
2
2
|
class ImplementationError < StandardError; end
|
3
3
|
|
4
|
-
class
|
4
|
+
class SystemCommandError < StandardError
|
5
|
+
attr_reader :cmd, :error
|
6
|
+
|
7
|
+
def initialize(cmd, error)
|
8
|
+
@cmd = cmd
|
9
|
+
@error = error
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_s
|
13
|
+
"Error: #{@error}\nCommand was: #{@cmd}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class GitError < SystemCommandError
|
5
18
|
def initialize(error)
|
6
19
|
@error = error
|
7
20
|
end
|
data/lib/mgit/output.rb
CHANGED
@@ -1,23 +1,35 @@
|
|
1
1
|
module MGit
|
2
2
|
module Output
|
3
|
+
def psystem(s)
|
4
|
+
print_to_screen s
|
5
|
+
end
|
6
|
+
|
3
7
|
def pinfo(s)
|
4
|
-
|
8
|
+
print_to_screen s.green
|
5
9
|
end
|
6
10
|
|
7
11
|
def pwarn(s)
|
8
|
-
|
12
|
+
print_to_screen s.yellow
|
9
13
|
end
|
10
14
|
|
11
15
|
def perror(s)
|
12
|
-
|
16
|
+
print_to_screen s.red
|
13
17
|
end
|
14
18
|
|
15
19
|
def ptable(table, options = {})
|
16
|
-
|
20
|
+
print_to_screen TableOutputter.new(table, options).to_s
|
17
21
|
end
|
18
22
|
|
19
23
|
private
|
20
24
|
|
25
|
+
def print_to_screen(s)
|
26
|
+
if Configuration.colors
|
27
|
+
puts s
|
28
|
+
else
|
29
|
+
puts s.uncolorize
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
21
33
|
class TableOutputter
|
22
34
|
attr_reader :table, :options
|
23
35
|
|
data/lib/mgit/registry.rb
CHANGED
data/lib/mgit/repository.rb
CHANGED
@@ -21,25 +21,26 @@ module MGit
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def current_branch
|
24
|
-
in_repo {
|
25
|
-
|
26
|
-
|
24
|
+
in_repo {
|
25
|
+
sc = System::git('rev-parse --abbrev-ref HEAD')
|
26
|
+
sc.success? ? sc.stdout.strip : 'HEAD'
|
27
27
|
}
|
28
28
|
end
|
29
29
|
|
30
30
|
def current_head
|
31
|
-
in_repo {
|
31
|
+
in_repo { System::git('rev-parse --verify --short HEAD').stdout.strip }
|
32
32
|
end
|
33
33
|
|
34
34
|
def remote_tracking_branches(upstream_exists_only = true)
|
35
35
|
rb = remote_branches
|
36
36
|
|
37
37
|
a = in_repo do
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
System::git("for-each-ref --format='%(refname:short) %(upstream:short)' refs/heads")
|
39
|
+
.stdout
|
40
|
+
.split("\n")
|
41
|
+
.map { |b| b.split(' ') }
|
42
|
+
.reject { |b| b.size != 2 }
|
43
|
+
.select { |b| !upstream_exists_only || rb.include?(b[1]) }
|
43
44
|
end
|
44
45
|
|
45
46
|
Hash[a]
|
@@ -47,16 +48,17 @@ module MGit
|
|
47
48
|
|
48
49
|
def remote_branches
|
49
50
|
in_repo do
|
50
|
-
|
51
|
+
System::git('branch -r').stdout.split("\n").map { |a| a.split(' ')[0] }
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
54
55
|
def unmerged_commits(branch, upstream)
|
55
56
|
in_repo do
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
map
|
57
|
+
System::git("log --pretty=format:'%h#%an#%s' --reverse --relative-date #{branch}..#{upstream}")
|
58
|
+
.stdout
|
59
|
+
.split("\n")
|
60
|
+
.map { |line| line.split('#') }
|
61
|
+
.map do |words|
|
60
62
|
{
|
61
63
|
:commit => words[0],
|
62
64
|
:author => words[1],
|
@@ -116,7 +118,7 @@ module MGit
|
|
116
118
|
private
|
117
119
|
|
118
120
|
def status
|
119
|
-
@status ||= in_repo {
|
121
|
+
@status ||= in_repo { System::git('status --short --branch --ignore-submodules').stdout.split("\n") }
|
120
122
|
end
|
121
123
|
|
122
124
|
def status_lines
|
data/lib/mgit/system.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'open3'
|
2
|
+
|
3
|
+
module MGit
|
4
|
+
module System
|
5
|
+
class SystemCommand
|
6
|
+
include Output
|
7
|
+
|
8
|
+
attr_reader :stdout, :stderr
|
9
|
+
|
10
|
+
def initialize(cmd, opts)
|
11
|
+
opts, popen_opts = extract_options(opts)
|
12
|
+
@stdout, @stderr, @st = Open3.capture3(cmd, popen_opts)
|
13
|
+
|
14
|
+
psystem(stdout.strip) if opts[:print_stdout]
|
15
|
+
|
16
|
+
if !success?
|
17
|
+
psystem(stderr.strip) if opts[:print_stderr]
|
18
|
+
raise SystemCommandError.new(cmd, opts[:error]) if opts[:raise]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def success?
|
23
|
+
@st.exitstatus == 0
|
24
|
+
end
|
25
|
+
|
26
|
+
def =~(re)
|
27
|
+
(@stdout =~ re) || (@stderr =~ re)
|
28
|
+
end
|
29
|
+
|
30
|
+
def default_options
|
31
|
+
{
|
32
|
+
:print_stdout => false,
|
33
|
+
:print_stderr => false,
|
34
|
+
:raise => false,
|
35
|
+
:error => 'Command failed.',
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
def extract_options(opts)
|
40
|
+
popen_opts = opts.dup
|
41
|
+
|
42
|
+
opts = Hash[
|
43
|
+
default_options.map do |k, v|
|
44
|
+
[k, popen_opts.has_key?(k) ? popen_opts.delete(k) : v]
|
45
|
+
end
|
46
|
+
]
|
47
|
+
|
48
|
+
[opts, popen_opts]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class GitCommand < SystemCommand
|
53
|
+
def initialize(cmd, opts)
|
54
|
+
begin
|
55
|
+
super("git #{cmd}", opts)
|
56
|
+
rescue SystemCommandError => e
|
57
|
+
raise GitError.new(e.error)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.git(cmd, opts = {})
|
63
|
+
GitCommand.new(cmd, opts)
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.run(cmd, opts = {})
|
67
|
+
SystemCommand.new(cmd, opts)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/lib/mgit/version.rb
CHANGED
data/lib/mgit.rb
CHANGED
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mgit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
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: 2014-
|
11
|
+
date: 2014-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: highline
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: xdg
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: M[eta]Git let's you manage multiple git repositories simultaneously
|
@@ -73,34 +73,35 @@ executables:
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
+
- bin/mgit
|
76
77
|
- lib/mgit.rb
|
77
|
-
- lib/mgit/output.rb
|
78
|
-
- lib/mgit/repository.rb
|
79
|
-
- lib/mgit/version.rb
|
80
78
|
- lib/mgit/appdata.rb
|
81
|
-
- lib/mgit/
|
82
|
-
- lib/mgit/
|
83
|
-
- lib/mgit/
|
84
|
-
- lib/mgit/commands/
|
85
|
-
- lib/mgit/commands/grep.rb
|
79
|
+
- lib/mgit/cli.rb
|
80
|
+
- lib/mgit/command.rb
|
81
|
+
- lib/mgit/commands/add.rb
|
82
|
+
- lib/mgit/commands/clone.rb
|
86
83
|
- lib/mgit/commands/config.rb
|
87
|
-
- lib/mgit/commands/remove_all.rb
|
88
|
-
- lib/mgit/commands/version.rb
|
89
84
|
- lib/mgit/commands/fetch.rb
|
85
|
+
- lib/mgit/commands/ffmerge.rb
|
86
|
+
- lib/mgit/commands/foreach.rb
|
87
|
+
- lib/mgit/commands/grep.rb
|
90
88
|
- lib/mgit/commands/head.rb
|
91
|
-
- lib/mgit/commands/status.rb
|
92
|
-
- lib/mgit/commands/remove.rb
|
93
89
|
- lib/mgit/commands/help.rb
|
94
|
-
- lib/mgit/commands/
|
95
|
-
- lib/mgit/commands/tags.rb
|
96
|
-
- lib/mgit/commands/add.rb
|
90
|
+
- lib/mgit/commands/list.rb
|
97
91
|
- lib/mgit/commands/log.rb
|
92
|
+
- lib/mgit/commands/remove.rb
|
93
|
+
- lib/mgit/commands/remove_all.rb
|
98
94
|
- lib/mgit/commands/show.rb
|
99
|
-
- lib/mgit/commands/
|
100
|
-
- lib/mgit/commands/
|
101
|
-
- lib/mgit/
|
102
|
-
- lib/mgit/
|
103
|
-
-
|
95
|
+
- lib/mgit/commands/status.rb
|
96
|
+
- lib/mgit/commands/tags.rb
|
97
|
+
- lib/mgit/commands/version.rb
|
98
|
+
- lib/mgit/configuration.rb
|
99
|
+
- lib/mgit/exceptions.rb
|
100
|
+
- lib/mgit/output.rb
|
101
|
+
- lib/mgit/registry.rb
|
102
|
+
- lib/mgit/repository.rb
|
103
|
+
- lib/mgit/system.rb
|
104
|
+
- lib/mgit/version.rb
|
104
105
|
homepage: http://github.com/flavoursys/mgit
|
105
106
|
licenses:
|
106
107
|
- MIT
|
@@ -111,17 +112,17 @@ require_paths:
|
|
111
112
|
- lib
|
112
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
113
114
|
requirements:
|
114
|
-
- -
|
115
|
+
- - ">="
|
115
116
|
- !ruby/object:Gem::Version
|
116
117
|
version: '0'
|
117
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
119
|
requirements:
|
119
|
-
- -
|
120
|
+
- - ">="
|
120
121
|
- !ruby/object:Gem::Version
|
121
122
|
version: '0'
|
122
123
|
requirements: []
|
123
124
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
125
|
+
rubygems_version: 2.2.2
|
125
126
|
signing_key:
|
126
127
|
specification_version: 4
|
127
128
|
summary: MGit meta repository tool
|