mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 13:02:30 +07:00
[svn] IJPL-174080 Add EP for Merger commit message calculation
GitOrigin-RevId: aeed47922706285c61dd194e0fb0441860ec0d3e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
be4e553d6b
commit
c2ff61064d
@@ -112,6 +112,12 @@
|
||||
</group>
|
||||
</actions>
|
||||
|
||||
<extensionPoints>
|
||||
<extensionPoint qualifiedName="com.intellij.vcs.svn.mergerCommitMessage"
|
||||
interface="org.jetbrains.idea.svn.integrate.MergerCommitMessage"
|
||||
dynamic="true"/>
|
||||
</extensionPoints>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<registryKey key="svn.use.incoming.optimization" defaultValue="false"
|
||||
description="Use remotely (in svn repository) changed files list to optimize incoming revisions processing"/>
|
||||
@@ -165,5 +171,8 @@
|
||||
<diff.DiffTool implementation="org.jetbrains.idea.svn.difftool.SvnTreeConflictDiffRequestProvider$SvnTreeConflictDiffTool"/>
|
||||
<applicationService serviceImplementation="org.jetbrains.idea.svn.difftool.SvnDiffSettingsHolder"/>
|
||||
<notificationGroup id="Svn Roots Detection Errors" displayType="STICKY_BALLOON" bundle="messages.SvnBundle" key="notification.group.svn.roots"/>
|
||||
<vcs.svn.mergerCommitMessage implementation="org.jetbrains.idea.svn.integrate.DefaultMergerCommitMessage"
|
||||
id="svn.defaultMergerCommitMessage"
|
||||
order="last"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.progress.util.BackgroundTaskUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vcs.VcsException;
|
||||
import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -30,7 +31,7 @@ public class Merger implements IMerger {
|
||||
protected final @Nullable ProgressTracker myHandler;
|
||||
private final ProgressIndicator myProgressIndicator;
|
||||
protected final Url myCurrentBranchUrl;
|
||||
private final @Nls @NotNull StringBuilder myCommitMessage = new StringBuilder();
|
||||
private @Nls @NotNull String myCommitMessage = "";
|
||||
protected final SvnConfiguration mySvnConfig;
|
||||
private final Project myProject;
|
||||
protected final @NotNull SvnVcs myVcs;
|
||||
@@ -123,13 +124,10 @@ public class Merger implements IMerger {
|
||||
}
|
||||
|
||||
private void appendComment() {
|
||||
if (myCommitMessage.isEmpty()) {
|
||||
myCommitMessage.append(message("label.merged.from.branch", myBranchName));
|
||||
}
|
||||
for (CommittedChangeList list : myMergeChunk.changeLists()) {
|
||||
myCommitMessage.append('\n');
|
||||
myCommitMessage.append(message("merge.chunk.changelist.description", list.getComment().trim(), list.getNumber()));
|
||||
}
|
||||
myCommitMessage = StringUtil.notNullize(
|
||||
MergerCommitMessage.EP_NAME.computeSafeIfAny(
|
||||
it -> it.getCommitMessage(myProject, myCommitMessage, myBranchName, myMergeChunk.changeLists()))
|
||||
);
|
||||
}
|
||||
|
||||
protected void doMerge() throws VcsException {
|
||||
@@ -162,7 +160,7 @@ public class Merger implements IMerger {
|
||||
|
||||
@Override
|
||||
public @NotNull String getComment() {
|
||||
return myCommitMessage.toString();
|
||||
return myCommitMessage;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.idea.svn.integrate
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList
|
||||
import org.jetbrains.annotations.Nls
|
||||
import org.jetbrains.idea.svn.SvnBundle
|
||||
|
||||
interface MergerCommitMessage {
|
||||
fun getCommitMessage(project: Project, currentMessage: @Nls String, branchName: String, changeLists: List<CommittedChangeList>): @Nls String
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val EP_NAME: ExtensionPointName<MergerCommitMessage> = ExtensionPointName("com.intellij.vcs.svn.mergerCommitMessage")
|
||||
}
|
||||
}
|
||||
|
||||
class DefaultMergerCommitMessage : MergerCommitMessage {
|
||||
override fun getCommitMessage(project: Project, @Nls currentMessage: String, branchName: String, changeLists: List<CommittedChangeList>): @Nls String {
|
||||
val messageBuilder: @Nls StringBuilder =
|
||||
StringBuilder(StringUtil.defaultIfEmpty(currentMessage, SvnBundle.message("label.merged.from.branch", branchName)))
|
||||
|
||||
for (list in changeLists) {
|
||||
messageBuilder.append('\n')
|
||||
messageBuilder.append(SvnBundle.message("merge.chunk.changelist.description", list.getComment().trim { it <= ' ' }, list.getNumber()))
|
||||
}
|
||||
|
||||
return messageBuilder.toString()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user