vclog 1.2 → 1.4.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.
- data/HISTORY.rdoc +87 -0
- data/PROFILE +17 -0
- data/{README → README.rdoc} +0 -0
- data/REQUIRE +9 -0
- data/{TODO → ROADMAP.rdoc} +0 -17
- data/VERSION +5 -0
- data/bin/vclog +1 -1
- data/features/history.feature +16 -0
- data/features/step_definitions/history_steps.rb +29 -0
- data/features/support/ae.rb +1 -0
- data/features/support/loadpath.rb +2 -0
- data/lib/plugins/syckle/vclog.rb +194 -0
- data/lib/vclog/changelog.rb +86 -131
- data/lib/vclog/cli.rb +12 -8
- data/lib/vclog/heuristics.rb +15 -0
- data/lib/vclog/history.rb +76 -109
- data/lib/vclog/release.rb +4 -0
- data/lib/vclog/tag.rb +5 -0
- data/lib/vclog/templates/changelog.gnu +6 -0
- data/lib/vclog/templates/changelog.html +34 -0
- data/lib/vclog/templates/changelog.markdown +6 -0
- data/lib/vclog/templates/changelog.rdoc +6 -0
- data/lib/vclog/templates/changelog.xml +16 -0
- data/lib/vclog/templates/changelog.xsl +34 -0
- data/lib/vclog/templates/history.html +47 -0
- data/lib/vclog/templates/history.markdown +12 -0
- data/lib/vclog/templates/history.rdoc +12 -0
- data/lib/vclog/templates/history.xml +30 -0
- data/lib/vclog/vcs/git.rb +16 -18
- data/lib/vclog/vcs/svn.rb +30 -20
- data/lib/vclog/vcs.rb +12 -3
- data/lib/vclog.rb +1 -0
- data/meta/{project → name} +0 -0
- data/meta/{parent → suite} +0 -0
- data/meta/version +1 -1
- metadata +50 -27
- data/HISTORY.md +0 -55
- data/MANIFEST +0 -36
- data/meta/loadpath +0 -2
data/lib/vclog/vcs/svn.rb
CHANGED
@@ -4,35 +4,39 @@ module VCLog
|
|
4
4
|
|
5
5
|
# = SVN
|
6
6
|
#
|
7
|
-
# SVN
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
# change foo to work better
|
7
|
+
# NOTE: Unfortunately the SVN adapater is very slow. If hits the server
|
8
|
+
# every time the 'svn log' command is issued. When generating a History
|
9
|
+
# that's one hit for every tag. If anyone knows a better way please have
|
10
|
+
# at it --maybe future versions of SVN will improve the situation.
|
13
11
|
#
|
14
12
|
class SVN < VCS
|
15
13
|
|
14
|
+
def initialize(root)
|
15
|
+
begin
|
16
|
+
require 'xmlsimple'
|
17
|
+
rescue LoadError
|
18
|
+
"VCLog requires xmlsimple for SVN support"
|
19
|
+
end
|
20
|
+
super(root)
|
21
|
+
end
|
22
|
+
|
16
23
|
#
|
17
24
|
def extract_changes
|
18
25
|
log = []
|
19
26
|
|
20
|
-
|
27
|
+
xml = `svn log --xml`.strip
|
21
28
|
|
22
|
-
|
29
|
+
commits = XmlSimple.xml_in(xml, {'KeyAttr' => 'rev'})
|
30
|
+
commits = commits['logentry']
|
23
31
|
|
24
|
-
|
25
|
-
|
32
|
+
commits.each do |com|
|
33
|
+
rev = com["revision"]
|
34
|
+
msg = [com["msg"]].flatten.compact.join('').strip
|
35
|
+
who = [com["author"]].flatten.compact.join('').strip
|
36
|
+
date = [com["date"]].flatten.compact.join('').strip
|
26
37
|
|
27
38
|
next if msg.empty?
|
28
|
-
|
29
|
-
idx = msg.index("\n")
|
30
|
-
head = msg.slice!(0...idx)
|
31
|
-
rev, who, date, cnt = *head.split('|')
|
32
|
-
|
33
|
-
rev = rev.strip
|
34
|
-
who = who.strip
|
35
|
-
msg = msg.strip
|
39
|
+
next if msg == "*** empty log message ***"
|
36
40
|
|
37
41
|
date = Time.parse(date)
|
38
42
|
|
@@ -58,6 +62,7 @@ module VCLog
|
|
58
62
|
tags.each do |path|
|
59
63
|
dir = File.join(tagdir, path)
|
60
64
|
|
65
|
+
# using yaml, but maybe use xml instead?
|
61
66
|
info = `svn info #{dir}`
|
62
67
|
info = YAML.load(info)
|
63
68
|
md = /(\d.*)$/.match(info['Path'])
|
@@ -66,8 +71,13 @@ module VCLog
|
|
66
71
|
who = info['Last Changed Author']
|
67
72
|
rev = info['Revision']
|
68
73
|
|
69
|
-
|
70
|
-
|
74
|
+
# get last commit
|
75
|
+
xml = `svn log -l1 --xml #{dir}`
|
76
|
+
commits = XmlSimple.xml_in(xml, {'KeyAttr' => 'rev'})
|
77
|
+
commit = commits['logentry'].first
|
78
|
+
|
79
|
+
msg = [commit["msg"]].flatten.compact.join('').strip
|
80
|
+
date = [commit["date"]].flatten.compact.join('').strip
|
71
81
|
|
72
82
|
list << [name, date, who, msg]
|
73
83
|
end
|
data/lib/vclog/vcs.rb
CHANGED
@@ -97,12 +97,21 @@ module VCLog
|
|
97
97
|
|
98
98
|
private
|
99
99
|
|
100
|
-
# Looks for a "[type]" indicator at the end of the message.
|
100
|
+
# Looks for a "[type]" indicator at the end of the commit message.
|
101
|
+
# If that is not found, it looks at front of message for
|
102
|
+
# "[type]" or "[type]:". Failing that it tries just "type:".
|
103
|
+
#
|
101
104
|
def split_type(note)
|
102
105
|
note = note.strip
|
103
|
-
if md = /\
|
106
|
+
if md = /\[(.*?)\]\Z/.match(note)
|
107
|
+
t = md[1].strip.downcase
|
108
|
+
n = note[0...(md.begin(0))]
|
109
|
+
elsif md = /\A\[(.*?)\]\:?/.match(note)
|
110
|
+
t = md[1].strip.downcase
|
111
|
+
n = note[md.end(0)..-1]
|
112
|
+
elsif md = /\A(\w+?)\:/.match(note)
|
104
113
|
t = md[1].strip.downcase
|
105
|
-
n = note.
|
114
|
+
n = note[md.end(0)..-1]
|
106
115
|
else
|
107
116
|
n, t = note, nil
|
108
117
|
end
|
data/lib/vclog.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'vclog/vcs'
|
data/meta/{project → name}
RENAMED
File without changes
|
data/meta/{parent → suite}
RENAMED
File without changes
|
data/meta/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.4.0
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vclog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 1.4.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Thomas Sawyer
|
@@ -9,66 +14,83 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-05-26 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: facets
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">"
|
22
26
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
27
|
+
segments:
|
28
|
+
- 2
|
29
|
+
- 4
|
30
|
+
version: "2.4"
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
25
33
|
description: VCLog is a cross-VCS/SCM ChangeLog generator.
|
26
|
-
email:
|
34
|
+
email:
|
27
35
|
executables:
|
28
36
|
- vclog
|
29
37
|
extensions: []
|
30
38
|
|
31
39
|
extra_rdoc_files:
|
32
|
-
- README
|
33
|
-
- MANIFEST
|
34
|
-
- TODO
|
35
|
-
- LICENSE
|
36
|
-
- HISTORY.md
|
40
|
+
- README.rdoc
|
37
41
|
files:
|
38
|
-
- HISTORY.md
|
39
|
-
- LICENSE
|
40
|
-
- MANIFEST
|
41
|
-
- README
|
42
|
-
- TODO
|
43
42
|
- bin/vclog
|
43
|
+
- lib/plugins/syckle/vclog.rb
|
44
44
|
- lib/vclog/change.rb
|
45
45
|
- lib/vclog/changelog.rb
|
46
46
|
- lib/vclog/cli.rb
|
47
47
|
- lib/vclog/facets.rb
|
48
|
+
- lib/vclog/heuristics.rb
|
48
49
|
- lib/vclog/history.rb
|
49
50
|
- lib/vclog/release.rb
|
50
51
|
- lib/vclog/tag.rb
|
51
|
-
- lib/vclog/
|
52
|
+
- lib/vclog/templates/changelog.gnu
|
53
|
+
- lib/vclog/templates/changelog.html
|
54
|
+
- lib/vclog/templates/changelog.markdown
|
55
|
+
- lib/vclog/templates/changelog.rdoc
|
56
|
+
- lib/vclog/templates/changelog.xml
|
57
|
+
- lib/vclog/templates/changelog.xsl
|
58
|
+
- lib/vclog/templates/history.html
|
59
|
+
- lib/vclog/templates/history.markdown
|
60
|
+
- lib/vclog/templates/history.rdoc
|
61
|
+
- lib/vclog/templates/history.xml
|
52
62
|
- lib/vclog/vcs/darcs.rb
|
53
63
|
- lib/vclog/vcs/git.rb
|
54
64
|
- lib/vclog/vcs/hg.rb
|
55
65
|
- lib/vclog/vcs/svn.rb
|
66
|
+
- lib/vclog/vcs.rb
|
67
|
+
- lib/vclog.rb
|
68
|
+
- features/history.feature
|
69
|
+
- features/step_definitions/history_steps.rb
|
70
|
+
- features/support/ae.rb
|
71
|
+
- features/support/loadpath.rb
|
56
72
|
- meta/authors
|
57
73
|
- meta/contact
|
58
74
|
- meta/created
|
59
75
|
- meta/description
|
60
76
|
- meta/homepage
|
61
77
|
- meta/license
|
62
|
-
- meta/
|
63
|
-
- meta/parent
|
64
|
-
- meta/project
|
78
|
+
- meta/name
|
65
79
|
- meta/repository
|
66
80
|
- meta/requires
|
67
81
|
- meta/ruby
|
68
82
|
- meta/sitemap
|
83
|
+
- meta/suite
|
69
84
|
- meta/summary
|
70
85
|
- meta/title
|
71
86
|
- meta/version
|
87
|
+
- HISTORY.rdoc
|
88
|
+
- PROFILE
|
89
|
+
- LICENSE
|
90
|
+
- README.rdoc
|
91
|
+
- ROADMAP.rdoc
|
92
|
+
- REQUIRE
|
93
|
+
- VERSION
|
72
94
|
has_rdoc: true
|
73
95
|
homepage: http://proutils.rubyforge.org/vclog
|
74
96
|
licenses: []
|
@@ -78,26 +100,27 @@ rdoc_options:
|
|
78
100
|
- --title
|
79
101
|
- VCLog API
|
80
102
|
- --main
|
81
|
-
- README
|
103
|
+
- README.rdoc
|
82
104
|
require_paths:
|
83
105
|
- lib
|
84
|
-
- plug
|
85
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
86
107
|
requirements:
|
87
108
|
- - ">="
|
88
109
|
- !ruby/object:Gem::Version
|
110
|
+
segments:
|
111
|
+
- 0
|
89
112
|
version: "0"
|
90
|
-
version:
|
91
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
114
|
requirements:
|
93
115
|
- - ">="
|
94
116
|
- !ruby/object:Gem::Version
|
117
|
+
segments:
|
118
|
+
- 0
|
95
119
|
version: "0"
|
96
|
-
version:
|
97
120
|
requirements: []
|
98
121
|
|
99
122
|
rubyforge_project: proutils
|
100
|
-
rubygems_version: 1.3.
|
123
|
+
rubygems_version: 1.3.6
|
101
124
|
signing_key:
|
102
125
|
specification_version: 3
|
103
126
|
summary: Cross-VCS/SCM ChangeLog Generator
|
data/HISTORY.md
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
# RELEASE HISTORY
|
2
|
-
|
3
|
-
## 1.2 / 2009-10-26
|
4
|
-
|
5
|
-
Version 1.2 overhuals the internals so that History
|
6
|
-
output is based on scm tags, not on a pre-existing history file.
|
7
|
-
This is really the proper way to go about it and those
|
8
|
-
who use it will, I think, be happily surprised at how it
|
9
|
-
promotes good practices for the maintenance of History files.
|
10
|
-
This overhaul led to substantial changes in the command-line
|
11
|
-
interface.
|
12
|
-
|
13
|
-
Changes:
|
14
|
-
|
15
|
-
* 2 Major Enhancements
|
16
|
-
|
17
|
-
* Rewrote History class.
|
18
|
-
* Changed command-line interface.
|
19
|
-
|
20
|
-
|
21
|
-
## 1.1 / 2009-10-23
|
22
|
-
|
23
|
-
This release adds yaml and json formats an improves
|
24
|
-
the command.
|
25
|
-
|
26
|
-
Changes:
|
27
|
-
|
28
|
-
* 2 Major Enhancements
|
29
|
-
|
30
|
-
* Added YAML format.
|
31
|
-
* Added JSON format.
|
32
|
-
|
33
|
-
* 1 Minor Enhancements
|
34
|
-
|
35
|
-
* Use OptionParser instead of GetoptLong.
|
36
|
-
|
37
|
-
|
38
|
-
## 1.0.0 / 2009-10-13
|
39
|
-
|
40
|
-
This is the first "production" release of VCLog.
|
41
|
-
|
42
|
-
* 2 Major Enhancements
|
43
|
-
|
44
|
-
* Improved command line interface.
|
45
|
-
* Added output option to save changelog.
|
46
|
-
|
47
|
-
|
48
|
-
## 0.1.0 / 2009-08-17
|
49
|
-
|
50
|
-
This is the initial version of vclog.
|
51
|
-
|
52
|
-
* 1 Major Enhancement
|
53
|
-
|
54
|
-
* Happy Birthday
|
55
|
-
|
data/MANIFEST
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
HISTORY.md
|
2
|
-
LICENSE
|
3
|
-
MANIFEST
|
4
|
-
README
|
5
|
-
TODO
|
6
|
-
bin/vclog
|
7
|
-
lib/vclog
|
8
|
-
lib/vclog/change.rb
|
9
|
-
lib/vclog/changelog.rb
|
10
|
-
lib/vclog/cli.rb
|
11
|
-
lib/vclog/facets.rb
|
12
|
-
lib/vclog/history.rb
|
13
|
-
lib/vclog/release.rb
|
14
|
-
lib/vclog/tag.rb
|
15
|
-
lib/vclog/vcs
|
16
|
-
lib/vclog/vcs.rb
|
17
|
-
lib/vclog/vcs/darcs.rb
|
18
|
-
lib/vclog/vcs/git.rb
|
19
|
-
lib/vclog/vcs/hg.rb
|
20
|
-
lib/vclog/vcs/svn.rb
|
21
|
-
meta/authors
|
22
|
-
meta/contact
|
23
|
-
meta/created
|
24
|
-
meta/description
|
25
|
-
meta/homepage
|
26
|
-
meta/license
|
27
|
-
meta/loadpath
|
28
|
-
meta/parent
|
29
|
-
meta/project
|
30
|
-
meta/repository
|
31
|
-
meta/requires
|
32
|
-
meta/ruby
|
33
|
-
meta/sitemap
|
34
|
-
meta/summary
|
35
|
-
meta/title
|
36
|
-
meta/version
|
data/meta/loadpath
DELETED