You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gs...@apache.org on 2010/05/10 23:18:07 UTC
svn commit: r942906 - in /subversion/trunk/subversion/libsvn_wc: entries.h
log.c log.h old-and-busted.c update_editor.c wc.h workqueue.c workqueue.h
Author: gstein
Date: Mon May 10 21:18:06 2010
New Revision: 942906
URL: http://svn.apache.org/viewvc?rev=942906&view=rev
Log:
Introduce OP_RECORD_FILEINFO, which allows us to strip out two loggy
operations and a bunch of hacky sorta-loggy_modify_entry code. The fallout
also moves a few more things into old-and-busted, which also gets
simplified because it doesn't have to track the special attr values.
* subversion/libsvn_wc/workqueue.h:
(svn_wc__wq_build_record_fileinfo): new operation
* subversion/libsvn_wc/workqueue.c:
(OP_RECORD_FILEINFO): new operation
(get_and_record_fileinfo): new helper, with guts from run_file_install.
added ability to ignore missing files.
(run_file_install): shift code to get_and_record_fileinfo and call it
(run_record_fileinfo): simple operation to call get_and_record_fileinfo
(svn_wc__wq_build_record_fileinfo): new function to build
OP_RECORD_FILEINFO work items
(dispatch_table): add OP_RECORD_FILEINFO and its handler
* subversion/libsvn_wc/update_editor.c:
(merge_file): remove calls to two loggy functions and queue an
OP_RECORD_FILEINFO instead. leave some comments here. the exact
conditions around this code are quite sketchy/unclear.
* subversion/libsvn_wc/log.h:
(svn_wc__loggy_set_entry_timestamp_from_wc): removed
(svn_wc__loggy_set_entry_working_size_from_wc): removed
* subversion/libsvn_wc/log.c:
(svn_wc__loggy_set_entry_timestamp_from_wc): removed
(svn_wc__loggy_set_entry_working_size_from_wc): removed
(log_do_modify_entry): without the special attribute values, this
function can be dramatically simplified.
* subversion/libsvn_wc/entries.h:
(SVN_WC__ENTRY_ATTR_TEXT_TIME, SVN_WC__ENTRY_ATTR_WORKING_SIZE): no
longer used after the log.c changes. moved to old-and-busted.c
* subversion/libsvn_wc/old-and-busted.c:
(ENTRIES_ATTR_WORKING_SIZE, ENTRIES_ATTR_TEXT_TIME): moved here from
entries.h, and renamed
(svn_wc__atts_to_entry): remove special values from the text time and
working size attributes. and these no longer need to set MODIFY_FLAGS.
* subversion/libsvn_wc/wc.h:
(SVN_WC__TIMESTAMP_WC, SVN_WC__WORKING_SIZE_WC): these special values
are no longer used.
Modified:
subversion/trunk/subversion/libsvn_wc/entries.h
subversion/trunk/subversion/libsvn_wc/log.c
subversion/trunk/subversion/libsvn_wc/log.h
subversion/trunk/subversion/libsvn_wc/old-and-busted.c
subversion/trunk/subversion/libsvn_wc/update_editor.c
subversion/trunk/subversion/libsvn_wc/wc.h
subversion/trunk/subversion/libsvn_wc/workqueue.c
subversion/trunk/subversion/libsvn_wc/workqueue.h
Modified: subversion/trunk/subversion/libsvn_wc/entries.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.h?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.h (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.h Mon May 10 21:18:06 2010
@@ -44,12 +44,10 @@ extern "C" {
and for error reporting when reading a non-XML entries file.
### If you add or remove items here, you probably want to make sure
to do the same for the SVN_WC__ENTRY_MODIFY_* #defines as well. */
-#define SVN_WC__ENTRY_ATTR_TEXT_TIME "text-time"
#define SVN_WC__ENTRY_ATTR_CONFLICT_OLD "conflict-old" /* saved old file */
#define SVN_WC__ENTRY_ATTR_CONFLICT_NEW "conflict-new" /* saved new file */
#define SVN_WC__ENTRY_ATTR_CONFLICT_WRK "conflict-wrk" /* saved wrk file */
#define SVN_WC__ENTRY_ATTR_PREJFILE "prop-reject-file"
-#define SVN_WC__ENTRY_ATTR_WORKING_SIZE "working-size"
/* Set *NEW_ENTRY to a new entry, taking attributes from ATTS, whose
Modified: subversion/trunk/subversion/libsvn_wc/log.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/log.c?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/log.c (original)
+++ subversion/trunk/subversion/libsvn_wc/log.c Mon May 10 21:18:06 2010
@@ -253,80 +253,22 @@ log_do_modify_entry(struct log_runner *l
const char *name,
const char **atts)
{
- svn_error_t *err;
apr_hash_t *ah = svn_xml_make_att_hash(atts, loggy->pool);
const char *local_abspath;
svn_wc_entry_t *entry;
int modify_flags;
- const char *valuestr;
local_abspath = svn_dirent_join(loggy->adm_abspath, name, loggy->pool);
/* Convert the attributes into an entry structure. */
SVN_ERR(svn_wc__atts_to_entry(&entry, &modify_flags, ah, loggy->pool));
- /* svn_wc__atts_to_entry will no-op if the TEXT_TIME timestamp is
- SVN_WC__TIMESTAMP_WC, so look for that case and fill in the proper
- value. */
- valuestr = apr_hash_get(ah, SVN_WC__ENTRY_ATTR_TEXT_TIME,
- APR_HASH_KEY_STRING);
- if ((modify_flags & SVN_WC__ENTRY_MODIFY_TEXT_TIME)
- && (! strcmp(valuestr, SVN_WC__TIMESTAMP_WC)))
- {
- apr_time_t text_time;
-
- err = svn_io_file_affected_time(&text_time, local_abspath, loggy->pool);
- if (err)
- return svn_error_createf
- (SVN_ERR_WC_BAD_ADM_LOG, err,
- _("Error getting 'affected time' on '%s'"),
- svn_dirent_local_style(local_abspath, loggy->pool));
-
- entry->text_time = text_time;
- }
-
- valuestr = apr_hash_get(ah, SVN_WC__ENTRY_ATTR_WORKING_SIZE,
- APR_HASH_KEY_STRING);
- if ((modify_flags & SVN_WC__ENTRY_MODIFY_WORKING_SIZE)
- && (! strcmp(valuestr, SVN_WC__WORKING_SIZE_WC)))
- {
- apr_finfo_t finfo;
- const svn_wc_entry_t *tfile_entry;
-
- err = svn_wc__get_entry(&tfile_entry, loggy->db, local_abspath, TRUE,
- svn_node_file, FALSE,
- loggy->pool, loggy->pool);
- if (err)
- SIGNAL_ERROR(loggy, err);
-
- if (! tfile_entry)
- return SVN_NO_ERROR;
-
- err = svn_io_stat(&finfo, local_abspath, APR_FINFO_MIN | APR_FINFO_LINK,
- loggy->pool);
- if (err && APR_STATUS_IS_ENOENT(err->apr_err))
- {
- svn_error_clear(err);
- finfo.size = 0;
- }
- else if (err)
- return svn_error_createf
- (SVN_ERR_WC_BAD_ADM_LOG, NULL,
- _("Error getting file size on '%s'"),
- svn_dirent_local_style(local_abspath, loggy->pool));
-
- entry->working_size = finfo.size;
- }
-
/* ### this function never needs to modify a parent stub.
### NOTE: this call to entry_modify MAY create a new node. */
- err = svn_wc__entry_modify(loggy->db, local_abspath, svn_node_unknown,
- entry, modify_flags, loggy->pool);
- if (err)
- return svn_error_createf(SVN_ERR_WC_BAD_ADM_LOG, err,
- _("Error modifying entry for '%s'"), name);
-
- return SVN_NO_ERROR;
+ return svn_error_return(svn_wc__entry_modify(loggy->db, local_abspath,
+ svn_node_unknown,
+ entry, modify_flags,
+ loggy->pool));
}
/* */
@@ -866,63 +808,6 @@ svn_wc__loggy_move(svn_skel_t **work_ite
svn_error_t *
-svn_wc__loggy_set_entry_timestamp_from_wc(svn_skel_t **work_item,
- svn_wc__db_t *db,
- const char *adm_abspath,
- const char *local_abspath,
- apr_pool_t *result_pool)
-{
- svn_stringbuf_t *log_accum = NULL;
- const char *loggy_path1;
-
- SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
-
- SVN_ERR(loggy_path(&loggy_path1, local_abspath, adm_abspath, result_pool));
- svn_xml_make_open_tag(&log_accum,
- result_pool,
- svn_xml_self_closing,
- SVN_WC__LOG_MODIFY_ENTRY,
- SVN_WC__LOG_ATTR_NAME,
- loggy_path1,
- SVN_WC__ENTRY_ATTR_TEXT_TIME,
- SVN_WC__TIMESTAMP_WC,
- NULL);
-
- return svn_error_return(svn_wc__wq_build_loggy(work_item,
- db, adm_abspath, log_accum,
- result_pool));
-}
-
-svn_error_t *
-svn_wc__loggy_set_entry_working_size_from_wc(svn_skel_t **work_item,
- svn_wc__db_t *db,
- const char *adm_abspath,
- const char *local_abspath,
- apr_pool_t *result_pool)
-{
- svn_stringbuf_t *log_accum = NULL;
- const char *loggy_path1;
-
- SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
-
- SVN_ERR(loggy_path(&loggy_path1, local_abspath, adm_abspath, result_pool));
- svn_xml_make_open_tag(&log_accum,
- result_pool,
- svn_xml_self_closing,
- SVN_WC__LOG_MODIFY_ENTRY,
- SVN_WC__LOG_ATTR_NAME,
- loggy_path1,
- SVN_WC__ENTRY_ATTR_WORKING_SIZE,
- SVN_WC__WORKING_SIZE_WC,
- NULL);
-
- return svn_error_return(svn_wc__wq_build_loggy(work_item,
- db, adm_abspath, log_accum,
- result_pool));
-}
-
-
-svn_error_t *
svn_wc__loggy_set_timestamp(svn_skel_t **work_item,
svn_wc__db_t *db,
const char *adm_abspath,
Modified: subversion/trunk/subversion/libsvn_wc/log.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/log.h?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/log.h (original)
+++ subversion/trunk/subversion/libsvn_wc/log.h Mon May 10 21:18:06 2010
@@ -130,27 +130,6 @@ svn_wc__loggy_move(svn_skel_t **work_ite
apr_pool_t *result_pool);
-svn_error_t *
-svn_wc__loggy_set_entry_timestamp_from_wc(svn_skel_t **work_item,
- svn_wc__db_t *db,
- const char *adm_abspath,
- const char *local_abspath,
- apr_pool_t *result_pool);
-
-
-/* Queue log instructions to set the file size of PATH
- in the entries' WORKING_SIZE field.
-
- ADM_ABSPATH is the absolute path for the admin directory for PATH.
-*/
-svn_error_t *
-svn_wc__loggy_set_entry_working_size_from_wc(svn_skel_t **work_item,
- svn_wc__db_t *db,
- const char *adm_abspath,
- const char *local_abspath,
- apr_pool_t *result_pool);
-
-
/* Queue instructions to set the timestamp of PATH to
the time TIMESTR.
Modified: subversion/trunk/subversion/libsvn_wc/old-and-busted.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/old-and-busted.c?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/old-and-busted.c (original)
+++ subversion/trunk/subversion/libsvn_wc/old-and-busted.c Mon May 10 21:18:06 2010
@@ -73,6 +73,8 @@
#define ENTRIES_ATTR_COPYFROM_URL "copyfrom-url"
#define ENTRIES_ATTR_COPYFROM_REV "copyfrom-rev"
#define ENTRIES_ATTR_CHECKSUM "checksum"
+#define ENTRIES_ATTR_WORKING_SIZE "working-size"
+#define ENTRIES_ATTR_TEXT_TIME "text-time"
/* Attribute values used in our old XML entries file. */
#define ENTRIES_VALUE_FILE "file"
@@ -924,26 +926,14 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n
name));
/* Attempt to set up timestamps. */
+ /* ### not used by loggy; no need to set MODIFY_FLAGS */
{
const char *text_timestr;
- text_timestr = apr_hash_get(atts, SVN_WC__ENTRY_ATTR_TEXT_TIME,
+ text_timestr = apr_hash_get(atts, ENTRIES_ATTR_TEXT_TIME,
APR_HASH_KEY_STRING);
if (text_timestr)
- {
- if (strcmp(text_timestr, SVN_WC__TIMESTAMP_WC) == 0)
- {
- /* Special case: a magic string that means 'get this value
- from the working copy' -- we ignore it here, trusting
- that the caller of this function know what to do about
- it. */
- }
- else
- SVN_ERR(svn_time_from_cstring(&entry->text_time, text_timestr,
- pool));
-
- *modify_flags |= SVN_WC__ENTRY_MODIFY_TEXT_TIME;
- }
+ SVN_ERR(svn_time_from_cstring(&entry->text_time, text_timestr, pool));
/* Note: we do not persist prop_time, so there is no need to attempt
to parse a new prop_time value from the log. Certainly, on any
@@ -1004,23 +994,14 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n
going to ignore them. */
/* Translated size */
+ /* ### not used by loggy; no need to set MODIFY_FLAGS */
{
- const char *val
- = apr_hash_get(atts,
- SVN_WC__ENTRY_ATTR_WORKING_SIZE,
- APR_HASH_KEY_STRING);
+ const char *val = apr_hash_get(atts, ENTRIES_ATTR_WORKING_SIZE,
+ APR_HASH_KEY_STRING);
if (val)
{
- if (strcmp(val, SVN_WC__WORKING_SIZE_WC) == 0)
- {
- /* Special case (same as the timestamps); ignore here
- these will be handled elsewhere */
- }
- else
- /* Cast to off_t; it's safe: we put in an off_t to start with... */
- entry->working_size = (apr_off_t)apr_strtoi64(val, NULL, 0);
-
- *modify_flags |= SVN_WC__ENTRY_MODIFY_WORKING_SIZE;
+ /* Cast to off_t; it's safe: we put in an off_t to start with... */
+ entry->working_size = (apr_off_t)apr_strtoi64(val, NULL, 0);
}
}
Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Mon May 10 21:18:06 2010
@@ -4683,8 +4683,9 @@ merge_file(svn_skel_t **work_items,
}
#endif
- /* Log commands to handle text-timestamp and working-size,
- if the file is - or will be - unmodified and schedule-normal */
+ /* Installing from a pristine will handle timestamps and recording.
+ However, if we are NOT creating a new working copy file, then create
+ work items to handle text-timestamp and working-size. */
if (!*install_pristine
&& !is_locally_modified
&& (fb->adding_file || entry->schedule == svn_wc_schedule_normal))
@@ -4700,19 +4701,11 @@ merge_file(svn_skel_t **work_items,
*work_items = svn_wc__wq_merge(*work_items, work_item, pool);
}
- if ((new_text_base_tmp_abspath || magic_props_changed)
- && !fb->deleted)
- {
- /* Adjust entries file to match working file */
- SVN_ERR(svn_wc__loggy_set_entry_timestamp_from_wc(
- &work_item, eb->db, pb->local_abspath,
- fb->local_abspath, pool));
- *work_items = svn_wc__wq_merge(*work_items, work_item, pool);
- }
-
- SVN_ERR(svn_wc__loggy_set_entry_working_size_from_wc(
- &work_item, eb->db, pb->local_abspath,
- fb->local_abspath, pool));
+ /* ### what if the file is locally-deleted? or if there is an
+ ### obstruction. OP_RECORD_FILEINFO will deal with a missing
+ ### file, but what if this is NOT our file? (ie. obstruction) */
+ SVN_ERR(svn_wc__wq_build_record_fileinfo(eb->db, fb->local_abspath,
+ pool));
*work_items = svn_wc__wq_merge(*work_items, work_item, pool);
}
Modified: subversion/trunk/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc.h?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc.h Mon May 10 21:18:06 2010
@@ -61,7 +61,7 @@ extern "C" {
* For example, ".svn/props/foo" became ".svn/props/foo.svn-work".
*
* The change from 2 to 3 was the introduction of the entry attribute
- * SVN_WC__ENTRY_ATTR_ABSENT.
+ * old-and-busted.c::ENTRIES_ATTR_ABSENT.
*
* The change from 3 to 4 was the renaming of the magic "svn:this_dir"
* entry name to "".
@@ -266,29 +266,6 @@ struct svn_wc_traversal_info_t
};
-
-/*** Timestamps. ***/
-
-/* A special timestamp value which means "use the timestamp from the
- working copy". This is sometimes used in a log entry like:
-
- <modify-entry name="foo.c" revision="5" timestamp="working"/>
- */
-#define SVN_WC__TIMESTAMP_WC "working"
-
-
-
-/*** Filesizes. ***/
-
-/* A special filesize value which means "use the filesize from the
- working copy". This is sometimes used in a log entry like:
-
- <modify-entry name="foo.c" revision="5" working-size="working"/>
- */
-#define SVN_WC__WORKING_SIZE_WC "working"
-
-
-
/*** Names and file/dir operations in the administrative area. ***/
/** The files within the administrative subdir. **/
Modified: subversion/trunk/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.c?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/trunk/subversion/libsvn_wc/workqueue.c Mon May 10 21:18:06 2010
@@ -64,6 +64,7 @@
#define OP_SYNC_FILE_FLAGS "sync-file-flags"
#define OP_PREJ_INSTALL "prej-install"
#define OP_WRITE_OLD_PROPS "write-old-props"
+#define OP_RECORD_FILEINFO "record-fileinfo"
/* For work queue debugging. Generates output about its operation. */
@@ -111,6 +112,39 @@ sync_file_flags(svn_wc__db_t *db,
}
+static svn_error_t *
+get_and_record_fileinfo(svn_wc__db_t *db,
+ const char *local_abspath,
+ svn_boolean_t ignore_enoent,
+ apr_pool_t *scratch_pool)
+{
+ apr_time_t last_mod_time;
+ apr_finfo_t finfo;
+ svn_error_t *err;
+
+ err = svn_io_file_affected_time(&last_mod_time, local_abspath,
+ scratch_pool);
+ if (err)
+ {
+ if (!ignore_enoent || !APR_STATUS_IS_ENOENT(err->apr_err))
+ return svn_error_return(err);
+
+ /* No biggy. Just skip all this. */
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(svn_io_stat(&finfo, local_abspath,
+ APR_FINFO_MIN | APR_FINFO_LINK,
+ scratch_pool));
+
+ return svn_error_return(svn_wc__db_global_record_fileinfo(
+ db, local_abspath,
+ finfo.size, last_mod_time,
+ scratch_pool));
+}
+
+
/* If SOURCE_ABSPATH is present, then move it to DEST_ABSPATH. Ignore any
ENOENT message for a missing source, which may indicate the move has
already been performed. */
@@ -1910,22 +1944,9 @@ run_file_install(svn_wc__db_t *db,
/* ### this should happen before we rename the file into place. */
if (record_fileinfo)
{
- apr_time_t last_mod_time;
- apr_finfo_t finfo;
-
- /* loggy_set_entry_timestamp_from_wc() */
- SVN_ERR(svn_io_file_affected_time(&last_mod_time,
- local_abspath,
- scratch_pool));
-
- /* loggy_set_entry_working_size_from_wc() */
- SVN_ERR(svn_io_stat(&finfo, local_abspath,
- APR_FINFO_MIN | APR_FINFO_LINK,
- scratch_pool));
-
- SVN_ERR(svn_wc__db_global_record_fileinfo(db, local_abspath,
- finfo.size, last_mod_time,
- scratch_pool));
+ SVN_ERR(get_and_record_fileinfo(db, local_abspath,
+ FALSE /* ignore_enoent */,
+ scratch_pool));
/* ### there used to be a call to entry_modify() above, to set the
### TRANSLATED_SIZE and LAST_MOD_TIME values. that function elided
@@ -2120,6 +2141,7 @@ svn_wc__wq_build_prej_install(svn_skel_t
/* OP_WRITE_OLD_PROPS */
+
static svn_error_t *
run_write_old_props(svn_wc__db_t *db,
const svn_skel_t *work_item,
@@ -2191,6 +2213,46 @@ svn_wc__wq_build_write_old_props(svn_ske
/* ------------------------------------------------------------------------ */
+/* OP_RECORD_FILEINFO */
+
+
+static svn_error_t *
+run_record_fileinfo(svn_wc__db_t *db,
+ const svn_skel_t *work_item,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *scratch_pool)
+{
+ const svn_skel_t *arg1 = work_item->children->next;
+ const char *local_abspath;
+
+ local_abspath = apr_pstrmemdup(scratch_pool, arg1->data, arg1->len);
+
+ return svn_error_return(get_and_record_fileinfo(db, local_abspath,
+ TRUE /* ignore_enoent */,
+ scratch_pool));
+}
+
+
+svn_error_t *
+svn_wc__wq_build_record_fileinfo(svn_skel_t **work_item,
+ const char *local_abspath,
+ apr_pool_t *result_pool)
+{
+ *work_item = svn_skel__make_empty_list(result_pool);
+
+ SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
+
+ svn_skel__prepend_str(apr_pstrdup(result_pool, local_abspath),
+ *work_item, result_pool);
+ svn_skel__prepend_str(OP_RECORD_FILEINFO, *work_item, result_pool);
+
+ return SVN_NO_ERROR;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
static const struct work_item_dispatch dispatch_table[] = {
{ OP_REVERT, run_revert },
{ OP_PREPARE_REVERT_FILES, run_prepare_revert_files },
@@ -2205,6 +2267,7 @@ static const struct work_item_dispatch d
{ OP_SYNC_FILE_FLAGS, run_sync_file_flags },
{ OP_PREJ_INSTALL, run_prej_install },
{ OP_WRITE_OLD_PROPS, run_write_old_props },
+ { OP_RECORD_FILEINFO, run_record_fileinfo },
/* Sentinel. */
{ NULL }
Modified: subversion/trunk/subversion/libsvn_wc/workqueue.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.h?rev=942906&r1=942905&r2=942906&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/workqueue.h (original)
+++ subversion/trunk/subversion/libsvn_wc/workqueue.h Mon May 10 21:18:06 2010
@@ -158,6 +158,17 @@ svn_wc__wq_build_write_old_props(svn_ske
apr_pool_t *result_pool);
+/* Build a work item that will record file information of LOCAL_ABSPATH
+ into the TRANSLATED_SIZE and LAST_MOD_TIME of the node via the
+ svn_wc__db_global_record_fileinfo() function.
+
+ ### it is unclear whether this should survive. */
+svn_error_t *
+svn_wc__wq_build_record_fileinfo(svn_skel_t **work_item,
+ const char *local_abspath,
+ apr_pool_t *result_pool);
+
+
/* Record a work item to revert LOCAL_ABSPATH. */
svn_error_t *
svn_wc__wq_add_revert(svn_boolean_t *will_revert,