Skip to content

Commit d186dff

Browse files
committed
use shared base version computation from VersionStrategy
1 parent 55b8e8b commit d186dff

File tree

1 file changed

+10
-36
lines changed

1 file changed

+10
-36
lines changed

src/main/java/fr/brouillard/oss/jgitver/impl/ScriptVersionStrategy.java

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,13 @@ public ScriptVersionStrategy(VersionNamingConfiguration vnc,
8888
@Override
8989
public Version build(Commit head, List<Commit> parents) throws VersionCalculationException {
9090
try {
91-
final Commit base = findVersionCommit(head, parents);
91+
Commit base = findVersionCommit(head, parents);
92+
Ref tagToUse = findTagToUse(head, base);
93+
final Version baseVersion = getBaseVersionAndRegisterMetadata(base,tagToUse);
9294
final MetadataRegistrar registrar = getRegistrar();
9395
final MetadataProvider metaProvider = MetadataProvider.class.cast(registrar);
9496

95-
final HashMap<String, Object> metaProps =
96-
new HashMap<String, Object>();
97+
final HashMap<String, Object> metaProps = new HashMap<String, Object>();
9798

9899
registrar.registerMetadata(Metadatas.COMMIT_DISTANCE,
99100
"" + base.getHeadDistance());
@@ -132,41 +133,14 @@ public Version build(Commit head, List<Commit> parents) throws VersionCalculatio
132133

133134
// Extra convenient metadata
134135
metaProps.put("DETACHED_HEAD",
135-
"" + GitUtils.isDetachedHead(getRepository()));
136+
GitUtils.isDetachedHead(getRepository()));
136137

137138
metaProps.put("BASE_COMMIT_ON_HEAD",
138-
"" + isBaseCommitOnHead(head, base));
139-
140-
// Tag related metadata
141-
final Ref tagToUse = findTagToUse(head, base);
142-
143-
final Version baseVersion;
144-
145-
if (tagToUse != null) {
146-
final String tagName = GitUtils.tagNameFromRef(tagToUse);
147-
final TagType tagType = computeTagType(tagToUse, maxVersionTag(base.getAnnotatedTags()).orElse(null));
148-
149-
baseVersion = versionFromTag(tagToUse);
150-
151-
registrar.registerMetadata(Metadatas.BASE_TAG_TYPE,
152-
tagType.name());
153-
registrar.registerMetadata(Metadatas.BASE_TAG, tagName);
154-
} else {
155-
baseVersion = Version.DEFAULT_VERSION;
156-
}
157-
158-
159-
registrar.registerMetadata(Metadatas.BASE_VERSION,
160-
baseVersion.toString());
161-
registrar.registerMetadata(Metadatas.CURRENT_VERSION_MAJOR,
162-
"" + baseVersion.getMajor());
163-
registrar.registerMetadata(Metadatas.CURRENT_VERSION_MINOR,
164-
"" + baseVersion.getMinor());
165-
registrar.registerMetadata(Metadatas.CURRENT_VERSION_PATCH,
166-
"" + baseVersion.getPatch());
167-
168-
metaProps.put("ANNOTATED", GitUtils.isAnnotated(tagToUse));
169-
139+
isBaseCommitOnHead(head, base));
140+
141+
metaProps.put("ANNOTATED",
142+
GitUtils.isAnnotated(tagToUse));
143+
170144
EnumSet.allOf(Metadatas.class).
171145
forEach(key -> metaProvider.meta(key).
172146
ifPresent(value -> metaProps.put(key.name(), metaFunctor(key).apply(value))));

0 commit comments

Comments
 (0)