IJI-1504 show my last safe-push action

GitOrigin-RevId: 2ec1e861aea264824b158ae18ff81fb0e604a39d
This commit is contained in:
Dmitriy.Panov
2024-04-22 19:10:51 +00:00
committed by intellij-monorepo-bot
parent 2bd4dbc285
commit 21bbfdc1d3
3 changed files with 23 additions and 6 deletions
@@ -44,7 +44,6 @@ import org.jetbrains.annotations.CalledInAny;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.IOException;
import java.nio.file.Path;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -155,7 +154,7 @@ public final class GitBranchIncomingOutgoingManager implements GitRepositoryChan
if (myConnection == null) {
myConnection = myProject.getMessageBus().connect(this);
myConnection.subscribe(GitRepository.GIT_REPO_CHANGE, this);
myConnection.subscribe(GitAuthenticationListener.GIT_AUTHENTICATION_SUCCESS, this);
myConnection.subscribe(GIT_AUTHENTICATION_SUCCESS, this);
}
updateBranchesWithOutgoing();
updateIncomingScheduling();
@@ -367,7 +366,7 @@ public final class GitBranchIncomingOutgoingManager implements GitRepositoryChan
GitCommandResult lsRemoteResult =
Git.getInstance().runCommand(() -> createLsRemoteHandler(repository, remote, params, authenticationMode));
if (lsRemoteResult.success()) {
Map<String, String> hashWithNameMap = ContainerUtil.map2MapNotNull(lsRemoteResult.getOutput(), GitRefUtil::parseRefsLine);
Map<String, String> hashWithNameMap = ContainerUtil.map2MapNotNull(lsRemoteResult.getOutput(), GitRefUtil::parseBranchesLine);
result.putAll(getResolvedHashes(hashWithNameMap));
myErrorMap.remove(repository, remote);
myAuthSuccessMap.putValue(repository, remote);
@@ -6,6 +6,7 @@ import com.intellij.openapi.util.Pair;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.vcs.log.Hash;
import com.intellij.vcs.log.impl.HashImpl;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -31,6 +32,23 @@ public final class GitRefUtil {
return branchName;
}
/**
* @return only branches
* @see #parseRefsLine
*/
@ApiStatus.Internal
public static @Nullable Pair<String, String> parseBranchesLine(@NotNull String line) {
var parsedRef = parseRefsLine(line);
if (parsedRef == null) {
return null;
}
var branch = parsedRef.first;
if (!branch.startsWith(REFS_HEADS_PREFIX) && !branch.startsWith(REFS_REMOTES_PREFIX)) {
return null;
}
return parsedRef;
}
/**
* Parses a line with a pair of hash and ref name e.g. see the .git/packed-refs file.
* Comments and tags are ignored, and null is returned.
@@ -76,7 +94,7 @@ public final class GitRefUtil {
branch = line.substring(start, i);
}
if (branch == null || !branch.startsWith(REFS_HEADS_PREFIX) && !branch.startsWith(REFS_REMOTES_PREFIX)) {
if (branch == null) {
return null;
}
return Pair.create(branch, hash.trim());
@@ -151,7 +151,7 @@ public class GitRepositoryReader {
private @Nullable GitLocalBranch findCurrentBranch(@NotNull HeadInfo headInfo,
@NotNull Repository.State state,
@NotNull Set<? extends GitLocalBranch> localBranches) {
@NotNull Set<GitLocalBranch> localBranches) {
final String currentBranchName = findCurrentBranchName(state, headInfo);
if (currentBranchName == null) {
return null;
@@ -224,7 +224,7 @@ public class GitRepositoryReader {
}
try {
String content = DvcsUtil.tryLoadFile(myPackedRefsFile, CharsetToolkit.UTF8);
return ContainerUtil.map2MapNotNull(LineTokenizer.tokenize(content, false), GitRefUtil::parseRefsLine);
return ContainerUtil.map2MapNotNull(LineTokenizer.tokenize(content, false), GitRefUtil::parseBranchesLine);
}
catch (RepoStateException e) {
return emptyMap();