git-scripts 0.9.1 → 0.9.2
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/README.md +6 -55
- data/bin/feature +0 -12
- data/completion/_feature +1 -1
- data/completion/bash_completion.sh +2 -11
- data/lib/git.rb +1 -15
- data/lib/helpers.rb +1 -47
- data/man/feature-finish-issue.1 +2 -2
- data/man/feature-finish-issue.1.ronn +1 -1
- data/man/feature-finish.1 +2 -2
- data/man/feature-finish.1.ronn +1 -1
- data/man/feature-github-test.1 +1 -1
- data/man/feature-list.1 +2 -2
- data/man/feature-list.1.ronn +1 -1
- data/man/feature-merge.1 +2 -2
- data/man/feature-merge.1.ronn +1 -1
- data/man/feature-prune.1 +1 -1
- data/man/feature-start.1 +2 -2
- data/man/feature-start.1.ronn +1 -1
- data/man/feature-stashes.1 +1 -4
- data/man/feature-stashes.1.ronn +0 -2
- data/man/feature-status.1 +1 -4
- data/man/feature-status.1.ronn +0 -2
- data/man/feature-switch.1 +2 -2
- data/man/feature-switch.1.ronn +1 -1
- data/man/feature-url.1 +2 -2
- data/man/feature-url.1.ronn +1 -1
- data/man/feature.1 +3 -3
- data/man/feature.1.ronn +2 -3
- data/man/index.txt +0 -7
- metadata +4 -23
- data/bin/hotfix +0 -230
- data/completion/_hotfix +0 -28
- data/man/hotfix-finish-issue.1 +0 -22
- data/man/hotfix-finish-issue.1.ronn +0 -26
- data/man/hotfix-finish.1 +0 -22
- data/man/hotfix-finish.1.ronn +0 -25
- data/man/hotfix-list.1 +0 -28
- data/man/hotfix-list.1.ronn +0 -29
- data/man/hotfix-merge.1 +0 -25
- data/man/hotfix-merge.1.ronn +0 -29
- data/man/hotfix-start.1 +0 -22
- data/man/hotfix-start.1.ronn +0 -23
- data/man/hotfix-switch.1 +0 -38
- data/man/hotfix-switch.1.ronn +0 -33
- data/man/hotfix-url.1 +0 -22
- data/man/hotfix-url.1.ronn +0 -23
- data/man/hotfix.1 +0 -52
- data/man/hotfix.1.ronn +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e5d80b708d282d506e10b2c2b2a70efcb888bd8cf85722f70cf8d3d62adcdb0
|
4
|
+
data.tar.gz: f087693642161ef49da12207a75471daa82effe96dfc2f63cfc669ab98a50185
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4fc9f06c243191725a23cb5fc1baad0dc2e21ad9dbfc69ce0121aaad7207187c4d68bbdc54efe282a300a626d9012ba696fc41aa0f68a9d651ca5002ae24dbf
|
7
|
+
data.tar.gz: cee8d4b300803a86a526f2c0a251954ac7977c684c9e64781f32be5c935b5aa102640542bf8494380a8309257f12d48acd5405eb51aed385820870293d1e8590
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# Git Scripts
|
4
4
|
|
5
|
-
User scripts for easily managing feature branches
|
5
|
+
User scripts for easily managing feature branches.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
```bash
|
@@ -16,45 +16,23 @@ git clone git://github.com/iFixit/git-scripts.git
|
|
16
16
|
cd git-scripts
|
17
17
|
bundle install
|
18
18
|
ln -s ${PWD}/bin/feature /path/to/bin/dir/
|
19
|
-
ln -s ${PWD}/bin/hotfix /path/to/bin/dir/
|
20
19
|
```
|
21
20
|
|
22
21
|
## Branching Model
|
23
22
|
|
24
23
|
This is loosely based on the [Git Flow][gitflow] branching model, with a couple
|
25
24
|
of noteable changes. Essentially Git Flow's `develop` is our `master`, Git
|
26
|
-
Flow's `master` is our `stable`,
|
27
|
-
|
25
|
+
Flow's `master` is our `stable`, there are no `release` branches nor hotfix
|
26
|
+
branches.
|
28
27
|
|
29
|
-
**master** is
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
**stable** is the branch which is deployed on the production machines. You
|
34
|
-
should always be able to check out this branch and get "bug-free" production
|
35
|
-
code. This branch is always ready-to-go and should always be deployed as soon
|
36
|
-
as it's changed
|
28
|
+
**master** is always deployed. It's also the branch that all feature branches
|
29
|
+
start from. This is configurable using: `git config feature.development_branch
|
30
|
+
branch-name`
|
37
31
|
|
38
32
|
**feature branches** are named after the feature you're developing and branched
|
39
33
|
from `master`. When finished, the feature branch is merged back into master
|
40
34
|
with `--no-ff` (so we preserve the merge commit) and deleted.
|
41
35
|
|
42
|
-
**hotfix branches** are named `hotfix-name` and branched from `stable`. When
|
43
|
-
finished, the hotfix branch is merged back into `stable` with `--no-ff` so we
|
44
|
-
preserve the merge commit. We attempt to merge it back into `master` as well,
|
45
|
-
but if it's going to get messy just bail.
|
46
|
-
|
47
|
-
## Deployment
|
48
|
-
|
49
|
-
The production machines always run off the `stable` branch. When deploying,
|
50
|
-
you need to:
|
51
|
-
|
52
|
-
* Merge `stable` into `master` (and vice-versa). This ensures that the two code
|
53
|
-
paths come together relatively frequently. This also guarantees that we'll
|
54
|
-
pick up any stray hotfixes that didn't get merged back.
|
55
|
-
|
56
|
-
* Create a tag on `stable` for keeping track of deploys
|
57
|
-
|
58
36
|
## feature script
|
59
37
|
|
60
38
|
feature <command> [branch name]
|
@@ -96,33 +74,6 @@ remote version of the current branch (the upstream).
|
|
96
74
|
Lists the stashes saved on the current branch if any. -v shows all stashes on
|
97
75
|
all branches.
|
98
76
|
|
99
|
-
## hotfix script
|
100
|
-
|
101
|
-
hotfix <command> [branch name]
|
102
|
-
|
103
|
-
Automates the process of fixing a bug on the live site, similar to the
|
104
|
-
`feature` script with a few differences. Any command that is run with missing
|
105
|
-
arguments will just print the help and exit
|
106
|
-
|
107
|
-
hotfix start my-sweet-fix
|
108
|
-
|
109
|
-
Makes a new branch from `stable` named `hotfix_my-sweet-fix`. Prepending the
|
110
|
-
name with `hotfix_` allows easy filtering.
|
111
|
-
|
112
|
-
hotfix switch my-other-fix
|
113
|
-
|
114
|
-
Switches hotfix branches. Assuming the branch `hotfix_my-other-fix` exists, it
|
115
|
-
checks out that branch and informs you about any stashes saved on that branch.
|
116
|
-
|
117
|
-
hotfix finish [my-other-fix]
|
118
|
-
|
119
|
-
Creates a pull-request on Github for the current or specified hotfix branch.
|
120
|
-
|
121
|
-
hotfix merge [my-other-fix]
|
122
|
-
|
123
|
-
Merges the hotfix branch back into `stable` with `--no-ff`. Also does a
|
124
|
-
merge back into `master`.
|
125
|
-
|
126
77
|
[gitflow]: http://nvie.com/posts/a-successful-git-branching-model/
|
127
78
|
|
128
79
|
## Plugins
|
data/bin/feature
CHANGED
@@ -88,10 +88,6 @@ when 'status'
|
|
88
88
|
when 'finish'
|
89
89
|
feature = ARGV[1] || Git::current_branch
|
90
90
|
|
91
|
-
if is_hotfix_branch feature
|
92
|
-
abort "This is a hotfix branch. Please use hotfix-finish."
|
93
|
-
end
|
94
|
-
|
95
91
|
# Push commits to origin
|
96
92
|
Git::run_safe(["git push origin #{feature}:#{feature}"])
|
97
93
|
|
@@ -123,10 +119,6 @@ when 'finish-issue'
|
|
123
119
|
issue = ARGV[1]
|
124
120
|
feature = Git::current_branch
|
125
121
|
|
126
|
-
if is_hotfix_branch feature
|
127
|
-
abort "This is a hotfix branch. Please use hotfix-finish-issue."
|
128
|
-
end
|
129
|
-
|
130
122
|
# Push commits to origin
|
131
123
|
Git::run_safe(["git push origin #{feature}:#{feature}"])
|
132
124
|
|
@@ -183,10 +175,6 @@ when 'merge'
|
|
183
175
|
feature = ARGV[1] || Git::current_branch
|
184
176
|
end
|
185
177
|
|
186
|
-
if is_hotfix_branch feature
|
187
|
-
exit 1 unless confirm("It looks like this is a hotfix branch. Are you sure you want to merge it into only #{dev_branch}?")
|
188
|
-
end
|
189
|
-
|
190
178
|
pull_info = Github::get_pull_request_info_from_api(feature, dev_branch)
|
191
179
|
|
192
180
|
warning = Github::get_commit_status_warning(pull_info[:status])
|
data/completion/_feature
CHANGED
@@ -22,7 +22,7 @@ _feature() {
|
|
22
22
|
"$words[2]" == "url" ||
|
23
23
|
"$words[2]" == "finish" ]]; then
|
24
24
|
local -a featureBranches args
|
25
|
-
featureBranches="$(git branch -a | tr -d ' *' |
|
25
|
+
featureBranches="$(git branch -a | tr -d ' *' | sed 's|remotes/origin/||')"
|
26
26
|
args="$(echo ${featureBranches} | tr "\$\'\\n\'" " ")"
|
27
27
|
_arguments '2:Branches:($(echo ${args}))'
|
28
28
|
fi
|
@@ -12,16 +12,7 @@ _git-scripts()
|
|
12
12
|
if [ "$line" = "$cmd $cur" ]; then
|
13
13
|
words="switch start finish finish-issue stashes list merge pull status prune url"
|
14
14
|
else
|
15
|
-
|
16
|
-
words="$(git branch -a | tr -d ' *' | grep -v 'hotfix-' | sed 's|remotes/origin/||')"
|
17
|
-
fi
|
18
|
-
;;
|
19
|
-
hotfix)
|
20
|
-
if [ "$line" = "$cmd $cur" ]; then
|
21
|
-
words="switch start finish finish-issue merge list url"
|
22
|
-
else
|
23
|
-
# get hotfix branch names
|
24
|
-
words="$(git branch -a | tr -d ' *' | grep 'hotfix-' | sed -e 's|remotes/origin/||' -e 's|hotfix-||')"
|
15
|
+
words="$(git branch -a | tr -d ' *' | sed 's|remotes/origin/||')"
|
25
16
|
fi
|
26
17
|
;;
|
27
18
|
esac
|
@@ -30,4 +21,4 @@ _git-scripts()
|
|
30
21
|
return 0
|
31
22
|
}
|
32
23
|
|
33
|
-
complete -F _git-scripts feature
|
24
|
+
complete -F _git-scripts feature
|
data/lib/git.rb
CHANGED
@@ -59,20 +59,6 @@ module Git
|
|
59
59
|
self::all_branches - self::merged_branches(branch)
|
60
60
|
end
|
61
61
|
|
62
|
-
# Returns an array of unmerged hotfix branches
|
63
|
-
def self.hotfix_branches(type)
|
64
|
-
stable_branch = get_branch('stable')
|
65
|
-
branches = if type == :unmerged
|
66
|
-
self.branches_not_merged_into(stable_branch)
|
67
|
-
elsif type == :merged
|
68
|
-
self.merged_branches(stable_branch)
|
69
|
-
else
|
70
|
-
raise ArgumentError, 'Must specify :merged or :unmerged in hotfix_branches.'
|
71
|
-
end
|
72
|
-
|
73
|
-
branches.select {|branch| branch.include?('hotfix-') }
|
74
|
-
end
|
75
|
-
|
76
62
|
# Returns an array of unmerged feature branches
|
77
63
|
def self.feature_branches(type)
|
78
64
|
devBranch = get_branch('development')
|
@@ -85,7 +71,7 @@ module Git
|
|
85
71
|
raise ArgumentError, 'Must specify :merged or :unmerged in feature_branches.'
|
86
72
|
end
|
87
73
|
|
88
|
-
branches
|
74
|
+
branches
|
89
75
|
end
|
90
76
|
|
91
77
|
# Returns an array of all branch names that have have been merged into the
|
data/lib/helpers.rb
CHANGED
@@ -31,24 +31,6 @@ def display_feature_help(command = nil, message = nil)
|
|
31
31
|
)
|
32
32
|
end
|
33
33
|
|
34
|
-
def display_hotfix_help(command = nil, message = nil)
|
35
|
-
display_help(
|
36
|
-
:script_name => "Git Hotfix Helper",
|
37
|
-
:commands => {
|
38
|
-
:list => "hotfix list [-v]",
|
39
|
-
:url => "hotfix url [name-of-hotfix]",
|
40
|
-
:start => "hotfix start name-of-hotfix",
|
41
|
-
:switch => "hotfix switch (name-of-hotfix | -n number-of-hotfix) [options]",
|
42
|
-
:finish => "hotfix finish [name-of-hotfix]",
|
43
|
-
:'finish-issue' => "hotfix finish-issue issue-number",
|
44
|
-
:merge => "hotfix merge (name-of-hotfix | -n number-of-hotfix)",
|
45
|
-
},
|
46
|
-
:command_name => 'hotfix',
|
47
|
-
:command => command,
|
48
|
-
:message => message
|
49
|
-
)
|
50
|
-
end
|
51
|
-
|
52
34
|
def display_help(args)
|
53
35
|
command = args[:command]
|
54
36
|
message = args[:message]
|
@@ -90,11 +72,7 @@ end
|
|
90
72
|
##
|
91
73
|
def require_argument(program, command = nil, min = 2, max = 2)
|
92
74
|
help = lambda do |msg|
|
93
|
-
|
94
|
-
display_hotfix_help(command, msg)
|
95
|
-
else
|
96
|
-
display_feature_help(command, msg)
|
97
|
-
end
|
75
|
+
display_feature_help(command, msg)
|
98
76
|
end
|
99
77
|
|
100
78
|
if (ARGV.length > max)
|
@@ -137,30 +115,6 @@ def get_branch_name_from_number(num)
|
|
137
115
|
return octokit.pull_request(Github::get_github_repo, num).head.ref
|
138
116
|
end
|
139
117
|
|
140
|
-
def hotfix_branch(name)
|
141
|
-
if is_hotfix_branch(name)
|
142
|
-
return name
|
143
|
-
else
|
144
|
-
return "hotfix-#{name}"
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
def current_hotfix_branch()
|
149
|
-
if ARGV[1] == '-n'
|
150
|
-
branch = get_branch_name_from_number(ARGV[2])
|
151
|
-
elsif ARGV[1]
|
152
|
-
branch = hotfix_branch(ARGV[1])
|
153
|
-
else
|
154
|
-
branch = Git::current_branch
|
155
|
-
end
|
156
|
-
|
157
|
-
return branch
|
158
|
-
end
|
159
|
-
|
160
|
-
def is_hotfix_branch(name)
|
161
|
-
name =~ /^hotfix-/
|
162
|
-
end
|
163
|
-
|
164
118
|
def wrap_text(txt, col = 80)
|
165
119
|
txt.gsub(
|
166
120
|
/(.{1,#{col}})(?: +|$)\n?|(.{#{col}})/,
|
data/man/feature-finish-issue.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-FINISH\-ISSUE" "1" "
|
4
|
+
.TH "FEATURE\-FINISH\-ISSUE" "1" "November 2019" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-finish\-issue\fR \- Finish this feature branch and attach it to an issue\.
|
@@ -16,7 +16,7 @@ Finish the current feature branch and optionally convert an existing issue into
|
|
16
16
|
Copyright (c) 2012\-2013 iFixit\.
|
17
17
|
.
|
18
18
|
.SH "SEE ALSO"
|
19
|
-
feature(1), feature\-finish(1)
|
19
|
+
feature(1), feature\-finish(1)
|
20
20
|
.
|
21
21
|
.SH "WWW"
|
22
22
|
https://github\.com/iFixit/git\-scripts
|
data/man/feature-finish.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-FINISH" "1" "
|
4
|
+
.TH "FEATURE\-FINISH" "1" "November 2019" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-finish\fR \- Finish this feature branch\.
|
@@ -16,7 +16,7 @@ Finish the current feature branch or the one specified\. Push all remote commits
|
|
16
16
|
Copyright (c) 2012\-2013 iFixit\.
|
17
17
|
.
|
18
18
|
.SH "SEE ALSO"
|
19
|
-
feature(1), feature\-finish\-issue(1)
|
19
|
+
feature(1), feature\-finish\-issue(1)
|
20
20
|
.
|
21
21
|
.SH "WWW"
|
22
22
|
https://github\.com/iFixit/git\-scripts
|
data/man/feature-finish.1.ronn
CHANGED
data/man/feature-github-test.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-GITHUB\-TEST" "1" "
|
4
|
+
.TH "FEATURE\-GITHUB\-TEST" "1" "July 2013" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-github\-test\fR \- Test Github authentication\.
|
data/man/feature-list.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-LIST" "1" "
|
4
|
+
.TH "FEATURE\-LIST" "1" "November 2019" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-list\fR \- Lists the current branch and any available feature branches\.
|
@@ -22,7 +22,7 @@ List merged branches\.
|
|
22
22
|
Copyright (c) 2012\-2013 iFixit\.
|
23
23
|
.
|
24
24
|
.SH "SEE ALSO"
|
25
|
-
feature(1)
|
25
|
+
feature(1)
|
26
26
|
.
|
27
27
|
.SH "WWW"
|
28
28
|
https://github\.com/iFixit/git\-scripts
|
data/man/feature-list.1.ronn
CHANGED
data/man/feature-merge.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-MERGE" "1" "
|
4
|
+
.TH "FEATURE\-MERGE" "1" "November 2019" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-merge\fR \- Merge a feature branch into the development branch\.
|
@@ -19,7 +19,7 @@ Deletes the local copy of the branch on success\.
|
|
19
19
|
Copyright (c) 2012\-2013 iFixit\.
|
20
20
|
.
|
21
21
|
.SH "SEE ALSO"
|
22
|
-
feature(1)
|
22
|
+
feature(1)
|
23
23
|
.
|
24
24
|
.SH "WWW"
|
25
25
|
https://github\.com/iFixit/git\-scripts
|
data/man/feature-merge.1.ronn
CHANGED
data/man/feature-prune.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-PRUNE" "1" "
|
4
|
+
.TH "FEATURE\-PRUNE" "1" "July 2013" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-prune\fR \- Remove old branches on original or local\.
|
data/man/feature-start.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-START" "1" "
|
4
|
+
.TH "FEATURE\-START" "1" "November 2019" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-start\fR \- Start a new feature branch\.
|
@@ -16,7 +16,7 @@ Start a new feature branch based off \fIfeature\.development\-branch\fR\.
|
|
16
16
|
Copyright (c) 2012\-2013 iFixit\.
|
17
17
|
.
|
18
18
|
.SH "SEE ALSO"
|
19
|
-
feature(1)
|
19
|
+
feature(1)
|
20
20
|
.
|
21
21
|
.SH "WWW"
|
22
22
|
https://github\.com/iFixit/git\-scripts
|
data/man/feature-start.1.ronn
CHANGED
data/man/feature-stashes.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-STASHES" "1" "
|
4
|
+
.TH "FEATURE\-STASHES" "1" "November 2019" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-stashes\fR \- Show stashes saved on the current branch\.
|
@@ -12,9 +12,6 @@
|
|
12
12
|
.SH "DESCRIPTION"
|
13
13
|
Show stashes saved on the current branch\. Display the relative time the stash was saved, the stash message, and instructions on viewing and applying the stash\.
|
14
14
|
.
|
15
|
-
.P
|
16
|
-
Compatible with hotfix branches\.
|
17
|
-
.
|
18
15
|
.SH "OPTIONS"
|
19
16
|
.
|
20
17
|
.TP
|