git_curate 1.2.0.beta3 → 1.3.0

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
  SHA256:
3
- metadata.gz: f3fc938706457be386083c9441a7c50bebfe7b2cab57171f776b73d3e2aec5e3
4
- data.tar.gz: e7bdcb5b6d3569f50e0666ff00b096b7dc3d5be346abf1a3f069504196e34cde
3
+ metadata.gz: b33e072a71943724778d39da1a00e03c8f35c35880ae4c17eb15195a22847529
4
+ data.tar.gz: 45cb3068e500a04742c5514aa1b06e8aae2b0dfeff3796a6e4669555e23aa611
5
5
  SHA512:
6
- metadata.gz: f1ddd5f0da864679502d13b0e9ab6053abbe9bcbdc5555795da041ce0ffcc8b66af40d9811f0dffe21bdc7d00baa0f042aa5e27b2b3ba4af25c3474197b5ec5a
7
- data.tar.gz: a57fcb5ea45588673fdfdbee07fc6de2cd384d64323bed105ee4af363109aaad3b4807ec846bc070ec48ce221b5249f6ddcdf3b2812cc95758c2ada9282fe309
6
+ metadata.gz: 85bab3c9cc97daf93ddf278713b8a7aad010c406cdcc940af7e100aebd7aa99d5c5b69a613ea736f990076718e628d7be7b92b18706ca35c63482980d9e11248
7
+ data.tar.gz: 4da0223e68e991c394ea88df0a8c0238100234ddc92d3a95c8823e52be428997835fc820ee23286ae9b3363dd9b49fedd541e2955668d1c66afd1800bb95bc8e
@@ -0,0 +1,56 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Tests
9
+
10
+ on:
11
+ push:
12
+ branches: [master]
13
+ pull_request:
14
+ branches: [master]
15
+
16
+ jobs:
17
+ test:
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ matrix:
21
+ ruby-version: [
22
+ '2.4.10',
23
+ '2.5.9',
24
+ '2.6.10',
25
+ '2.7.6',
26
+ '3.0.4',
27
+ '3.1.2',
28
+ ]
29
+ steps:
30
+ - uses: actions/checkout@v2
31
+ - name: Set up Ruby
32
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
33
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
34
+ uses: ruby/setup-ruby@v1 # Was: uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
35
+ with:
36
+ ruby-version: ${{ matrix.ruby-version }}
37
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
38
+ - name: Run tests
39
+ run: bundle exec rspec
40
+ - name: Report to Coveralls
41
+ uses: coverallsapp/github-action@v1.1.2
42
+ with:
43
+ github-token: ${{ secrets.github_token }}
44
+ flag-name: test-${{ matrix.ruby }}-${{ matrix.gemfile }}
45
+ parallel: true
46
+
47
+ finish:
48
+ needs: test
49
+ runs-on: ubuntu-latest
50
+ steps:
51
+
52
+ - name: Report completion to Coveralls
53
+ uses: coverallsapp/github-action@v1.1.2
54
+ with:
55
+ github-token: ${{ secrets.github_token }}
56
+ parallel-finished: truec
data/CHANGELOG.md CHANGED
@@ -1,9 +1,23 @@
1
1
  # Changelog
2
2
 
3
- ### v1.2.0.beta, v1.2.0.beta2, v1.2.0.beta3
3
+ ### v1.3.0
4
4
 
5
- * Fix for issue #16: "undefined method upstream" error on MacOS 15.7
6
- * Add rugged library
5
+ * Add --merged and --no-merged options
6
+ * Dependency version upgrades
7
+
8
+ ### v1.2.1
9
+
10
+ * Dependency version upgrades
11
+ * GitHub actions replaces Travis for CI
12
+ * Better installation instructions around 'rugged' dependency
13
+
14
+ ### v1.2.0
15
+
16
+ * Fix issue #16: "undefined method 'upstream'" error on MacOS 15.7
17
+ * Use [rugged](https://github.com/libgit2/rugged) library to get various branch information,
18
+ decreasing reliance of parsing `git` CLI output, and increasing robustness of the application
19
+ across platforms.
20
+ * Dependency version upgrades
7
21
 
8
22
  ### v1.1.2
9
23
 
data/README.md CHANGED
@@ -40,6 +40,15 @@ gem install git_curate
40
40
 
41
41
  to install the executable.
42
42
 
43
+ Note `git_curate` uses the [rugged](https://github.com/libgit2/rugged) library, which comes with a
44
+ native C extension, `libgit2`. Installation via `gem install git_curate` will trigger this extension
45
+ to be compiled; this may take a few minutes, depending on your machine.
46
+
47
+ If you receive an error like `ERROR: Failed to build gem native extension`, it’s probably because
48
+ your system lacks certain prerequisites needed for building `libgit2`, for example `cmake`. To fix this,
49
+ first follow the [installation instructions for rugged](https://github.com/libgit2/rugged#install); then
50
+ run `gem install git_curate` again.
51
+
43
52
  ## Usage
44
53
 
45
54
  From within a git repo, run:
@@ -66,6 +75,9 @@ If you just want to view the information about your local branches without stepp
66
75
  them interactively, enter `git curate --list` or `git curate -l`. Your current branch _will_
67
76
  be included in this list in this case.
68
77
 
78
+ You can also pass `--merged` to see only those branches merged into current `HEAD`; or `--no-merged`
79
+ to see only those branches _not_ merged into current `HEAD`.
80
+
69
81
  ## Contributing
70
82
 
71
83
  Bug reports and pull requests are welcome on [GitHub](https://github.com/matt-harvey/git_curate).
@@ -80,11 +92,11 @@ To run the test suite, run `bundle exec rake spec`. For a list of other Rake tas
80
92
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
81
93
 
82
94
  [Gem Version]: https://rubygems.org/gems/git_curate
83
- [Build Status]: https://travis-ci.org/matt-harvey/git_curate
95
+ [Build Status]: https://github.com/matt-harvey/git_curate/actions/workflows/tests.yml
84
96
  [Coverage Status]: https://coveralls.io/github/matt-harvey/git_curate
85
97
  [Awesome Ruby]: https://awesome-ruby.com/#-git-tools
86
98
 
87
99
  [GV img]: https://img.shields.io/gem/v/git_curate.svg
88
- [BS img]: https://img.shields.io/travis/matt-harvey/git_curate.svg
100
+ [BS img]: https://github.com/matt-harvey/git_curate/actions/workflows/tests.yml/badge.svg
89
101
  [CS img]: https://img.shields.io/coveralls/matt-harvey/git_curate.svg
90
102
  [AR img]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0.beta3
1
+ 1.3.0
data/git_curate.gemspec CHANGED
@@ -29,14 +29,14 @@ Gem::Specification.new do |spec|
29
29
  spec.require_paths = ["lib"]
30
30
 
31
31
  spec.add_runtime_dependency "highline", "2.0.3"
32
- spec.add_runtime_dependency "rugged", "1.1.0"
33
- spec.add_runtime_dependency "tabulo", "2.6.2"
32
+ spec.add_runtime_dependency "rugged", "1.5.0.1"
33
+ spec.add_runtime_dependency "tabulo", "2.8.1"
34
34
  spec.add_runtime_dependency "tty-screen", "0.8.1"
35
35
 
36
36
  spec.add_development_dependency "bundler"
37
- spec.add_development_dependency "coveralls"
38
37
  spec.add_development_dependency "rake", "~> 13.0"
39
38
  spec.add_development_dependency "rake-version", "~> 1.0"
40
39
  spec.add_development_dependency "rspec", "~> 3.9"
41
40
  spec.add_development_dependency "simplecov"
41
+ spec.add_development_dependency "simplecov-lcov"
42
42
  end
@@ -60,14 +60,16 @@ module GitCurate
60
60
  end
61
61
 
62
62
  # Returns the local branches
63
- def self.local
63
+ def self.local(merged_opt)
64
64
  toplevel_dir = Util.command_output("git rev-parse --show-toplevel").strip
65
65
  repo = Rugged::Repository.new(toplevel_dir)
66
66
 
67
67
  rugged_branches = repo.branches
68
68
  repo_head_target = repo.head.target
69
69
 
70
- Util.command_to_a("git branch").map do |line|
70
+ command = "git branch" + (merged_opt ? " #{merged_opt}" : "")
71
+
72
+ Util.command_to_a(command).map do |line|
71
73
  raw_branch_name = line.strip
72
74
  proper_branch_name = raw_branch_name.gsub(CURRENT_BRANCH_REGEX, "")
73
75
  rugged_branch = rugged_branches[proper_branch_name]
@@ -38,6 +38,20 @@ module GitCurate
38
38
  self.parsed_options[:list] = true
39
39
  end
40
40
 
41
+ opts.on(
42
+ "--merged",
43
+ "Only list branches whose tips are reachable from HEAD",
44
+ ) do
45
+ self.parsed_options[:merged_opt] = "--merged"
46
+ end
47
+
48
+ opts.on(
49
+ "--no-merged",
50
+ "Only list branches whose tips are not reachable from HEAD",
51
+ ) do
52
+ self.parsed_options[:merged_opt] = "--no-merged"
53
+ end
54
+
41
55
  opts.on("-h", "Print this help message") do
42
56
  puts opts
43
57
  return false
@@ -26,7 +26,7 @@ module GitCurate
26
26
  return EXIT_FAILURE
27
27
  end
28
28
 
29
- branches = Branch.local
29
+ branches = Branch.local(@opts[:merged_opt])
30
30
  branches.reject!(&:current?) if interactive?
31
31
 
32
32
  table = Tabulo::Table.new(branches, border: :reduced_ascii, column_padding: 0, align_header: :left) do |t|
@@ -47,7 +47,7 @@ module GitCurate
47
47
  branches_to_delete = []
48
48
 
49
49
  if !interactive?
50
- puts table
50
+ puts table if branches.any?
51
51
  return EXIT_SUCCESS
52
52
  end
53
53
 
@@ -1,3 +1,3 @@
1
1
  module GitCurate
2
- VERSION = "1.2.0.beta3"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_curate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.beta3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Harvey
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-30 00:00:00.000000000 Z
11
+ date: 2022-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.0
33
+ version: 1.5.0.1
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
- version: 1.1.0
40
+ version: 1.5.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: tabulo
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 2.6.2
47
+ version: 2.8.1
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
- version: 2.6.2
54
+ version: 2.8.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: tty-screen
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: coveralls
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rake
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +136,20 @@ dependencies:
150
136
  - - ">="
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simplecov-lcov
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
153
  description: Step through local git branches from the command line, keeping or deleting
154
154
  each.
155
155
  email:
@@ -159,9 +159,9 @@ executables:
159
159
  extensions: []
160
160
  extra_rdoc_files: []
161
161
  files:
162
+ - ".github/workflows/tests.yml"
162
163
  - ".gitignore"
163
164
  - ".rspec"
164
- - ".travis.yml"
165
165
  - CHANGELOG.md
166
166
  - Gemfile
167
167
  - LICENSE.txt
@@ -189,7 +189,7 @@ licenses:
189
189
  metadata:
190
190
  source_code_uri: https://github.com/matt-harvey/git_curate
191
191
  changelog_uri: https://raw.githubusercontent.com/matt-harvey/git_curate/master/CHANGELOG.md
192
- post_install_message:
192
+ post_install_message:
193
193
  rdoc_options: []
194
194
  require_paths:
195
195
  - lib
@@ -200,12 +200,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
200
200
  version: 2.4.9
201
201
  required_rubygems_version: !ruby/object:Gem::Requirement
202
202
  requirements:
203
- - - ">"
203
+ - - ">="
204
204
  - !ruby/object:Gem::Version
205
- version: 1.3.1
205
+ version: '0'
206
206
  requirements: []
207
- rubygems_version: 3.1.2
208
- signing_key:
207
+ rubygems_version: 3.2.3
208
+ signing_key:
209
209
  specification_version: 4
210
210
  summary: Simple git branch curation tool
211
211
  test_files: []
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.4.10
4
- - 2.5.9
5
- - 2.6.7
6
- - 2.7.3
7
- - 3.0.1