ggsm 1.7.0 → 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ggsm.rb +2 -2
- data/lib/ggsm/command/finish.rb +2 -2
- data/lib/ggsm/command/merge.rb +22 -11
- data/lib/ggsm/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 996c39374cb11250d79913de7faf12ae2730290b
|
4
|
+
data.tar.gz: 5045631bff91d67cf68cf1595869b5dc0715094d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd593cfc4cb21c7fc66f51fcacb431ab913f44fd4f58bd95449ec0323de2a3f00e34776a7ac1e50939d62a4df68bb0f1d0226b90f1b367d1335cfd30f9067c8e
|
7
|
+
data.tar.gz: 648ea7a0822727659814fdb4938a1767a1368f955d0b78a2dbf52d055d39990ad254c11edc6a2c169049f286fc841319660499b0819ce35287550ac0d0752da7
|
data/lib/ggsm.rb
CHANGED
@@ -29,9 +29,9 @@ module GGSM
|
|
29
29
|
end
|
30
30
|
|
31
31
|
desc 'merge <branch> [-r|--rebase]', 'Merge,开发完成后执行; --rebase:主工程强制rebase'
|
32
|
-
option :
|
32
|
+
option :can_rebase, :default => false, :type => :boolean, aliases: '-r'
|
33
33
|
def merge(branch)
|
34
|
-
rebase = options[:
|
34
|
+
rebase = options[:can_rebase]
|
35
35
|
merge_flow(branch, rebase)
|
36
36
|
end
|
37
37
|
|
data/lib/ggsm/command/finish.rb
CHANGED
@@ -29,9 +29,9 @@ module GGSM
|
|
29
29
|
end
|
30
30
|
|
31
31
|
if force
|
32
|
-
system "git push origin #{get_current_branch} -f"
|
32
|
+
system "git push -u origin #{get_current_branch} -f"
|
33
33
|
else
|
34
|
-
system "git push origin #{get_current_branch}"
|
34
|
+
system "git push -u origin #{get_current_branch}"
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
data/lib/ggsm/command/merge.rb
CHANGED
@@ -69,20 +69,31 @@ module GGSM
|
|
69
69
|
pattern = /[0-9a-z]{7}(?=\s)/
|
70
70
|
current_branch = get_current_branch
|
71
71
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
72
|
+
can_rebase(current_branch) {|remote|
|
73
|
+
diff_logs = `git log --oneline #{branch}..#{current_branch}`.split("\n").reverse
|
74
|
+
|
75
|
+
if diff_logs.length > 0
|
76
|
+
commit = pattern.match(diff_logs[0].strip)[0]
|
77
|
+
result = `git log #{remote}/#{current_branch} |grep #{commit}`
|
78
|
+
if `git log --oneline #{current_branch}..#{branch}`.split("\n").length > 0 && result.strip != ''
|
79
|
+
return false
|
80
|
+
end
|
81
|
+
end
|
82
|
+
}
|
83
|
+
end
|
78
84
|
|
79
|
-
|
80
|
-
|
81
|
-
result = `git log #{remote}/#{current_branch} |grep #{commit}`
|
85
|
+
def can_rebase(current_branch)
|
86
|
+
remote = `git config --get branch.#{current_branch}.remote`
|
82
87
|
|
83
|
-
|
84
|
-
|
88
|
+
if remote == ''
|
89
|
+
`git branch -r`.split("\n").each do |branch|
|
90
|
+
if branch.strip == "origin/#{current_branch}"
|
91
|
+
remote = 'origin'
|
92
|
+
yield remote
|
93
|
+
end
|
85
94
|
end
|
95
|
+
else
|
96
|
+
yield remote
|
86
97
|
end
|
87
98
|
true
|
88
99
|
end
|
data/lib/ggsm/version.rb
CHANGED