git_curate 1.2.0.beta3 → 1.3.0

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 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