You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ne...@apache.org on 2011/08/31 00:19:50 UTC

svn commit: r1163438 - /subversion/trunk/subversion/libsvn_client/externals.c

Author: neels
Date: Tue Aug 30 22:19:50 2011
New Revision: 1163438

URL: http://svn.apache.org/viewvc?rev=1163438&view=rev
Log:
Make dir externals' peg revision and revision appear in wc.db. Prior to this
patch, the columns def_operational_revision and def_revision were always empty
for dir externals.

* subversion/libsvn_client/externals.c
  (switch_dir_external): 
    Do not pass SVN_INVALID_REVNUM to svn_wc__external_register(). Instead,
    translate svn_opt_revision_t to svn_revnum_t (x2) and pass revision
    numbers if available.

Modified:
    subversion/trunk/subversion/libsvn_client/externals.c

Modified: subversion/trunk/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/externals.c?rev=1163438&r1=1163437&r2=1163438&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/externals.c (original)
+++ subversion/trunk/subversion/libsvn_client/externals.c Tue Aug 30 22:19:50 2011
@@ -135,10 +135,18 @@ switch_dir_external(const char *local_ab
 {
   svn_node_kind_t kind;
   svn_error_t *err;
+  svn_revnum_t external_peg_rev = SVN_INVALID_REVNUM;
+  svn_revnum_t external_rev = SVN_INVALID_REVNUM;
   apr_pool_t *subpool = svn_pool_create(pool);
 
   SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
 
+  if (peg_revision->kind == svn_opt_revision_number)
+    external_peg_rev = peg_revision->value.number;
+
+  if (revision->kind == svn_opt_revision_number)
+    external_rev = revision->value.number;
+
   /* If path is a directory, try to update/switch to the correct URL
      and revision. */
   SVN_ERR(svn_io_check_path(local_abspath, &kind, pool));
@@ -230,8 +238,8 @@ switch_dir_external(const char *local_ab
                                                 svn_uri_skip_ancestor(
                                                             repos_root_url,
                                                             url, subpool),
-                                                SVN_INVALID_REVNUM,
-                                                SVN_INVALID_REVNUM,
+                                                external_peg_rev,
+                                                external_rev,
                                                 subpool));
 
               svn_pool_destroy(subpool);
@@ -288,8 +296,8 @@ switch_dir_external(const char *local_ab
                                       repos_root_url, repos_uuid,
                                       svn_uri_skip_ancestor(repos_root_url,
                                                             url, pool),
-                                      SVN_INVALID_REVNUM,
-                                      SVN_INVALID_REVNUM,
+                                      external_peg_rev,
+                                      external_rev,
                                       pool));
   }