Browse Source

Consistently fail work tree methods on bare repositories

If the working tree isn't available, it doesn't make any sense to
obtain the merge heads, or the buffered commit message.  The
repository shouldn't have a partial merge state to read.  Throw back
the same exception we do when invoking getWorkDir() on a bare
repository instance.

Change-Id: I762c55890b7fe272a183da583f910671d1cadf71
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
tags/v0.9.1
Shawn O. Pearce 14 years ago
parent
commit
77b39df5ec
1 changed files with 12 additions and 0 deletions
  1. 12
    0
      org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java

+ 12
- 0
org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java View File

@@ -1453,8 +1453,14 @@ public class Repository {
* @return a String containing the content of the MERGE_MSG file or
* {@code null} if this file doesn't exist
* @throws IOException
* @throws IllegalStateException
* if the repository is "bare"
*/
public String readMergeCommitMsg() throws IOException {
if (isBare())
throw new IllegalStateException(
JGitText.get().bareRepositoryNoWorkdirAndIndex);

File mergeMsgFile = new File(getDirectory(), Constants.MERGE_MSG);
try {
return new String(IO.readFully(mergeMsgFile));
@@ -1474,8 +1480,14 @@ public class Repository {
* file or {@code null} if this file doesn't exist. Also if the file
* exists but is empty {@code null} will be returned
* @throws IOException
* @throws IllegalStateException
* if the repository is "bare"
*/
public List<ObjectId> readMergeHeads() throws IOException {
if (isBare())
throw new IllegalStateException(
JGitText.get().bareRepositoryNoWorkdirAndIndex);

File mergeHeadFile = new File(getDirectory(), Constants.MERGE_HEAD);
byte[] raw;
try {

Loading…
Cancel
Save