tbgit 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c8b1fa30525c2f20426afcef7c6df1b4a84157e
4
- data.tar.gz: 04a1c270214b68765861dad3fa086c11c594ab2a
3
+ metadata.gz: 0cfbbff80dc9f1e03335253f8bbd6d519ce6f746
4
+ data.tar.gz: 9cbbd01fe4c0162aacf11b585868dcdf43fd55de
5
5
  SHA512:
6
- metadata.gz: edfeffd1c96cc9524aab31547c7e7e1d61da06697dc5c611f01dccb91c56e632b94e14fe6e98320d84a84a0fd6283fdf9430b408c14fef938dbff4f19d992385
7
- data.tar.gz: a0c2b7c9d1f0dfb03b41ccf4c62e9fc9cf473108276c92c2c3d07ef27df83b8f6e3d6df0844342a29ffba45579b1a27ab5d68a18232747e05fae1afbe79e932b
6
+ metadata.gz: 641e35604aed563d2a57d7c808ec9af2d473ddeb6f35d9f74e311cba49bc334b889bf90138e586454530e38af612a22ae43bd77e7425643ba06ca4058fb41a77
7
+ data.tar.gz: b6f2cc86546cfa42e966175c729d5420cd16df714596fb65180e1aa5bc40f766210ddc67e509a5586774ed4c950f14cd448d5cc59e122ae461380ccdfc84441b
data/bin/tbgit CHANGED
@@ -1,8 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'tbgit'
4
+ require 'helptext'
4
5
 
5
6
  tbgit = Main::TBGit.new
7
+ helptext = HelpText.new
6
8
 
7
9
  case ARGV[0]
8
10
  when "setup"
@@ -46,5 +48,5 @@ when "create-locals"
46
48
 
47
49
  tbgit.create_local_tracking_remotes
48
50
  else
49
- tbgit.help
51
+ helptext.helpme
50
52
  end
data/lib/helptext.rb ADDED
@@ -0,0 +1,51 @@
1
+ class HelpText
2
+ def helpme
3
+ puts ""
4
+ puts "TBGit is a command-line utility to facilitate the management of multiple GitHub student repositories."
5
+ puts " ~ created by Charlie Proctor at 2014 YEI Tech Bootcamp"
6
+ puts " ~ partly based off of https://github.com/education/teachers_pet"
7
+ puts " Commands:"
8
+ puts " ~ setup sets up a tbgit environment. See decription below"
9
+ puts " ~ push pushes all local student branches to their remote master branches"
10
+ puts " ~ pull pulls all remote master branches to local student branches"
11
+ puts " ~ merge merges a specified branch with each student branch and then commits the changes"
12
+ puts " ~ status runs `git status` on each students branch and displays the results"
13
+ puts " ~ each executes a specified series of commands on each local student branch"
14
+ puts " ~ spec runs rspec on specified files in a students repo"
15
+ puts ""
16
+ puts " ~ add-remotes adds each student's repository as a remote"
17
+ puts " ~ create-locals creates a local branch to track the students remote master branch"
18
+ puts " ^----> these are both part of the setup process"
19
+ puts ""
20
+ puts " TBGit Environment"
21
+ puts " ~ it's a regular git repository -- with lots of fancy features!"
22
+ puts " ~ there is a master branch for teachers to work off of (create hw files, etc..)"
23
+ puts " --> teachers can obviously create and work off other branches if desired"
24
+ puts " ~ each student's repository is a remote of the git repo"
25
+ puts " ~ there is a local branch to track each student's remote master branches"
26
+ puts ""
27
+ puts " Setup"
28
+ puts " 1. Teachers create the student repositories (https://github.com/education/teachers_pet works perfectly well for this)"
29
+ puts " --> make sure the repos are all private, but that you have access to them!"
30
+ puts " --> initialize these repos with a README or push out a starter file."
31
+ puts " --> create a file with a list of the students github usernames (one on each line)"
32
+ puts " --- you will need this during the setup process"
33
+ puts " 2. Teachers create a repo for themselves. This will serve as the base for the tbgit environment."
34
+ puts " 3. Change to that repo's directory, execute `tbgit setup`, and follow the instructions."
35
+ puts ""
36
+ puts " A Typical Workflow"
37
+ puts " 1. Teachers create the assignment (on the master branch) and make a final commit when they're ready to deploy it"
38
+ puts " 2. Teachers pull all the students' repos to make sure they're up to date."
39
+ puts " --> `tbgit pull`"
40
+ puts " 3. Teachers merge their master branch with each student's local branch"
41
+ puts " --> `tbgit merge`"
42
+ puts " 4. At this point, teachers should check to make sure their were no merge conflicts. If there were, go in and fix them."
43
+ puts " --> feel free to `git checkout <username>` a few different branches"
44
+ puts " 4. Teachers push each students local branch to the student's remote master branch"
45
+ puts " --> `tbgit push`"
46
+ puts " 5. Make sure it worked. Do a victory lap."
47
+ puts ""
48
+ puts " To view student solutions at any point, just `tbgit pull` and `git checkout <username>`"
49
+ puts ""
50
+ end
51
+ end
data/lib/tbgit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tbgit
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
data/lib/tbgit.rb CHANGED
@@ -105,33 +105,11 @@ module Main
105
105
  def update_repos(pushpull)
106
106
  if pushpull == "push"
107
107
  confirm("Each local student branch will be pushed to their remote master branch. Continue?")
108
+ on_each_exec(["git push <branch> <branch>:master"])
108
109
  else
109
110
  confirm("Each remote student master branch will be pulled to the local branch. Continue?")
111
+ on_each_exec(["git pull <branch> master"])
110
112
  end
111
-
112
- all_remotes = all_remotes_list
113
- all_remotes.each do |branch|
114
- branch.delete!("\n")
115
-
116
- if branch != "origin"
117
- checkout_command = "git checkout " + branch
118
- if pushpull == "push"
119
- pushpull_command = "git push " + branch + " " + branch + ":master"
120
- else
121
- pushpull_command = "git pull " + branch + " master"
122
- end
123
-
124
- puts checkout_command
125
- system checkout_command
126
-
127
- puts pushpull_command
128
- system pushpull_command
129
- end
130
-
131
- end
132
-
133
- switch_to_master
134
-
135
113
  end
136
114
 
137
115
  #merges from master (or another branch) to each student branch and commits the changes
@@ -144,32 +122,10 @@ module Main
144
122
  puts "Commit Message: "
145
123
  message = $stdin.gets.chomp
146
124
 
147
- all_remotes = all_remotes_list
148
- all_remotes.each do |branch|
149
- branch.delete!("\n")
150
-
151
- if branch != "origin"
152
- checkout_command = "git checkout " + branch
153
- merge_command = "git merge --no-commit " + merge_branch.to_s
154
- stage_changes = "git add --all"
155
- commit_command = "git commit -am '" + message + "'"
156
-
157
- puts checkout_command
158
- system checkout_command
159
-
160
- puts merge_command
161
- system merge_command
162
-
163
- puts stage_changes
164
- system stage_changes
165
-
166
- puts commit_command
167
- system commit_command
168
- end
169
-
170
- end
171
-
172
- switch_to_master
125
+ commands = ["git merge --no-commit " + merge_branch.to_s,
126
+ "git add --all",
127
+ "git commit -am '" + message + "'"]
128
+ on_each_exec(commands)
173
129
 
174
130
  end
175
131
 
@@ -244,59 +200,5 @@ module Main
244
200
 
245
201
  end
246
202
 
247
- def help
248
- puts ""
249
- puts "TBGit is a command-line utility to facilitate the management of multiple GitHub student repositories."
250
- puts " ~ created by Charlie Proctor at 2014 YEI Tech Bootcamp"
251
- puts " ~ partly based off of https://github.com/education/teachers_pet"
252
- puts " Commands:"
253
- puts " ~ setup sets up a tbgit environment. See decription below"
254
- puts " ~ push pushes all local student branches to their remote master branches"
255
- puts " ~ pull pulls all remote master branches to local student branches"
256
- puts " ~ merge merges a specified branch with each student branch and then commits the changes"
257
- puts " ~ status runs `git status` on each students branch and displays the results"
258
- puts " ~ each executes a specified series of commands on each local student branch"
259
- puts " ~ spec runs rspec on specified files in a students repo"
260
- puts ""
261
- puts " ~ add-remotes adds each student's repository as a remote"
262
- puts " ~ create-locals creates a local branch to track the students remote master branch"
263
- puts " ^----> these are both part of the setup process"
264
- puts ""
265
- puts " TBGit Environment"
266
- puts " ~ it's a regular git repository -- with lots of fancy features!"
267
- puts " ~ there is a master branch for teachers to work off of (create hw files, etc..)"
268
- puts " --> teachers can obviously create and work off other branches if desired"
269
- puts " ~ each student's repository is a remote of the git repo"
270
- puts " ~ there is a local branch to track each student's remote master branches"
271
- puts ""
272
- puts " Setup"
273
- puts " 1. Teachers create the student repositories (https://github.com/education/teachers_pet works perfectly well for this)"
274
- puts " --> make sure the repos are all private, but that you have access to them!"
275
- puts " --> initialize these repos with a README or push out a starter file."
276
- puts " --> create a file with a list of the students github usernames (one on each line)"
277
- puts " --- you will need this during the setup process"
278
- puts " 2. Teachers create a repo for themselves. This will serve as the base for the tbgit environment."
279
- puts " 3. Change to that repo's directory, execute `tbgit setup`, and follow the instructions."
280
- puts ""
281
- puts " A Typical Workflow"
282
- puts " 1. Teachers create the assignment (on the master branch) and make a final commit when they're ready to deploy it"
283
- puts " 2. Teachers pull all the students' repos to make sure they're up to date."
284
- puts " --> `tbgit pull`"
285
- puts " 3. Teachers merge their master branch with each student's local branch"
286
- puts " --> `tbgit merge`"
287
- puts " 4. At this point, teachers should check to make sure their were no merge conflicts. If there were, go in and fix them."
288
- puts " --> feel free to `git checkout <username>` a few different branches"
289
- puts " 4. Teachers push each students local branch to the student's remote master branch"
290
- puts " --> `tbgit push`"
291
- puts " 5. Make sure it worked. Do a victory lap."
292
- puts ""
293
- puts " To view student solutions at any point, just `tbgit pull` and `git checkout <username>`"
294
- puts ""
295
- end
296
-
297
-
298
-
299
-
300
-
301
203
  end #class
302
204
  end #module
data/tbgit.gemspec CHANGED
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
+ spec.files += Dir['lib/*.rb'] #add in any .rb files in lib
17
18
  spec.executables = ["tbgit"]
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ["lib"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbgit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Proctor
@@ -52,6 +52,7 @@ files:
52
52
  - README.md
53
53
  - Rakefile
54
54
  - bin/tbgit
55
+ - lib/helptext.rb
55
56
  - lib/tbgit.rb
56
57
  - lib/tbgit/version.rb
57
58
  - tbgit.gemspec