From f4a24d32151aee760b1e34db1de7a0f4dde7061c Mon Sep 17 00:00:00 2001 From: shizhendong Date: Mon, 4 Nov 2024 10:09:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20commit=20diff=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=20commit=E8=AF=A6=E6=83=85=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/app/controller/GitController.java | 13 +++++--- .../asw/module/app/service/IGitService.java | 4 +-- .../impl/ApplicationMergeServiceImpl.java | 5 +++ .../app/service/impl/GitServiceImpl.java | 32 +------------------ 4 files changed, 16 insertions(+), 38 deletions(-) diff --git a/src/main/java/net/geedge/asw/module/app/controller/GitController.java b/src/main/java/net/geedge/asw/module/app/controller/GitController.java index 786a03b..55e6be5 100644 --- a/src/main/java/net/geedge/asw/module/app/controller/GitController.java +++ b/src/main/java/net/geedge/asw/module/app/controller/GitController.java @@ -79,20 +79,25 @@ public class GitController { }) public R branchCommitDiff(@PathVariable("workspaceId") String workspaceId, @PathVariable("branchName") String branchName, - @PathVariable("commitId") String commitId, + @PathVariable("commitId") String newCommitId, @PathVariable(value = "oldCommitId", required = false) String oldCommitId) { if (T.StrUtil.isEmpty(oldCommitId)) { // oldCommitId 为空默认对比 parent commitId - oldCommitId = gitService.getParentCommitId(workspaceId, branchName, commitId); + oldCommitId = gitService.getParentCommitId(workspaceId, branchName, newCommitId); } - List> diffList = gitService.getDiffFileListInCommits(workspaceId, commitId, oldCommitId); + Map oldCommit = gitService.infoCommit(workspaceId, oldCommitId); + Map newCommit = gitService.infoCommit(workspaceId, newCommitId); + + List> diffList = gitService.getDiffFileListInCommits(workspaceId, newCommitId, oldCommitId); Map record = T.MapUtil.builder() .put("oldBranch", branchName) .put("newBranch", branchName) .put("oldCommitId", oldCommitId) - .put("newCommitId", commitId) + .put("newCommitId", newCommitId) + .put("oldCommit", oldCommit) + .put("newCommit", newCommit) .put("files", diffList) .build(); return R.ok().putData("record", record); diff --git a/src/main/java/net/geedge/asw/module/app/service/IGitService.java b/src/main/java/net/geedge/asw/module/app/service/IGitService.java index a3ac86b..b7eaa8e 100644 --- a/src/main/java/net/geedge/asw/module/app/service/IGitService.java +++ b/src/main/java/net/geedge/asw/module/app/service/IGitService.java @@ -29,9 +29,7 @@ public interface IGitService { String getLatestCommitId(String workspaceId, String branch); - List> getDiffFileListInCommits(String workspaceId, String commitId, String oldCommitId); - - List> getDiffFileListInBranches(String workspaceId, String srcBranch, String tgtBranch); + List> getDiffFileListInCommits(String workspaceId, String newCommitId, String oldCommitId); String mergeBranch(String workspaceId, String sourceBranch, String targetBranch, String message) throws RuntimeException; diff --git a/src/main/java/net/geedge/asw/module/app/service/impl/ApplicationMergeServiceImpl.java b/src/main/java/net/geedge/asw/module/app/service/impl/ApplicationMergeServiceImpl.java index 04d9ac0..f622a56 100644 --- a/src/main/java/net/geedge/asw/module/app/service/impl/ApplicationMergeServiceImpl.java +++ b/src/main/java/net/geedge/asw/module/app/service/impl/ApplicationMergeServiceImpl.java @@ -128,11 +128,16 @@ public class ApplicationMergeServiceImpl extends ServiceImpl sourceCommit = gitService.infoCommit(workspaceId, commitA); + Map targetCommit = gitService.infoCommit(workspaceId, commitB); + Map m = T.MapUtil.builder() .put("sourceBranch", sourceBranch) .put("targetBranch", targetBranch) .put("sourceCommitId", commitA) .put("targetCommitId", commitB) + .put("sourceCommit", sourceCommit) + .put("targetCommit", targetCommit) .put("files", diffFileListInCommits) .build(); return m; diff --git a/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java b/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java index aae649c..33a55c5 100644 --- a/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java +++ b/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java @@ -426,37 +426,7 @@ public class GitServiceImpl implements IGitService { } return files; } catch (IOException e) { - log.error(e, "[getDiffFileListInCommits] [error] [workspaceId: {}] [commitId: {}] [oldCommitId: {}]", workspaceId, commitIdA, commitIdB); - throw new RuntimeException(e); - } - } - - /** - * 获取 branchA -> branchB 文件差异 - * - * @param workspaceId - * @param branchA - * @param branchB - * @return - */ - @Override - public List> getDiffFileListInBranches(String workspaceId, String branchA, String branchB) { - try (Git git = this.getGitInstance(workspaceId); - Repository repository = git.getRepository(); - RevWalk revWalk = new RevWalk(repository);) { - - RevCommit commitA = revWalk.parseCommit(repository.resolve(branchA)); - RevCommit commitB = revWalk.parseCommit(repository.resolve(branchB)); - - List> diffFileListInCommits = this.getDiffFileListInCommits(workspaceId, commitA.getName(), commitB.getName()); - diffFileListInCommits.parallelStream() - .forEach(m -> { - T.MapUtil.renameKey(m, "oldContent", "sourceContent"); - T.MapUtil.renameKey(m, "newContent", "targetContent"); - }); - return diffFileListInCommits; - } catch (IOException e) { - log.error(e, "[getDiffFileListInBranches] [error]"); + log.error(e, "[getDiffFileListInCommits] [error] [workspaceId: {}] [newCommitId: {}] [oldCommitId: {}]", workspaceId, commitIdA, commitIdB); throw new RuntimeException(e); } }