git_curate 1.2.0.beta2 → 1.2.0.beta3

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: 0d25c82cca61f81731702b5ff45d30a44ed5778304c49a0a250171f268fd8ce9
4
- data.tar.gz: b4ad3c50995bcee65fb57c6455b70b6960cf7ee5309265e70fd95f6a80c666ea
3
+ metadata.gz: f3fc938706457be386083c9441a7c50bebfe7b2cab57171f776b73d3e2aec5e3
4
+ data.tar.gz: e7bdcb5b6d3569f50e0666ff00b096b7dc3d5be346abf1a3f069504196e34cde
5
5
  SHA512:
6
- metadata.gz: 317df38e0f8d54f750544346570961ac09c4d5f03c5b1593c3423d53e461cb8c64b2d1e669453c3bf2f9ade9cd8a1c1336ba2aea4edc3a29b401912b8c374259
7
- data.tar.gz: 6b6f5d5fee3bd0c6b96114afd5fda13ecd6cfc99d1ba5ebeff7fe16de44e5fe74239e530589adcec0423034d25a9918413af45b36771a758236693fb6a77737f
6
+ metadata.gz: f1ddd5f0da864679502d13b0e9ab6053abbe9bcbdc5555795da041ce0ffcc8b66af40d9811f0dffe21bdc7d00baa0f042aa5e27b2b3ba4af25c3474197b5ec5a
7
+ data.tar.gz: a57fcb5ea45588673fdfdbee07fc6de2cd384d64323bed105ee4af363109aaad3b4807ec846bc070ec48ce221b5249f6ddcdf3b2812cc95758c2ada9282fe309
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
  **/.*.swp
11
11
  coverage
12
+ play.rb
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.4.10
4
- - 2.5.8
5
- - 2.6.6
6
- - 2.7.2
7
- - 3.0.0
4
+ - 2.5.9
5
+ - 2.6.7
6
+ - 2.7.3
7
+ - 3.0.1
data/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ### v1.2.0.beta, v1.2.0.beta2
3
+ ### v1.2.0.beta, v1.2.0.beta2, v1.2.0.beta3
4
4
 
5
5
  * Fix for issue #16: "undefined method upstream" error on MacOS 15.7
6
6
  * Add rugged library
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0.beta2
1
+ 1.2.0.beta3
data/lib/git_curate.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "git_curate/app"
2
2
  require "git_curate/branch"
3
+ require "git_curate/commit"
3
4
  require "git_curate/cli_parser"
4
5
  require "git_curate/copyright"
5
6
  require "git_curate/exceptions"
@@ -2,12 +2,8 @@ require "rugged"
2
2
 
3
3
  module GitCurate
4
4
 
5
- UpstreamInfo = Struct.new(:upstream, :status)
6
-
7
5
  class Branch
8
6
 
9
- @@repo = Rugged::Repository.new(".")
10
-
11
7
  # Regex for determining whether a "raw" branch name is the name of the current branch
12
8
  # on this or another worktree.
13
9
  CURRENT_BRANCH_REGEX = /^[+*]\s+/
@@ -48,29 +44,28 @@ module GitCurate
48
44
  end
49
45
 
50
46
  def last_commit_date
51
- initialize_last_commit_data
52
- @last_commit_date
47
+ last_commit.date
53
48
  end
54
49
 
55
50
  def hash
56
- initialize_last_commit_data
57
- @hash
51
+ last_commit.hash
58
52
  end
59
53
 
60
54
  def last_author
61
- initialize_last_commit_data
62
- @last_author
55
+ last_commit.author
63
56
  end
64
57
 
65
58
  def last_subject
66
- initialize_last_commit_data
67
- @last_subject
59
+ last_commit.subject
68
60
  end
69
61
 
70
62
  # Returns the local branches
71
63
  def self.local
72
- rugged_branches = @@repo.branches
73
- repo_head_target = @@repo.head.target
64
+ toplevel_dir = Util.command_output("git rev-parse --show-toplevel").strip
65
+ repo = Rugged::Repository.new(toplevel_dir)
66
+
67
+ rugged_branches = repo.branches
68
+ repo_head_target = repo.head.target
74
69
 
75
70
  Util.command_to_a("git branch").map do |line|
76
71
  raw_branch_name = line.strip
@@ -80,7 +75,7 @@ module GitCurate
80
75
  upstream_data =
81
76
  if upstream
82
77
  target_id = rugged_branch.target_id
83
- ahead, behind = @@repo.ahead_behind(target_id, upstream.target_id)
78
+ ahead, behind = repo.ahead_behind(target_id, upstream.target_id)
84
79
  parts = []
85
80
  parts << "ahead #{ahead}" if ahead != 0
86
81
  parts << "behind #{behind}" if behind != 0
@@ -94,7 +89,7 @@ module GitCurate
94
89
  end
95
90
 
96
91
  target = rugged_branch.resolve.target
97
- merged = (@@repo.merge_base(repo_head_target, target) == target.oid)
92
+ merged = (repo.merge_base(repo_head_target, target) == target.oid)
98
93
 
99
94
  new(
100
95
  raw_branch_name,
@@ -118,16 +113,13 @@ module GitCurate
118
113
  @upstream_info = upstream_info
119
114
  end
120
115
 
121
- # Returns an array with [date, author, subject], each as a string.
122
- def initialize_last_commit_data
123
- return if @last_commit_data
124
-
125
- # For Windows compatibility we need double quotes around the format string, as well as spaces
126
- # between the placeholders.
127
- command = %Q(git log -n1 --date=short --format=format:"%cd %n %h %n %an %n %s" #{proper_name} --)
128
- @last_commit_data = Util.command_to_a(command)
129
-
130
- @last_commit_date, @hash, @last_author, @last_subject = @last_commit_data
116
+ def last_commit
117
+ @last_commit ||= begin
118
+ # For Windows compatibility we need double quotes around the format string, as well as spaces
119
+ # between the placeholders.
120
+ command = %Q(git log -n1 --date=short --format=format:"%cd %n %h %n %an %n %s" #{proper_name} --)
121
+ Commit.new(*Util.command_to_a(command))
122
+ end
131
123
  end
132
124
 
133
125
  end
@@ -0,0 +1,5 @@
1
+ module GitCurate
2
+
3
+ Commit = Struct.new(:date, :hash, :author, :subject)
4
+
5
+ end
@@ -1,3 +1,3 @@
1
1
  module GitCurate
2
- VERSION = "1.2.0.beta2"
2
+ VERSION = "1.2.0.beta3"
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.beta2
4
+ version: 1.2.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Harvey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-29 00:00:00.000000000 Z
11
+ date: 2021-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -177,12 +177,12 @@ files:
177
177
  - lib/git_curate/app.rb
178
178
  - lib/git_curate/branch.rb
179
179
  - lib/git_curate/cli_parser.rb
180
+ - lib/git_curate/commit.rb
180
181
  - lib/git_curate/copyright.rb
181
182
  - lib/git_curate/exceptions.rb
182
183
  - lib/git_curate/runner.rb
183
184
  - lib/git_curate/util.rb
184
185
  - lib/git_curate/version.rb
185
- - play.rb
186
186
  homepage: https://github.com/matt-harvey/git_curate
187
187
  licenses:
188
188
  - MIT
data/play.rb DELETED
@@ -1,31 +0,0 @@
1
- require "rugged"
2
-
3
- repo = Rugged::Repository.new(".")
4
-
5
- current_branch_name = repo.head.name.sub(/^refs\/heads\//, '')
6
-
7
- repo.branches.each_name(:local) do |branch_name|
8
- branch_reference = repo.references["refs/heads/#{branch_name}"]
9
- branch = repo.branches[branch_name]
10
- is_current = current_branch_name == branch_name
11
- target_id = branch.target_id
12
- top_commit = branch_reference.log.first
13
- commit = repo.lookup(target_id)
14
-
15
- target = branch.resolve.target
16
- merged = repo.merge_base(repo.head.target, target) == target.oid
17
-
18
- puts "Branch: #{is_current ? '* ' + branch_name : branch_name}"
19
- puts "date: #{commit.time}"
20
- puts "hash: #{target_id}"
21
- puts "author: #{top_commit[:committer][:name]}"
22
- puts "subject: #{commit.message.split($/, -1)[0]}"
23
- if branch.upstream
24
- puts "upstream: #{branch.upstream.name}"
25
- ahead, behind = repo.ahead_behind(target_id, branch.upstream.target_id)
26
- puts "ahead: #{ahead}"
27
- puts "behind: #{behind}"
28
- end
29
- puts "merged: #{merged ? 'Merged' : 'Not merged'}"
30
- puts "*****************"
31
- end