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 +4 -4
- data/.github/workflows/tests.yml +56 -0
- data/CHANGELOG.md +17 -3
- data/README.md +14 -2
- data/VERSION +1 -1
- data/git_curate.gemspec +3 -3
- data/lib/git_curate/branch.rb +4 -2
- data/lib/git_curate/cli_parser.rb +14 -0
- data/lib/git_curate/runner.rb +2 -2
- data/lib/git_curate/version.rb +1 -1
- metadata +27 -27
- data/.travis.yml +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b33e072a71943724778d39da1a00e03c8f35c35880ae4c17eb15195a22847529
|
4
|
+
data.tar.gz: 45cb3068e500a04742c5514aa1b06e8aae2b0dfeff3796a6e4669555e23aa611
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
3
|
+
### v1.3.0
|
4
4
|
|
5
|
-
*
|
6
|
-
*
|
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://
|
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://
|
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.
|
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.
|
33
|
-
spec.add_runtime_dependency "tabulo", "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
|
data/lib/git_curate/branch.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/git_curate/runner.rb
CHANGED
@@ -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
|
|
data/lib/git_curate/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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:
|
205
|
+
version: '0'
|
206
206
|
requirements: []
|
207
|
-
rubygems_version: 3.
|
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: []
|