In libsvn_wc, we have a number of patterns which are extremely common,
yet verbosely repeated every time. One of them is addressed in the
patch attached.
The pattern is:
- get an entry using svn_wc_entry()
- check for a non-NULL entry and,
return a not-versioned error if the entry *is* NULL
The only thing I could figure out why this would be is that we want to
have file and line numbers in the error message, so, I introduced a
macro and a new function.
The function svn_wc_ventry_ex (ventry as for 'valid entry') which
takes a file name and a line number. The macro svn_wc_ventry()
forwards to the function, adding the filename and lineno.
I know it isn't our usual pattern, but it's one of the ways I see to
make libsvn_wc a bit more readable.
BTW: This patch has 2 failing tests, because of changed error output.
No real problems, as far as I can tell.
Comments?
bye,
Erik.
Statistics: 110 adds, 223 deletions.
Index: subversion/include/svn_wc.h
===================================================================
--- subversion/include/svn_wc.h (revision 23885)
+++ subversion/include/svn_wc.h (working copy)
@@ -1457,7 +1457,38 @@
svn_boolean_t show_hidden,
apr_pool_t *pool);
+/** Same as svn_wc_entry() except that the entry returned
+ * is a non @c NULL entry.
+ *
+ * Returns an error when svn_wc_entry() would have returned a @c NULL entry.
+ *
+ * @since New in 1.5.
+ */
+#ifdef SVN_DEBUG
+#define svn_wc_ventry(entry, path, adm_access, show_hidden, pool) \
+ svn_wc_ventry_ex((entry), (path), (adm_access), (show_hidden), \
+ __FILE__, __LINE__, (pool))
+#else
+#define svn_wc_ventry(entry, path, adm_access, show_hidden, pool) \
+ svn_wc_ventry_ex((entry), (path), (adm_access), (show_hidden), \
+ NULL, 0, (pool))
+#endif
+
+
+/** Internal function used by the svn_wc_ventry() macro.
+ *
+ * @since New in 1.5.
+ */
+svn_error_t *
+svn_wc_ventry_ex(const svn_wc_entry_t **entry,
+ const char *path,
+ svn_wc_adm_access_t *adm_access,
+ svn_boolean_t show_hidden,
+ const char *caller_filename,
+ int caller_lineno,
+ apr_pool_t *pool);
+
/** Parse the `entries' file for @a adm_access and return a hash @a entries,
* whose keys are (<tt>const char *</tt>) entry names and values are
* (<tt>svn_wc_entry_t *</tt>). The hash @a entries, and its keys and
Index: subversion/libsvn_wc/entries.c
===================================================================
--- subversion/libsvn_wc/entries.c (revision 23885)
+++ subversion/libsvn_wc/entries.c (working copy)
@@ -1235,6 +1235,33 @@
}
+svn_error_t *
+svn_wc_ventry_ex(const svn_wc_entry_t **entry,
+ const char *path,
+ svn_wc_adm_access_t *adm_access,
+ svn_boolean_t show_hidden,
+ const char *caller_filename,
+ int caller_lineno,
+ apr_pool_t *pool)
+{
+ SVN_ERR(svn_wc_entry(entry, path, adm_access, show_hidden, pool));
+
+ if (! *entry)
+ {
+ svn_error_t *err
+ = svn_error_createf(SVN_ERR_ENTRY_NOT_FOUND, NULL,
+ _("'%s' is not under version control"),
+ svn_path_local_style(path, pool));
+
+ err->file = caller_filename;
+ err->line = caller_lineno;
+ return err;
+ }
+
+ return SVN_NO_ERROR;
+}
+
+
#if 0
/* This is #if 0'd out until I decide where to use it. --cmpilato */
Index: subversion/libsvn_wc/copy.c
===================================================================
--- subversion/libsvn_wc/copy.c (revision 23885)
+++ subversion/libsvn_wc/copy.c (working copy)
@@ -2,7 +2,7 @@
* copy.c: wc 'copy' functionality.
*
* ====================================================================
- * Copyright (c) 2000-2006 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -288,7 +288,7 @@
{
SVN_ERR(svn_wc_adm_retrieve(&parent_access, src_access,
parent_path, pool));
- SVN_ERR(svn_wc_entry(&entry, parent_path, parent_access,
+ SVN_ERR(svn_wc_ventry(&entry, parent_path, parent_access,
FALSE, pool));
}
else /* ...get access for parent_path instead. */
@@ -296,17 +296,11 @@
SVN_ERR(svn_wc_adm_probe_open3(&parent_access, NULL,
parent_path, FALSE, -1,
NULL, NULL, pool));
- SVN_ERR(svn_wc_entry(&entry, parent_path, parent_access,
+ SVN_ERR(svn_wc_ventry(&entry, parent_path, parent_access,
FALSE, pool));
SVN_ERR(svn_wc_adm_close(parent_access));
}
- if (! entry)
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(parent_path, pool));
-
if (entry->copyfrom_url)
{
*copyfrom_url = svn_path_join(entry->copyfrom_url, rest,
@@ -377,12 +371,7 @@
/* Sanity check 1: You cannot make a copy of something that's not
under version control. */
- SVN_ERR(svn_wc_entry(&src_entry, src_path, src_access, FALSE, pool));
- if (! src_entry)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("Cannot copy or move '%s': it's not under version control"),
- svn_path_local_style(src_path, pool));
+ SVN_ERR(svn_wc_ventry(&src_entry, src_path, src_access, FALSE, pool));
/* Sanity check 2: You cannot make a copy of something that's not
in the repository unless it's a copy of an uncommitted copy. */
@@ -656,12 +645,7 @@
/* Sanity check 1: You cannot make a copy of something that's not
under version control. */
- SVN_ERR(svn_wc_entry(&src_entry, src_path, src_access, FALSE, pool));
- if (! src_entry)
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(src_path, pool));
+ SVN_ERR(svn_wc_ventry(&src_entry, src_path, src_access, FALSE, pool));
/* Sanity check 2: You cannot make a copy of something that's not
in the repository unless it's a copy of an uncommitted copy. */
@@ -778,20 +762,9 @@
cancel_func, cancel_baton, pool));
dst_path = svn_wc_adm_access_path(dst_parent);
- SVN_ERR(svn_wc_entry(&dst_entry, dst_path, dst_parent, FALSE, pool));
- if (! dst_entry)
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(dst_path, pool));
+ SVN_ERR(svn_wc_ventry(&dst_entry, dst_path, dst_parent, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&src_entry, src_path, adm_access, FALSE, pool));
- SVN_ERR(svn_wc_entry(&src_entry, src_path, adm_access, FALSE, pool));
- if (! src_entry)
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(src_path, pool));
-
if ((src_entry->repos != NULL && dst_entry->repos != NULL) &&
strcmp(src_entry->repos, dst_entry->repos) != 0)
return svn_error_createf
Index: subversion/libsvn_wc/adm_ops.c
===================================================================
--- subversion/libsvn_wc/adm_ops.c (revision 23885)
+++ subversion/libsvn_wc/adm_ops.c (working copy)
@@ -1357,11 +1357,7 @@
{
const svn_wc_entry_t *ent;
- SVN_ERR(svn_wc_entry(&ent, path, adm_access, FALSE, pool));
- if (! ent)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(path, pool));
+ SVN_ERR(svn_wc_ventry(&ent, path, adm_access, FALSE, pool));
if (url)
*url = apr_pstrdup(pool, ent->url);
@@ -1948,12 +1944,8 @@
SVN_ERR(svn_wc_adm_probe_retrieve(&dir_access, parent_access, path, pool));
/* Safeguard 1: is this a versioned resource? */
- SVN_ERR(svn_wc_entry(&entry, path, dir_access, FALSE, pool));
- if (! entry)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("Cannot revert: '%s' is not under version control"),
- svn_path_local_style(path, pool));
+ SVN_ERR_W(svn_wc_ventry(&entry, path, dir_access, FALSE, pool),
+ "Cannot revert.");
/* Safeguard 1.5: is this a missing versioned directory? */
if (entry->kind == svn_node_dir)
@@ -2652,11 +2644,7 @@
if (! recurse)
{
const svn_wc_entry_t *entry;
- SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(path, pool));
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access, FALSE, pool));
SVN_ERR(resolve_found_entry_callback(path, entry, baton, pool));
}
@@ -2677,11 +2665,8 @@
const svn_wc_entry_t *entry;
svn_wc_entry_t newentry;
- SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"), path);
newentry.lock_token = lock->token;
newentry.lock_owner = lock->owner;
@@ -2713,12 +2698,8 @@
const svn_wc_entry_t *entry;
svn_wc_entry_t newentry;
- SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"), path);
-
newentry.lock_token = newentry.lock_owner = newentry.lock_comment = NULL;
newentry.lock_creation_date = 0;
SVN_ERR(svn_wc__entry_modify(adm_access, entry->name, &newentry,
Index: subversion/libsvn_wc/status.c
===================================================================
--- subversion/libsvn_wc/status.c (revision 23885)
+++ subversion/libsvn_wc/status.c (working copy)
@@ -2,7 +2,7 @@
* status.c: construct a status structure from an entry structure
*
* ====================================================================
- * Copyright (c) 2000-2006 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -722,13 +722,7 @@
const svn_wc_entry_t *full_entry = entry;
if (entry->kind == kind)
- {
- SVN_ERR(svn_wc_entry(&full_entry, path, adm_access, FALSE, pool));
- if (! full_entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(path, pool));
- }
+ SVN_ERR(svn_wc_ventry(&full_entry, path, adm_access, FALSE, pool));
/* Descend only if the subdirectory is a working copy directory
(and DESCEND is non-zero ofcourse) */
Index: subversion/libsvn_wc/adm_files.c
===================================================================
--- subversion/libsvn_wc/adm_files.c (revision 23885)
+++ subversion/libsvn_wc/adm_files.c (working copy)
@@ -6,7 +6,7 @@
* information is kept.
*
* ====================================================================
- * Copyright (c) 2000-2006 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -1028,12 +1028,8 @@
SVN_ERR(svn_wc_adm_open3(&adm_access, NULL, path, FALSE, 0,
NULL, NULL, pool));
- SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access, FALSE, pool));
SVN_ERR(svn_wc_adm_close(adm_access));
- if (!entry)
- return svn_error_createf(SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("No entry for '%s'"),
- svn_path_local_style(path, pool));
/* When the directory exists and is scheduled for deletion do not
* check the revision or the URL. The revision can be any
Index: subversion/libsvn_wc/update_editor.c
===================================================================
--- subversion/libsvn_wc/update_editor.c (revision 23885)
+++ subversion/libsvn_wc/update_editor.c (working copy)
@@ -3125,11 +3125,7 @@
/* Fabricate the anticipated new URL of the target and check the
copyfrom URL to be in the same repository. */
{
- SVN_ERR(svn_wc_entry(&ent, dir_name, adm_access, FALSE, pool));
- if (! ent)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(dir_name, pool));
+ SVN_ERR(svn_wc_ventry(&ent, dir_name, adm_access, FALSE, pool));
new_URL = svn_path_url_add_component(ent->url, base_name, pool);
Index: subversion/libsvn_wc/questions.c
===================================================================
--- subversion/libsvn_wc/questions.c (revision 23885)
+++ subversion/libsvn_wc/questions.c (working copy)
@@ -179,15 +179,8 @@
const svn_wc_entry_t *entry;
/* Get the timestamp from the entries file */
- SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access, FALSE, pool));
- /* Can't compare timestamps for an unversioned file. */
- if (entry == NULL)
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(path, pool));
-
/* Get the timestamp from the working file and the entry */
if (timestamp_kind == svn_wc__text_time)
{
@@ -294,13 +287,8 @@
{
/* Need checksum verification, so read checksum from entries file
* and setup checksummed stream for base file. */
- SVN_ERR(svn_wc_entry(&entry, versioned_file, adm_access, TRUE,
+ SVN_ERR(svn_wc_ventry(&entry, versioned_file, adm_access, TRUE,
pool));
- if (! entry)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(versioned_file, pool));
if (entry->checksum)
b_stream = svn_stream_checksummed(b_stream, &digest, NULL, TRUE,
Index: subversion/libsvn_wc/translate.c
===================================================================
--- subversion/libsvn_wc/translate.c (revision 23885)
+++ subversion/libsvn_wc/translate.c (working copy)
@@ -2,7 +2,7 @@
* translate.c : wc-specific eol/keyword substitution
*
* ====================================================================
- * Copyright (c) 2000-2004 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -263,11 +263,7 @@
return SVN_NO_ERROR;
}
- SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(path, pool));
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access, FALSE, pool));
SVN_ERR(svn_subst_build_keywords2(keywords,
list,
Index: subversion/libsvn_client/switch.c
===================================================================
--- subversion/libsvn_client/switch.c (revision 23885)
+++ subversion/libsvn_client/switch.c (working copy)
@@ -2,7 +2,7 @@
* switch.c: implement 'switch' feature via WC & RA interfaces.
*
* ====================================================================
- * Copyright (c) 2000-2006 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -101,11 +101,7 @@
ctx->cancel_baton, pool));
anchor = svn_wc_adm_access_path(adm_access);
- SVN_ERR(svn_wc_entry(&entry, anchor, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(anchor, pool));
+ SVN_ERR(svn_wc_ventry(&entry, anchor, adm_access, FALSE, pool));
if (! entry->url)
return svn_error_createf(SVN_ERR_ENTRY_MISSING_URL, NULL,
_("Directory '%s' has no URL"),
Index: subversion/libsvn_client/export.c
===================================================================
--- subversion/libsvn_client/export.c (revision 23885)
+++ subversion/libsvn_client/export.c (working copy)
@@ -2,7 +2,7 @@
* export.c: export a tree.
*
* ====================================================================
- * Copyright (c) 2000-2004 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -230,19 +230,8 @@
0, ctx->cancel_func, ctx->cancel_baton,
pool));
- SVN_ERR(svn_wc_entry(&entry, from, adm_access, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&entry, from, adm_access, FALSE, pool));
- /* Bail if we're trying to export something that doesn't exist,
- or isn't under version control. */
- if (! entry)
- {
- SVN_ERR(svn_wc_adm_close(adm_access));
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control "
- "or doesn't exist"),
- svn_path_local_style(from, pool));
- }
-
/* Only export 'added' files when the revision is WORKING.
Otherwise, skip the 'added' files, since they didn't exist
in the BASE revision and don't have an associated text-base.
Index: subversion/libsvn_client/revisions.c
===================================================================
--- subversion/libsvn_client/revisions.c (revision 23885)
+++ subversion/libsvn_client/revisions.c (working copy)
@@ -80,15 +80,9 @@
SVN_ERR(svn_wc_adm_probe_open3(&adm_access, NULL, path, FALSE,
0, NULL, NULL, pool));
- SVN_ERR(svn_wc_entry(&ent, path, adm_access, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&ent, path, adm_access, FALSE, pool));
SVN_ERR(svn_wc_adm_close(adm_access));
- if (! ent)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(path, pool));
-
if ((revision->kind == svn_opt_revision_base)
|| (revision->kind == svn_opt_revision_working))
*revnum = ent->revision;
Index: subversion/libsvn_client/status.c
===================================================================
--- subversion/libsvn_client/status.c (revision 23885)
+++ subversion/libsvn_client/status.c (working copy)
@@ -2,7 +2,7 @@
* status.c: return the status of a working copy dirent
*
* ====================================================================
- * Copyright (c) 2000-2004 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -249,12 +249,7 @@
svn_node_kind_t kind;
/* Get full URL from the ANCHOR. */
- SVN_ERR(svn_wc_entry(&entry, anchor, anchor_access, FALSE, pool));
- if (! entry)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(anchor, pool));
+ SVN_ERR(svn_wc_ventry(&entry, anchor, anchor_access, FALSE, pool));
if (! entry->url)
return svn_error_createf
(SVN_ERR_ENTRY_MISSING_URL, NULL,
Index: subversion/libsvn_client/info.c
===================================================================
--- subversion/libsvn_client/info.c (revision 23885)
+++ subversion/libsvn_client/info.c (working copy)
@@ -2,7 +2,7 @@
* info.c: return system-generated metadata about paths or URLs.
*
* ====================================================================
- * Copyright (c) 2000-2006 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -237,12 +237,7 @@
recurse ? -1 : 0,
ctx->cancel_func, ctx->cancel_baton,
pool));
- SVN_ERR(svn_wc_entry(&entry, wcpath, adm_access, FALSE, pool));
- if (! entry)
- {
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("Cannot read entry for '%s'"), wcpath);
- }
+ SVN_ERR(svn_wc_ventry(&entry, wcpath, adm_access, FALSE, pool));
SVN_ERR(build_info_from_entry(&info, entry, pool));
fe_baton.receiver = receiver;
Index: subversion/libsvn_client/prop_commands.c
===================================================================
--- subversion/libsvn_client/prop_commands.c (revision 23885)
+++ subversion/libsvn_client/prop_commands.c (working copy)
@@ -351,11 +351,7 @@
SVN_ERR(svn_wc_adm_probe_open3(&adm_access, NULL, target, TRUE,
recurse ? -1 : 0, ctx->cancel_func,
ctx->cancel_baton, pool));
- SVN_ERR(svn_wc_entry(&node, target, adm_access, FALSE, pool));
- if (!node)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target, pool));
+ SVN_ERR(svn_wc_ventry(&node, target, adm_access, FALSE, pool));
if (recurse && node->kind == svn_node_dir)
{
@@ -605,11 +601,8 @@
SVN_ERR(svn_wc_adm_open3(&adm_access, NULL, pdir, FALSE,
0, NULL, NULL, pool));
- SVN_ERR(svn_wc_entry(&entry, target, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target, pool));
+ SVN_ERR(svn_wc_ventry(&entry, target, adm_access, FALSE, pool));
+
*new_target = entry->url;
}
else
@@ -768,13 +761,8 @@
FALSE, recurse ? -1 : 0,
ctx->cancel_func, ctx->cancel_baton,
pool));
- SVN_ERR(svn_wc_entry(&node, target, adm_access, FALSE, pool));
- if (! node)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target, pool));
-
+ SVN_ERR(svn_wc_ventry(&node, target, adm_access, FALSE, pool));
+
SVN_ERR(svn_client__get_revision_number
(&revnum, NULL, revision, target, pool));
@@ -1104,13 +1092,8 @@
FALSE, recurse ? -1 : 0,
ctx->cancel_func, ctx->cancel_baton,
pool));
- SVN_ERR(svn_wc_entry(&node, target, adm_access, FALSE, pool));
- if (! node)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target, pool));
-
+ SVN_ERR(svn_wc_ventry(&node, target, adm_access, FALSE, pool));
+
SVN_ERR(svn_client__get_revision_number
(&revnum, NULL, revision, target, pool));
Index: subversion/libsvn_client/ra.c
===================================================================
--- subversion/libsvn_client/ra.c (revision 23885)
+++ subversion/libsvn_client/ra.c (working copy)
@@ -175,11 +175,7 @@
const svn_wc_entry_t *entry;
const char *full_path = svn_path_join(cb->base_dir, path, pool);
- SVN_ERR(svn_wc_entry(&entry, full_path, cb->base_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(full_path, pool));
+ SVN_ERR(svn_wc_ventry(&entry, full_path, cb->base_access, FALSE, pool));
SVN_ERR(svn_wc_adm_retrieve(&adm_access, cb->base_access,
(entry->kind == svn_node_dir
@@ -351,14 +347,9 @@
{
const svn_wc_entry_t *entry;
- SVN_ERR(svn_wc_entry(&entry, path, adm_access,
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access,
TRUE, /* show deleted */ pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("Can't find entry for '%s'"),
- svn_path_local_style(path, pool));
-
if (entry->uuid)
{
*uuid = entry->uuid;
Index: subversion/libsvn_client/cat.c
===================================================================
--- subversion/libsvn_client/cat.c (revision 23885)
+++ subversion/libsvn_client/cat.c (working copy)
@@ -2,7 +2,7 @@
* cat.c: implementation of the 'cat' command
*
* ====================================================================
- * Copyright (c) 2000-2004 CollabNet. All rights reserved.
+ * Copyright (c) 2000-2007 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -66,14 +66,8 @@
revision->kind == svn_opt_revision_committed ||
revision->kind == svn_opt_revision_unspecified);
- SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
+ SVN_ERR(svn_wc_ventry(&entry, path, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control "
- "or doesn't exist"),
- svn_path_local_style(path, pool));
-
if (entry->kind != svn_node_file)
return svn_error_createf(SVN_ERR_CLIENT_IS_DIRECTORY, NULL,
_("'%s' refers to a directory"),
Index: subversion/libsvn_client/locking_commands.c
===================================================================
--- subversion/libsvn_client/locking_commands.c (revision 23885)
+++ subversion/libsvn_client/locking_commands.c (working copy)
@@ -251,13 +251,9 @@
abs_path = svn_path_join
(svn_wc_adm_access_path(*parent_adm_access_p), target, subpool);
- SVN_ERR(svn_wc_entry(&entry, abs_path, *parent_adm_access_p, FALSE,
+ SVN_ERR(svn_wc_ventry(&entry, abs_path, *parent_adm_access_p, FALSE,
subpool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target, pool));
if (! entry->url)
return svn_error_createf(SVN_ERR_ENTRY_MISSING_URL, NULL,
_("'%s' has no URL"),
Index: subversion/libsvn_client/diff.c
===================================================================
--- subversion/libsvn_client/diff.c (revision 23885)
+++ subversion/libsvn_client/diff.c (working copy)
@@ -2787,11 +2787,7 @@
ctx->cancel_func, ctx->cancel_baton,
pool));
- SVN_ERR(svn_wc_entry(&entry, target_wcpath, adm_access, FALSE, pool));
- if (entry == NULL)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target_wcpath, pool));
+ SVN_ERR(svn_wc_ventry(&entry, target_wcpath, adm_access, FALSE, pool));
merge_cmd_baton.force = force;
merge_cmd_baton.dry_run = dry_run;
@@ -2915,11 +2911,7 @@
ctx->cancel_func, ctx->cancel_baton,
pool));
- SVN_ERR(svn_wc_entry(&entry, target_wcpath, adm_access, FALSE, pool));
- if (entry == NULL)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target_wcpath, pool));
+ SVN_ERR(svn_wc_ventry(&entry, target_wcpath, adm_access, FALSE, pool));
merge_cmd_baton.force = force;
merge_cmd_baton.dry_run = dry_run;
Index: subversion/libsvn_client/copy.c
===================================================================
--- subversion/libsvn_client/copy.c (revision 23885)
+++ subversion/libsvn_client/copy.c (working copy)
@@ -1484,17 +1484,10 @@
ctx->cancel_func,
ctx->cancel_baton,
iterpool));
- SVN_ERR(svn_wc_entry(&entry, pair->src, adm_access,
- FALSE,
- iterpool));
+ SVN_ERR(svn_wc_ventry(&entry, pair->src, adm_access,
+ FALSE, iterpool));
SVN_ERR(svn_wc_adm_close(adm_access));
- if (! entry)
- return svn_error_createf
- (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(pair->src, pool));
-
if (! entry->url)
return svn_error_createf
(SVN_ERR_ENTRY_MISSING_URL, NULL,
Index: subversion/libsvn_client/log.c
===================================================================
--- subversion/libsvn_client/log.c (revision 23885)
+++ subversion/libsvn_client/log.c (working copy)
@@ -127,12 +127,8 @@
SVN_ERR(svn_wc_adm_probe_open3(&adm_access, NULL, target,
FALSE, 0, ctx->cancel_func,
ctx->cancel_baton, pool));
- SVN_ERR(svn_wc_entry(&entry, target, adm_access, FALSE, pool));
- if (! entry)
- return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(target, pool));
-
+ SVN_ERR(svn_wc_ventry(&entry, target, adm_access, FALSE, pool));
+
if (! entry->url)
return svn_error_createf
(SVN_ERR_ENTRY_MISSING_URL, NULL,
Index: subversion/libsvn_client/commit_util.c
===================================================================
--- subversion/libsvn_client/commit_util.c (revision 23885)
+++ subversion/libsvn_client/commit_util.c (working copy)
@@ -702,11 +702,7 @@
/* No entry? This TARGET isn't even under version control! */
SVN_ERR(svn_wc_adm_probe_retrieve(&adm_access, parent_dir,
target, subpool));
- SVN_ERR(svn_wc_entry(&entry, target, adm_access, FALSE, subpool));
- if (! entry)
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"), target);
+ SVN_ERR(svn_wc_ventry(&entry, target, adm_access, FALSE, subpool));
if (! entry->url)
return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
_("Entry for '%s' has no URL"),
@@ -844,13 +840,8 @@
svn_pool_clear(iterpool);
/* Read the entry for this SRC. */
- SVN_ERR(svn_wc_entry(&entry, pair->src, adm_access, FALSE, iterpool));
- if (! entry)
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' is not under version control"),
- svn_path_local_style(pair->src, iterpool));
-
+ SVN_ERR(svn_wc_ventry(&entry, pair->src, adm_access, FALSE, iterpool));
+
/* Get the right access baton for this SRC. */
if (entry->kind == svn_node_dir)
SVN_ERR(svn_wc_adm_retrieve(&dir_access, adm_access, pair->src,
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Mar 17 00:14:42 2007