diff --git a/packages/mermaid/src/diagrams/git/gitGraphAst.ts b/packages/mermaid/src/diagrams/git/gitGraphAst.ts index 13e54ddf40..23cd20d805 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphAst.ts +++ b/packages/mermaid/src/diagrams/git/gitGraphAst.ts @@ -279,7 +279,7 @@ export const merge = ( export const cherryPick = function ( sourceId: string, targetId: string, - tags: string[], + tags: string[] | undefined, parentCommitId: string ) { log.debug('Entering cherryPick:', sourceId, targetId, tags); diff --git a/packages/mermaid/src/diagrams/git/gitGraphParser.ts b/packages/mermaid/src/diagrams/git/gitGraphParser.ts index c9488173dd..ff046a456c 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphParser.ts +++ b/packages/mermaid/src/diagrams/git/gitGraphParser.ts @@ -45,8 +45,9 @@ const parseStatement = (statement: any) => { const parseCommit = (commit: CommitAst) => { const id = commit.id; const message = commit.message ?? ''; - const tags = commit.tags ?? []; + const tags = commit.tags ?? undefined; const type = commit.type !== undefined ? commitType[commit.type] : 0; + log.info(`Commit: ${id} ${message} ${type}`); db.commit(message, id, type, tags); }; @@ -59,7 +60,7 @@ const parseBranch = (branch: BranchAst) => { const parseMerge = (merge: MergeAst) => { const branch = merge.branch; const id = merge.id ?? ''; - const tags = merge.tags ?? []; + const tags = merge.tags ?? undefined; const type = merge.type !== undefined ? commitType[merge.type] : 0; db.merge(branch, id, type, tags); }; @@ -71,7 +72,7 @@ const parseCheckout = (checkout: CheckoutAst) => { const parseCherryPicking = (cherryPicking: CherryPickingAst) => { const id = cherryPicking.id; - const tags = cherryPicking.tags ?? []; + const tags = cherryPicking.tags ?? undefined; const parent = cherryPicking.parent; db.cherryPick(id, '', tags, parent); }; diff --git a/packages/mermaid/src/diagrams/git/gitGraphTypes.ts b/packages/mermaid/src/diagrams/git/gitGraphTypes.ts index 36d88fd974..29e2781a97 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphTypes.ts +++ b/packages/mermaid/src/diagrams/git/gitGraphTypes.ts @@ -5,7 +5,7 @@ export interface Commit { message: string; seq: number; type: number; - tags: string[] | undefined; + tags: string[]; parents: (string | null)[]; branch: string; customType?: number; diff --git a/packages/parser/src/language/gitGraph/gitGraph.langium b/packages/parser/src/language/gitGraph/gitGraph.langium index 9d08faf639..6824762602 100644 --- a/packages/parser/src/language/gitGraph/gitGraph.langium +++ b/packages/parser/src/language/gitGraph/gitGraph.langium @@ -45,7 +45,6 @@ Statement | CherryPicking ; - Direction: dir=('LR' | 'TB' | 'BT'); @@ -57,7 +56,7 @@ Commit: ( 'id:' id=STRING |'msg:'? message=STRING - |'tag:' tags=STRING + |'tag:' tags+=STRING |'type:' name=('NORMAL' | 'REVERSE' | 'HIGHLIGHT') )* EOL; Branch: @@ -69,7 +68,7 @@ Merge: 'merge' branch=(ID|STRING) ( 'id:' id=STRING - |'tag:' tags=STRING + |'tag:' tags+=STRING |'type:' name=('NORMAL' | 'REVERSE' | 'HIGHLIGHT') )* EOL; @@ -80,7 +79,7 @@ CherryPicking: 'cherry-pick' ( 'id:' id=STRING - |'tag:' tags=STRING + |'tag:' tags+=STRING |'parent:' id=STRING )* EOL;