You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2014/03/13 16:27:52 UTC

svn commit: r1577198 - in /subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl: ./ native/ src/org/apache/subversion/javahl/ src/org/apache/subversion/javahl/remote/ src/org/apache/subversion/javahl/types/ src/org/tigris/subversion/jav...

Author: brane
Date: Thu Mar 13 15:27:51 2014
New Revision: 1577198

URL: http://svn.apache.org/r1577198
Log:
On the javahl-1.8-extensions branch: Sync JavaHL from trunk up to r1577183.

Modified:
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/   (props changed)
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java

Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/
------------------------------------------------------------------------------
  Merged /subversion/trunk/subversion/bindings/javahl:r1571595-1577183

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/CreateJ.cpp?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/CreateJ.cpp Thu Mar 13 15:27:51 2014
@@ -631,7 +631,10 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
                              "L"JAVA_PACKAGE"/types/Status$Kind;"
                              "L"JAVA_PACKAGE"/types/Status$Kind;"
                              "L"JAVA_PACKAGE"/types/Status$Kind;"
-                             "ZZZZZL"JAVA_PACKAGE"/types/Lock;"
+                             "L"JAVA_PACKAGE"/types/Status$Kind;"
+                             "L"JAVA_PACKAGE"/types/Status$Kind;"
+                             "ZZL"JAVA_PACKAGE"/types/Depth;"
+                             "ZZZL"JAVA_PACKAGE"/types/Lock;"
                              "L"JAVA_PACKAGE"/types/Lock;"
                              "JJL"JAVA_PACKAGE"/types/NodeKind;"
                              "Ljava/lang/String;Ljava/lang/String;"
@@ -657,27 +660,16 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
   jstring jMovedFromAbspath = NULL;
   jstring jMovedToAbspath = NULL;
 
-  enum svn_wc_status_kind text_status = status->node_status;
-
-  /* Avoid using values that might come from prop changes */
-  if (text_status == svn_wc_status_modified
-      || text_status == svn_wc_status_conflicted)
-    text_status = status->text_status;
-
-  enum svn_wc_status_kind repos_text_status = status->repos_node_status;
-
-  if (repos_text_status == svn_wc_status_modified
-      || repos_text_status == svn_wc_status_conflicted)
-    repos_text_status = status->repos_text_status;
-
-  jboolean jIsConflicted = (status->conflicted == 1) ? JNI_TRUE : JNI_FALSE;
-  jobject jTextType = EnumMapper::mapStatusKind(text_status);
+  jobject jNodeType = EnumMapper::mapStatusKind(status->node_status);
+  jobject jTextType = EnumMapper::mapStatusKind(status->text_status);
   jobject jPropType = EnumMapper::mapStatusKind(status->prop_status);
-  jobject jRepositoryTextType = EnumMapper::mapStatusKind(repos_text_status);
-  jobject jRepositoryPropType = EnumMapper::mapStatusKind(
-                                                  status->repos_prop_status);
-  jboolean jIsCopied = (status->copied == 1) ? JNI_TRUE: JNI_FALSE;
+  jobject jRpNodeType = EnumMapper::mapStatusKind(status->repos_node_status);
+  jobject jRpTextType = EnumMapper::mapStatusKind(status->repos_text_status);
+  jobject jRpPropType = EnumMapper::mapStatusKind(status->repos_prop_status);
+  jobject jDepth = EnumMapper::mapDepth(status->depth);
   jboolean jIsLocked = (status->wc_is_locked == 1) ? JNI_TRUE: JNI_FALSE;
+  jboolean jIsCopied = (status->copied == 1) ? JNI_TRUE: JNI_FALSE;
+  jboolean jIsConflicted = (status->conflicted == 1) ? JNI_TRUE : JNI_FALSE;
   jboolean jIsSwitched = (status->switched == 1) ? JNI_TRUE: JNI_FALSE;
   jboolean jIsFileExternal = (status->file_external == 1) ? JNI_TRUE
                                                           : JNI_FALSE;
@@ -743,9 +735,10 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
 
   jobject ret = env->NewObject(clazz, mid, jPath, jUrl, jNodeKind, jRevision,
                                jLastChangedRevision, jLastChangedDate,
-                               jLastCommitAuthor, jTextType, jPropType,
-                               jRepositoryTextType, jRepositoryPropType,
-                               jIsLocked, jIsCopied, jIsConflicted,
+                               jLastCommitAuthor,
+                               jNodeType, jTextType, jPropType,
+                               jRpNodeType, jRpTextType, jRpPropType,
+                               jIsLocked, jIsCopied, jDepth, jIsConflicted,
                                jIsSwitched, jIsFileExternal, jLocalLock,
                                jReposLock,
                                jOODLastCmtRevision, jOODLastCmtDate,

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp Thu Mar 13 15:27:51 2014
@@ -214,7 +214,7 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
 #ifdef WIN32
   {
     WCHAR ucs2_path[MAX_PATH];
-    char *utf8_path;
+    const char *utf8_path;
     const char *internal_path;
     apr_pool_t *pool;
     apr_status_t apr_err;

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java Thu Mar 13 15:27:51 2014
@@ -42,7 +42,7 @@ public class ConflictResult
     private String mergedPath;
 
     /**
-     * Create a new conflict result instace.
+     * Create a new conflict result instance.
      */
     public ConflictResult(Choice choice, String mergedPath)
     {

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Thu Mar 13 15:27:51 2014
@@ -1023,9 +1023,9 @@ public interface ISVNClient
      * #diffSummarize(String, Revision, String, Revision, Depth,
      * Collection, boolean, DiffSummaryCallback)}, using
      * <code>path</code> for both of that method's targets.
-     * @param startRevision Beginning of range for comparsion of
+     * @param startRevision Beginning of range for comparison of
      * <code>target</code>.
-     * @param endRevision End of range for comparsion of
+     * @param endRevision End of range for comparison of
      * <code>target</code>.
      * @param depth how deep to recurse.
      * @param changelists  if non-null, filter paths using changelists

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java Thu Mar 13 15:27:51 2014
@@ -110,7 +110,7 @@ public interface ISVNRemote
 
     /**
      * Get the latest revision number at the given time, expressed as
-     * the number of milliseconds since the epoch, from the session's
+     * the number of microseconds since the epoch, from the session's
      * repository.
      * @throws ClientException
      */

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Thu Mar 13 15:27:51 2014
@@ -53,7 +53,7 @@ public class SVNClient implements ISVNCl
     }
 
     /**
-     * Standard empty contructor, builds just the native peer.
+     * Standard empty constructor, builds just the native peer.
      */
     public SVNClient()
     {

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java Thu Mar 13 15:27:51 2014
@@ -47,7 +47,7 @@ public class SVNRepos implements ISVNRep
     }
 
     /**
-     * Standard empty contructor, builds just the native peer.
+     * Standard empty constructor, builds just the native peer.
      */
     public SVNRepos()
     {

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java Thu Mar 13 15:27:51 2014
@@ -43,7 +43,7 @@ import java.util.Set;
 import java.io.OutputStream;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.NANOSECONDS;
+import static java.util.concurrent.TimeUnit.MICROSECONDS;
 
 public class RemoteSession extends JNIObject implements ISVNRemote
 {
@@ -102,7 +102,7 @@ public class RemoteSession extends JNIOb
 
     public long getRevisionByDate(Date date) throws ClientException
     {
-        long timestamp = NANOSECONDS.convert(date.getTime(), MILLISECONDS);
+        long timestamp = MICROSECONDS.convert(date.getTime(), MILLISECONDS);
         return getRevisionByTimestamp(timestamp);
     }
 

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java Thu Mar 13 15:27:51 2014
@@ -286,6 +286,16 @@ public class Info implements java.io.Ser
     }
 
     /**
+     * Returns the last date the item was changed measured in the
+     * number of microseconds since 00:00:00 January 1, 1970 UTC.
+     * @return the last time the item was changed.
+     */
+    public long getLastChangedDateMicros()
+    {
+        return lastChangedDate;
+    }
+
+    /**
      * return the author of the last change
      */
     public String getLastChangedAuthor()

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java Thu Mar 13 15:27:51 2014
@@ -38,7 +38,7 @@ public class Status implements java.io.S
     // Update the serialVersionUID when there is a incompatible change made to
     // this class.  See the java documentation for when a change is incompatible.
     // http://java.sun.com/javase/7/docs/platform/serialization/spec/version.html#6678
-    private static final long serialVersionUID = 2L;
+    private static final long serialVersionUID = 3L;
 
     /**
      * the url for accessing the item
@@ -77,12 +77,19 @@ public class Status implements java.io.S
     private String lastCommitAuthor;
 
     /**
-     * the file or directory status (See StatusKind)
+     * The status of the node, based on restructuring changes; if the node
+     * has no restructuring changes, it's based on textStatus and propStatus.
+     * @since 1.9
+     */
+    private Kind nodeStatus;
+
+    /**
+     * The file or directory status, not including restructuring changes.
      */
     private Kind textStatus;
 
     /**
-     * the status of the properties (See StatusKind)
+     * The status of the properties.
      */
     private Kind propStatus;
 
@@ -108,11 +115,24 @@ public class Status implements java.io.S
     private boolean fileExternal;
 
     /**
+     * The depth of the node as recorded in the working copy.
+     * @since 1.9
+     */
+    private Depth depth;
+
+    /**
      * is this item in a conflicted state
      */
     private boolean isConflicted;
 
     /**
+     * The status of the node, based on text and property status, unless the
+     * node has restructuring changes.
+     * @since 1.9
+     */
+    private Kind repositoryNodeStatus;
+
+    /**
      * the file or directory status of base (See StatusKind)
      */
     private Kind repositoryTextStatus;
@@ -164,7 +184,6 @@ public class Status implements java.io.S
     private String movedFromAbspath;
 
     private String movedToAbspath;
-
     /**
      * this constructor should only called from JNI code
      * @param path                  the file system path of item
@@ -174,22 +193,17 @@ public class Status implements java.io.S
      * @param lastChangedRevision   the last revision this item was changed
      * @param lastChangedDate       the last date this item was changed
      * @param lastCommitAuthor      the author of the last change
-     * @param textStatus            the file or directory status (See
-     *                              StatusKind)
-     * @param propStatus            the property status (See StatusKind)
-     * @param repositoryTextStatus  the file or directory status of the base
+     * @param nodeStatus            the status of the node
+     * @param textStatus            the file or directory contents status
+     * @param propStatus            the property status
+     * @param repositoryNodeStatus  the status of the base node
+     * @param repositoryTextStatus  the file or directory contents status of the base
      * @param repositoryPropStatus  the property status of the base
      * @param locked                if the item is locked (running or aborted
      *                              operation)
      * @param copied                if the item is copy
+     * @param depth                 the inherent depth of the node in the working copy
      * @param isConflicted          if the item is part of a conflict
-     * @param conflictDescriptor    the description of the tree conflict
-     * @param conflictOld           in case of conflict, the file name of the
-     *                              the common base version
-     * @param conflictNew           in case of conflict, the file name of new
-     *                              repository version
-     * @param conflictWorking       in case of conflict, the file name of the
-     *                              former working copy version
      * @param switched              flag if the node has been switched in the
      *                              path
      * @param fileExternal          flag if the node is a file external
@@ -205,12 +219,16 @@ public class Status implements java.io.S
      * @param changelist            the changelist the item is a member of
      * @param movedFromAbspath      path moved from
      * @param movedToAbspath        path moved from
+     * @since 1.9
      */
     public Status(String path, String url, NodeKind nodeKind, long revision,
                   long lastChangedRevision, long lastChangedDate,
-                  String lastCommitAuthor, Kind textStatus, Kind propStatus,
+                  String lastCommitAuthor,
+                  Kind nodeStatus, Kind textStatus, Kind propStatus,
+                  Kind repositoryNodeStatus,
                   Kind repositoryTextStatus, Kind repositoryPropStatus,
-                  boolean locked, boolean copied, boolean isConflicted,
+                  boolean locked, boolean copied, Depth depth,
+                  boolean isConflicted,
                   boolean switched, boolean fileExternal, Lock localLock,
                   Lock reposLock, long reposLastCmtRevision,
                   long reposLastCmtDate, NodeKind reposKind,
@@ -224,13 +242,16 @@ public class Status implements java.io.S
         this.lastChangedRevision = lastChangedRevision;
         this.lastChangedDate = lastChangedDate;
         this.lastCommitAuthor = lastCommitAuthor;
+        this.nodeStatus = nodeStatus;
         this.textStatus = textStatus;
         this.propStatus = propStatus;
+        this.repositoryNodeStatus = repositoryNodeStatus;
+        this.repositoryTextStatus = repositoryTextStatus;
+        this.repositoryPropStatus = repositoryPropStatus;
         this.locked = locked;
         this.copied = copied;
+        this.depth = depth;
         this.isConflicted = isConflicted;
-        this.repositoryTextStatus = repositoryTextStatus;
-        this.repositoryPropStatus = repositoryPropStatus;
         this.switched = switched;
         this.fileExternal = fileExternal;
         this.localLock = localLock;
@@ -245,6 +266,64 @@ public class Status implements java.io.S
     }
 
     /**
+     * this constructor should only called from JNI code
+     * @param path                  the file system path of item
+     * @param url                   the url of the item
+     * @param nodeKind              kind of item (directory, file or unknown
+     * @param revision              the revision number of the base
+     * @param lastChangedRevision   the last revision this item was changed
+     * @param lastChangedDate       the last date this item was changed
+     * @param lastCommitAuthor      the author of the last change
+     * @param textStatus            the file or directory status (See
+     *                              StatusKind)
+     * @param propStatus            the property status (See StatusKind)
+     * @param repositoryTextStatus  the file or directory status of the base
+     * @param repositoryPropStatus  the property status of the base
+     * @param locked                if the item is locked (running or aborted
+     *                              operation)
+     * @param copied                if the item is copy
+     * @param isConflicted          if the item is part of a conflict
+     * @param switched              flag if the node has been switched in the
+     *                              path
+     * @param fileExternal          flag if the node is a file external
+     * @param localLock             the current lock
+     * @param reposLock             the lock as stored in the repository if
+     *                              any
+     * @param reposLastCmtRevision  the youngest revision, if out of date
+     * @param reposLastCmtDate      the last commit date, if out of date
+     * @param reposKind             the kind of the youngest revision, if
+     *                              out of date
+     * @param reposLastCmtAuthor    the author of the last commit, if out of
+     *                              date
+     * @param changelist            the changelist the item is a member of
+     * @param movedFromAbspath      path moved from
+     * @param movedToAbspath        path moved from
+     * @deprecated
+     */
+    @Deprecated
+    public Status(String path, String url, NodeKind nodeKind, long revision,
+                  long lastChangedRevision, long lastChangedDate,
+                  String lastCommitAuthor, Kind textStatus, Kind propStatus,
+                  Kind repositoryTextStatus, Kind repositoryPropStatus,
+                  boolean locked, boolean copied, boolean isConflicted,
+                  boolean switched, boolean fileExternal, Lock localLock,
+                  Lock reposLock, long reposLastCmtRevision,
+                  long reposLastCmtDate, NodeKind reposKind,
+                  String reposLastCmtAuthor, String changelist,
+                  String movedFromAbspath, String movedToAbspath)
+    {
+        this(path, url, nodeKind, revision,
+             lastChangedRevision, lastChangedDate, lastCommitAuthor,
+             Kind.none, textStatus, propStatus,
+             Kind.none, repositoryTextStatus, repositoryPropStatus,
+             locked, copied, Depth.unknown, isConflicted,
+             switched, fileExternal, localLock, reposLock,
+             reposLastCmtRevision, reposLastCmtDate, reposKind,
+             reposLastCmtAuthor, changelist,
+             movedFromAbspath, movedToAbspath);
+    }
+
+    /**
      * Returns the file system path of the item
      * @return path of status entry
      */
@@ -301,25 +380,64 @@ public class Status implements java.io.S
     }
 
     /**
-     * Returns the status of the item (See StatusKind)
+     * Returns the status of the node.
+     * @since 1.9
+     */
+    public Kind getNodeStatus()
+    {
+        return nodeStatus;
+    }
+
+    /**
+     * Returns the status of the node as text.
+     * @since 1.9
+     */
+    public String getNodeStatusDescription()
+    {
+        return nodeStatus.toString();
+    }
+
+    /**
+     * Returns the real status of the item's contents.
+     * @since 1.9
+     */
+    public Kind getRawTextStatus()
+    {
+        return textStatus;
+    }
+
+    /**
+     * Returns the real status of the item's contents as a string.
+     * @since 1.9
+     */
+    public String getRawTextStatusDescription()
+    {
+        return textStatus.toString();
+    }
+
+    /**
+     * Returns the adjusted status of the item's contents, as
+     * compatible with JavaHL 1.8 and older verions.
      * @return file status property enum of the "textual" component.
      */
     public Kind getTextStatus()
     {
-        return textStatus;
+        if (nodeStatus == Kind.modified || nodeStatus == Kind.conflicted)
+            return textStatus;
+        return nodeStatus;
     }
 
     /**
-     * Returns the status of the item as text.
+     * Returns the adjusted status of the item's contents as text.
      * @return english text
      */
     public String getTextStatusDescription()
     {
-        return textStatus.toString();
+        return getTextStatus().toString();
     }
 
     /**
-     * Returns the status of the properties (See Status Kind)
+     * Returns the status of the properties.
      * @return file status property enum of the "property" component.
      */
     public Kind getPropStatus()
@@ -337,17 +455,39 @@ public class Status implements java.io.S
     }
 
     /**
-     * Returns the status of the item in the repository (See StatusKind)
+     * Returns the status of the node in the repository.
+     * @since 1.9
+     */
+    public Kind getRepositoryNodeStatus()
+    {
+        return repositoryNodeStatus;
+    }
+
+    /**
+     * Returns the real status of the item's contents in the repository.
+     * @since 1.9
+     */
+    public Kind getRawRepositoryTextStatus()
+    {
+        return repositoryTextStatus;
+    }
+
+    /**
+     * Returns the adjusted status of the item's contents in the
+     * repository, as compatible with JavaHL 1.8 and older verions.
      * @return file status property enum of the "textual" component in the
      * repository.
      */
     public Kind getRepositoryTextStatus()
     {
-        return repositoryTextStatus;
+        if (repositoryNodeStatus == Kind.modified
+            || repositoryNodeStatus == Kind.conflicted)
+            return repositoryTextStatus;
+        return repositoryNodeStatus;
     }
 
     /**
-     * Returns test status of the properties in the repository (See StatusKind)
+     * Returns test status of the properties in the repository.
      * @return file status property enum of the "property" component im the
      * repository.
      */
@@ -440,7 +580,7 @@ public class Status implements java.io.S
      */
     public boolean isManaged()
     {
-        Kind status = getTextStatus();
+        Kind status = getNodeStatus();
         return (status != Status.Kind.unversioned &&
                 status != Status.Kind.none &&
                 status != Status.Kind.ignored);
@@ -452,7 +592,7 @@ public class Status implements java.io.S
      */
     public boolean hasRemote()
     {
-        return (isManaged() && getTextStatus() != Status.Kind.added);
+        return (isManaged() && !isAdded());
     }
 
     /**
@@ -461,7 +601,7 @@ public class Status implements java.io.S
      */
     public boolean isAdded()
     {
-        return getTextStatus() == Status.Kind.added;
+        return getNodeStatus() == Status.Kind.added;
     }
 
     /**
@@ -470,7 +610,7 @@ public class Status implements java.io.S
      */
     public boolean isDeleted()
     {
-        return getTextStatus() == Status.Kind.deleted;
+        return getNodeStatus() == Status.Kind.deleted;
     }
 
     /**
@@ -479,7 +619,7 @@ public class Status implements java.io.S
      */
     public boolean isMerged()
     {
-        return getTextStatus() == Status.Kind.merged;
+        return getNodeStatus() == Status.Kind.merged;
     }
 
     /**
@@ -489,7 +629,7 @@ public class Status implements java.io.S
      */
     public boolean isIgnored()
     {
-        return getTextStatus() == Status.Kind.ignored;
+        return getNodeStatus() == Status.Kind.ignored;
     }
 
     /**
@@ -601,6 +741,15 @@ public class Status implements java.io.S
     }
 
     /**
+     * Returns the inherent depth of the node, as recorded in the working copy.
+     * @since 1.9
+     */
+    public Depth getDepth()
+    {
+        return depth;
+    }
+
+    /**
      * Converts microseconds since the epoch to a Date object.
      *
      * @param micros Microseconds since the epoch.

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java Thu Mar 13 15:27:51 2014
@@ -84,7 +84,7 @@ public class ConflictResult
     private String mergedPath;
 
     /**
-     * Create a new conflict result instace.
+     * Create a new conflict result instance.
      */
     public ConflictResult(int choice, String mergedPath)
     {

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java Thu Mar 13 15:27:51 2014
@@ -138,7 +138,7 @@ public class PropertyData
     }
 
     /**
-     * this contructor is used when building a thin wrapper around other
+     * this constructor is used when building a thin wrapper around other
      * property retrieval methods
      * @param p     the path of the item owning this property
      * @param n     the name of the property

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java Thu Mar 13 15:27:51 2014
@@ -38,7 +38,7 @@ public class SVNAdmin
     private org.apache.subversion.javahl.SVNRepos aSVNAdmin;
 
     /**
-     * Standard empty contructor, builds just the native peer.
+     * Standard empty constructor, builds just the native peer.
      */
     public SVNAdmin()
     {

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java Thu Mar 13 15:27:51 2014
@@ -47,7 +47,7 @@ public class SVNClient implements SVNCli
     private org.apache.subversion.javahl.SVNClient aSVNClient;
 
     /**
-     * Standard empty contructor, builds just the native peer.
+     * Standard empty constructor, builds just the native peer.
      */
     public SVNClient()
     {

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java Thu Mar 13 15:27:51 2014
@@ -1330,9 +1330,9 @@ public interface SVNClientInterface
      * #diffSummarize(String, Revision, String, Revision, int,
      * boolean, DiffSummaryReceiver)}, using <code>path</code> for
      * both of that method's targets.
-     * @param startRevision Beginning of range for comparsion of
+     * @param startRevision Beginning of range for comparison of
      * <code>target</code>.
-     * @param endRevision End of range for comparsion of
+     * @param endRevision End of range for comparison of
      * <code>target</code>.
      * @param depth how deep to recurse.
      * @param changelists  if non-null, filter paths using changelists

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Thu Mar 13 15:27:51 2014
@@ -304,6 +304,8 @@ public class BasicTests extends SVNTests
         OneTest thisTest = new OneTest();
 
         // check the status of the working copy
+        thisTest.getWc().setItemDepth("", Depth.infinity);
+        thisTest.getWc().setItemDepth("iota", Depth.unknown);
         thisTest.checkStatus();
 
         // Test status of non-existent file
@@ -314,7 +316,6 @@ public class BasicTests extends SVNTests
                     false, false, null, statusCallback);
         if (statusCallback.getStatusArray().length > 0)
             fail("File foo.c should not return a status.");
-
     }
 
     /**
@@ -1829,7 +1830,7 @@ public class BasicTests extends SVNTests
         // check the status of the working copy
         thisTest.checkStatus();
 
-        // confirm that the file are realy deleted
+        // confirm that the file are really deleted
         assertFalse("failed to remove text modified file",
                 new File(thisTest.getWorkingCopy(), "A/D/G/rho").exists());
         assertFalse("failed to remove prop modified file",
@@ -1857,7 +1858,7 @@ public class BasicTests extends SVNTests
 
         try
         {
-            // delete non-existant file foo
+            // delete non-existent file foo
             Set<String> paths = new HashSet<String>(1);
             paths.add(file.getAbsolutePath());
             client.remove(paths, true, false, null, null, null);
@@ -3040,7 +3041,7 @@ public class BasicTests extends SVNTests
                         thisTest.getUrl().toString(), diffOutput.getPath(),
                         Depth.infinity, null, true, true, false, false);
 
-            fail("This test should fail becaus the relativeToDir parameter " +
+            fail("This test should fail because the relativeToDir parameter " +
                  "does not work with URLs");
         }
         catch (Exception ignored)

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java Thu Mar 13 15:27:51 2014
@@ -128,6 +128,16 @@ public class WC extends TestCase
     }
 
     /**
+     * Set the depth of the item at a path
+     * @param path      the path, where the status is set
+     * @param depth     the new depth
+     */
+    public void setItemDepth(String path, Depth depth)
+    {
+        items.get(path).depth = depth;
+    }
+
+    /**
      * Set the revision number of the item at a path
      * @param path      the path, where the revision number is set
      * @param revision  the new revision number
@@ -463,6 +473,9 @@ public class WC extends TestCase
                          item.isSwitched, status.isSwitched());
             assertEquals("wrong prop status in working copy: " + path,
                          item.propStatus, status.getPropStatus());
+            if (item.depth != null)
+                assertEquals("wrong ambient depth in working copy: " + path,
+                             item.depth, status.getDepth());
             if (item.myContent != null)
             {
                 assertEquals("state says file, working copy not: " + path,
@@ -561,6 +574,11 @@ public class WC extends TestCase
         Status.Kind propStatus = Status.Kind.none;
 
         /**
+         * the ambient depth of the item.
+         */
+        Depth depth = null;
+
+        /**
          * the expected revision number. -1 means do not check.
          */
         long workingCopyRev = -1;
@@ -633,6 +651,7 @@ public class WC extends TestCase
             myContent = source.myContent;
             textStatus = source.textStatus;
             propStatus = source.propStatus;
+            depth = source.depth;
             owner.items.put(myPath, this);
         }
 

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java?rev=1577198&r1=1577197&r2=1577198&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java Thu Mar 13 15:27:51 2014
@@ -213,7 +213,16 @@ public class BasicTests extends SVNTests
 
         Status s = client.singleStatus(fileToSVNPath(fileC, false), false);
         if (s != null)
-            fail("File foo.c should not return a status.");
+        {
+            if (s.hasTreeConflict()
+                || s.getTextStatus() != Status.Kind.none
+                || s.getPropStatus() != Status.Kind.none
+                || s.getRepositoryTextStatus() != Status.Kind.none
+                || s.getRepositoryPropStatus() != Status.Kind.none)
+            {
+                fail("File foo.c should not return a status.");
+            }
+        }
 
     }
 
@@ -1630,7 +1639,7 @@ public class BasicTests extends SVNTests
         // check the status of the working copy
         thisTest.checkStatus();
 
-        // confirm that the file are realy deleted
+        // confirm that the file are really deleted
         assertFalse("failed to remove text modified file",
                 new File(thisTest.getWorkingCopy(), "A/D/G/rho").exists());
         assertFalse("failed to remove prop modified file",
@@ -1656,7 +1665,7 @@ public class BasicTests extends SVNTests
 
         try
         {
-            // delete non-existant file foo
+            // delete non-existent file foo
             client.remove(new String[] {file.getAbsolutePath()}, null, true);
             fail("missing exception");
         }
@@ -2644,7 +2653,7 @@ public class BasicTests extends SVNTests
                         thisTest.getUrl(), diffOutput.getPath(),
                         Depth.infinity, null, true, true, false);
 
-            fail("This test should fail becaus the relativeToDir parameter " +
+            fail("This test should fail because the relativeToDir parameter " +
                  "does not work with URLs");
         }
         catch (Exception ignored)