Skip to content

Commit ae6ba40

Browse files
committed
Show merge commits per file log setting now shows merge commits if enabled, if disabled no merge commits are displayed.
1 parent 7ddb5e8 commit ae6ba40

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorModel.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ final class HistoryInspectorModel: ObservableObject {
4040
do {
4141
let commitHistory = try await sourceControlManager
4242
.gitClient
43-
.getCommitHistory(maxCount: 40, fileLocalPath: fileURL)
43+
.getCommitHistory(
44+
maxCount: 40,
45+
fileLocalPath: fileURL,
46+
showMergeCommits: Settings.shared.preferences.sourceControl.git.showMergeCommitsPerFileLog
47+
)
4448
await setCommitHistory(commitHistory)
4549
} catch {
4650
await setCommitHistory([])

CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorView.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
import SwiftUI
88

99
struct HistoryInspectorView: View {
10+
@AppSettings(\.sourceControl.git.showMergeCommitsPerFileLog)
11+
var showMergeCommitsPerFileLog
12+
1013
@EnvironmentObject private var workspace: WorkspaceDocument
1114

1215
@EnvironmentObject private var editorManager: EditorManager
@@ -60,5 +63,10 @@ struct HistoryInspectorView: View {
6063
await model.setWorkspace(sourceControlManager: workspace.sourceControlManager)
6164
await model.setFile(url: editorManager.activeEditor.selectedTab?.file.url.path)
6265
}
66+
.onChange(of: showMergeCommitsPerFileLog) { _ in
67+
Task {
68+
await model.updateCommitHistory()
69+
}
70+
}
6371
}
6472
}

CodeEdit/Features/NavigatorArea/SourceControlNavigator/History/Views/SourceControlNavigatorHistoryView.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ struct SourceControlNavigatorHistoryView: View {
1515
case error(error: Error)
1616
}
1717

18+
@AppSettings(\.sourceControl.git.showMergeCommitsPerFileLog)
19+
var showMergeCommitsPerFileLog
20+
1821
@EnvironmentObject var sourceControlManager: SourceControlManager
1922

2023
@State var commitHistoryStatus: Status = .loading
@@ -28,7 +31,10 @@ struct SourceControlNavigatorHistoryView: View {
2831
commitHistoryStatus = .loading
2932
let commits = try await sourceControlManager
3033
.gitClient
31-
.getCommitHistory(branchName: sourceControlManager.currentBranch?.name)
34+
.getCommitHistory(
35+
branchName: sourceControlManager.currentBranch?.name,
36+
showMergeCommits: Settings.shared.preferences.sourceControl.git.showMergeCommitsPerFileLog
37+
)
3238
await MainActor.run {
3339
commitHistory = commits
3440
commitHistoryStatus = .ready
@@ -102,5 +108,10 @@ struct SourceControlNavigatorHistoryView: View {
102108
.task {
103109
await updateCommitHistory()
104110
}
111+
.onChange(of: showMergeCommitsPerFileLog) { _ in
112+
Task {
113+
await updateCommitHistory()
114+
}
115+
}
105116
}
106117
}

CodeEdit/Features/SourceControl/Client/GitClient+CommitHistory.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ extension GitClient {
1717
func getCommitHistory(
1818
branchName: String? = nil,
1919
maxCount: Int? = nil,
20-
fileLocalPath: String? = nil
20+
fileLocalPath: String? = nil,
21+
showMergeCommits: Bool = false
2122
) async throws -> [GitCommit] {
2223
let branchString = branchName != nil ? "\"\(branchName ?? "")\"" : ""
2324
let fileString = fileLocalPath != nil ? "\"\(fileLocalPath ?? "")\"" : ""
@@ -30,7 +31,7 @@ extension GitClient {
3031
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"
3132

3233
let output = try await run(
33-
"log -z --pretty=%h¦%H¦%s¦%aN¦%ae¦%cn¦%ce¦%aD¦%b¦%D¦ \(countString) \(branchString) -- \(fileString)"
34+
"log \(showMergeCommits ? "" : "--no-merges") -z --pretty=%h¦%H¦%s¦%aN¦%ae¦%cn¦%ce¦%aD¦%b¦%D¦ \(countString) \(branchString) -- \(fileString)"
3435
.trimmingCharacters(in: .whitespacesAndNewlines)
3536
)
3637
let remoteURL = try await getRemoteURL()

0 commit comments

Comments
 (0)