aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2010-06-24 12:57:02 -0700
committerShawn O. Pearce <spearce@spearce.org>2010-06-25 17:46:40 -0700
commita63494edeead4670ac2d838d346ed0fcdfa2b181 (patch)
treeb017b2a8fdf5b6f796823aad28e11a5819038df0 /org.eclipse.jgit/src/org
parentc9c57d34debe1a522c715d416e68e3d1a5b18a1a (diff)
downloadjgit-a63494edeead4670ac2d838d346ed0fcdfa2b181.tar.gz
jgit-a63494edeead4670ac2d838d346ed0fcdfa2b181.zip
Add RepositoryState.BARE
A bare repository cannot be checked out, committed to, etc. as it doesn't have a working directory. Define this as a state since the state enumeration exists only to describe how a working directory can be modified. Change-Id: I0a299013c6e42fef6cae3f6a9446f8f6c8e0514a Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'org.eclipse.jgit/src/org')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java3
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryState.java8
2 files changed, 11 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
index 4a4969841d..0ee0ca9d32 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
@@ -1188,6 +1188,9 @@ public class Repository {
* @return an important state
*/
public RepositoryState getRepositoryState() {
+ if (isBare())
+ return RepositoryState.BARE;
+
// Pre Git-1.6 logic
if (new File(getWorkDir(), ".dotest").exists())
return RepositoryState.REBASING;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryState.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryState.java
index 901d1b516b..862b7ea0c0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryState.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryState.java
@@ -54,6 +54,14 @@ package org.eclipse.jgit.lib;
* on the state are the only supported means of deciding what to do.
*/
public enum RepositoryState {
+ /** Has no work tree and cannot be used for normal editing. */
+ BARE {
+ public boolean canCheckout() { return false; }
+ public boolean canResetHead() { return false; }
+ public boolean canCommit() { return false; }
+ public String getDescription() { return "Bare"; }
+ },
+
/**
* A safe state for working normally
* */