// (C) Copyright 2003-2014 Hewlett-Packard Development Company, L.P.
package com.hp.alm.ali.idea.checkin;
import com.intellij.openapi.vcs.CheckinProjectPanel;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
import com.intellij.openapi.vcs.changes.ChangesUtil;
import com.intellij.openapi.vfs.VirtualFile;
import git4idea.GitUtil;
import git4idea.repo.GitRepository;
import git4idea.repo.GitRepositoryManager;
import java.util.Collection;
import java.util.HashSet;
public class GitCheckin implements RepositoryCheckin {
@Override
public boolean isMergingCheckin(CheckinProjectPanel checkinProjectPanel) {
GitRepositoryManager repositoryManager = GitUtil.getRepositoryManager(checkinProjectPanel.getProject());
for (VirtualFile root : getSelectedRoots(checkinProjectPanel)) {
GitRepository repository = repositoryManager.getRepositoryForRoot(root);
if (repository == null) {
continue;
}
// can't use enum directly due to 129.239 compatibility
if (!"NORMAL".equals(repository.getState().name())) {
return true;
}
}
return false;
}
private Collection<VirtualFile> getSelectedRoots(CheckinProjectPanel checkinProjectPanel) {
ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(checkinProjectPanel.getProject());
Collection<VirtualFile> result = new HashSet<VirtualFile>();
for (FilePath path : ChangesUtil.getPaths(checkinProjectPanel.getSelectedChanges())) {
VirtualFile root = vcsManager.getVcsRootFor(path);
if (root != null) {
result.add(root);
}
}
return result;
}
}