import com.intellij.openapi.project.Project;
import org.apache.commons.lang.StringUtils;
+import org.jetbrains.annotations.Nullable;
import org.zmlx.hg4idea.HgFile;
import org.zmlx.hg4idea.HgRevisionNumber;
myProject = project;
}
+ @Nullable
public String execute(HgFile hgFile, HgRevisionNumber vcsRevisionNumber, Charset charset) {
final List<String> arguments = createArguments(vcsRevisionNumber, hgFile.getRelativePath());
final HgCommandService service = HgCommandService.getInstance(myProject);
final HgCommandResult result = service.execute(hgFile.getRepo(), Collections.<String>emptyList(), "cat", arguments, charset);
if (result == null) { // in case of error
- return "";
+ return null;
}
if (result.getExitValue() == 1) { // file not found in given revision
return getContentFollowingRenames(hgFile, vcsRevisionNumber, charset, service);
return result.getRawOutput();
}
+ @Nullable
private String getContentFollowingRenames(HgFile hgFile, HgRevisionNumber vcsRevisionNumber, Charset charset, HgCommandService service) {
final String renamedHgFile = new HgTrackFileNamesAccrossRevisionsCommand(myProject)
.execute(hgFile, getCurrentRevision(hgFile), vcsRevisionNumber.getRevision(), -1);
- if (renamedHgFile != null) {
- final HgCommandResult result = service.execute(hgFile.getRepo(), Collections.<String>emptyList(), "cat",
- createArguments(vcsRevisionNumber, renamedHgFile), charset);
- return result != null ? result.getRawOutput() : "";
+ if (renamedHgFile == null) {
+ return null;
}
- return "";
+ final HgCommandResult result = service.execute(hgFile.getRepo(), Collections.<String>emptyList(), "cat",
+ createArguments(vcsRevisionNumber, renamedHgFile), charset);
+ return result != null ? result.getRawOutput() : null;
}
private String getCurrentRevision(HgFile hgFile) {