You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2012/06/26 21:28:22 UTC
svn commit: r1354186 [24/33] - in /subversion/branches/inheritable-props: ./
build/ build/ac-macros/ build/generator/ build/generator/templates/
build/win32/ contrib/client-side/emacs/ contrib/server-side/ notes/
notes/api-errata/1.8/ notes/directory-i...
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db.h?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db.h Tue Jun 26 19:26:49 2012
@@ -941,6 +941,18 @@ svn_wc__db_pristine_get_sha1(const svn_c
apr_pool_t *scratch_pool);
+/* If necessary transfers the PRISTINE file of SRC_LOCAL_ABSPATH to the
+ working copy identified by DST_WRI_ABSPATH. If CHECKSUM is not NULL, use
+ CHECKSUM to identify which pristine file to transfer. */
+svn_error_t *
+svn_wc__db_pristine_transfer(svn_wc__db_t *db,
+ const char *src_local_abspath,
+ const svn_checksum_t *checksum,
+ const char *dst_wri_abspath,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *scratch_pool);
+
/* Remove the pristine text with SHA-1 checksum SHA1_CHECKSUM from the
* pristine store, iff it is not referenced by any of the (other) WC DB
* tables. */
@@ -1507,6 +1519,7 @@ svn_wc__db_op_mark_resolved(svn_wc__db_t
svn_boolean_t resolved_text,
svn_boolean_t resolved_props,
svn_boolean_t resolved_tree,
+ const svn_skel_t *work_items,
apr_pool_t *scratch_pool);
@@ -2021,9 +2034,6 @@ svn_wc__db_read_props(apr_hash_t **props
* a hash table mapping <tt>char *</tt> names onto svn_string_t *
* values for any properties of child nodes of LOCAL_ABSPATH (up to DEPTH).
*
- * If BASE_PROPS is TRUE, read the properties from the BASE layer (op_depth=0),
- * without local modifications.
- *
* If BASE_PROPS is FALSE, read the properties from the WORKING layer (highest
* op_depth).
*
@@ -2034,7 +2044,6 @@ svn_error_t *
svn_wc__db_read_props_streamily(svn_wc__db_t *db,
const char *local_abspath,
svn_depth_t depth,
- svn_boolean_t base_props,
svn_boolean_t pristine,
const apr_array_header_t *changelists,
svn_wc__proplist_receiver_t receiver_func,
@@ -2120,6 +2129,21 @@ svn_wc__db_remove_cached_iprops(svn_wc__
const char *local_abspath,
apr_pool_t *scratch_pool);
+/** Obtain a mapping of const char * local_abspaths to const svn_string_t*
+ * property values in *VALUES, of all PROPNAME properties on LOCAL_ABSPATH
+ * and its descendants.
+ *
+ * Allocate the result in RESULT_POOL, and perform temporary allocations in
+ * SCRATCH_POOL.
+ */
+svn_error_t *
+svn_wc__db_prop_retrieve_recursive(apr_hash_t **values,
+ svn_wc__db_t *db,
+ const char *local_abspath,
+ const char *propname,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/* Set *CHILDREN to a new array of the (const char *) basenames of the
immediate children of the working node at LOCAL_ABSPATH in DB.
@@ -2179,7 +2203,6 @@ svn_wc__db_read_conflict_victims(const a
Allocate *MARKER_FILES in RESULT_POOL and do temporary allocations
in SCRATCH_POOL */
-/* ### This function will probably be removed. */
svn_error_t *
svn_wc__db_get_conflict_marker_files(apr_hash_t **markers,
svn_wc__db_t *db,
@@ -2211,12 +2234,16 @@ svn_wc__db_read_conflicts(const apr_arra
If the node is missing and ALLOW_MISSING is FALSE, then it will return
SVN_ERR_WC_PATH_NOT_FOUND.
+ If SHOW_HIDDEN is FALSE and the status of LOCAL_ABSPATH is NOT_PRESENT or
+ EXCLUDED, set KIND to svn_kind_none.
+
Uses SCRATCH_POOL for temporary allocations. */
svn_error_t *
svn_wc__db_read_kind(svn_kind_t *kind,
svn_wc__db_t *db,
const char *local_abspath,
svn_boolean_t allow_missing,
+ svn_boolean_t show_hidden,
apr_pool_t *scratch_pool);
@@ -3015,7 +3042,8 @@ svn_wc__db_drop_root(svn_wc__db_t *db,
apr_pool_t *scratch_pool);
/* Return the OP_DEPTH for LOCAL_RELPATH. */
-apr_int64_t svn_wc__db_op_depth_for_upgrade(const char *local_relpath);
+int
+svn_wc__db_op_depth_for_upgrade(const char *local_relpath);
/* Set *HAVE_WORK TRUE if there is a working layer below the top layer and
*HAVE_BASE if there is a base layer. Set *STATUS to the status of the
@@ -3119,19 +3147,19 @@ svn_wc__db_has_switched_subtrees(svn_boo
const char *trail_url,
apr_pool_t *scratch_pool);
-/* Set @a *server_excluded_subtrees to a hash mapping <tt>const char *</tt>
+/* Set @a *excluded_subtrees to a hash mapping <tt>const char *</tt>
* local absolute paths to <tt>const char *</tt> local absolute paths for
- * every path at or under @a local_abspath in @a db which are excluded by
- * the server (e.g. due to authz). If no such paths are found then
+ * every path under @a local_abspath in @a db which are excluded by
+ * the server (e.g. due to authz), or user. If no such paths are found then
* @a *server_excluded_subtrees is set to @c NULL.
* Allocate the hash and all items therein from @a result_pool.
*/
svn_error_t *
-svn_wc__db_get_server_excluded_subtrees(apr_hash_t **server_excluded_subtrees,
- svn_wc__db_t *db,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_wc__db_get_excluded_subtrees(apr_hash_t **server_excluded_subtrees,
+ svn_wc__db_t *db,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* Indicate in *IS_MODIFIED whether the working copy has local modifications,
* using DB. Use SCRATCH_POOL for temporary allocations.
@@ -3156,15 +3184,22 @@ svn_wc__db_verify(svn_wc__db_t *db,
apr_pool_t *scratch_pool);
-/* Set *FINAL_ABSPATH to the final moved-to location for LOCAL_ABSPATH
- * after following any and all nested moves or set *FINAL_ABSPATH to
- * NULL if LOCAL_ABSPATH is not moved. */
+/* Possibly need two structures, one with relpaths and with abspaths?
+ * Only exposed for testing at present. */
+struct svn_wc__db_moved_to_t {
+ const char *local_relpath; /* moved-to destination */
+ int op_depth; /* op-root of source */
+};
+
+/* Set *FINAL_ABSPATH to an array of svn_wc__db_moved_to_t for
+ * LOCAL_ABSPATH after following any and all nested moves.
+ * Only exposed for testing at present. */
svn_error_t *
-svn_wc__db_final_moved_to(const char **final_abspath,
- svn_wc__db_t *db,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_wc__db_follow_moved_to(apr_array_header_t **moved_tos,
+ svn_wc__db_t *db,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* @} */
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_pristine.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_pristine.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_pristine.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_pristine.c Tue Jun 26 19:26:49 2012
@@ -523,6 +523,176 @@ svn_wc__db_pristine_get_sha1(const svn_c
return svn_error_trace(svn_sqlite__reset(stmt));
}
+/* Baton for pristine_transfer() */
+struct pristine_transfer_baton
+{
+ svn_wc__db_wcroot_t *src_wcroot;
+ svn_wc__db_wcroot_t *dst_wcroot;
+ svn_cancel_func_t cancel_func;
+ void * cancel_baton;
+
+ /* pristine install baton, filled from pristine_transfer() */
+ struct pristine_install_baton_t ib;
+};
+
+/* Transaction implementation of svn_wc__db_pristine_transfer().
+ Calls itself again to obtain locks in both working copies */
+static svn_error_t *
+pristine_transfer(void *baton, svn_wc__db_wcroot_t *wcroot,
+ const char *local_relpath, apr_pool_t *scratch_pool)
+{
+ struct pristine_transfer_baton *tb = baton;
+ svn_sqlite__stmt_t *stmt;
+ svn_boolean_t have_row;
+
+ /* Is this the initial call or the recursive call? */
+ if (wcroot == tb->dst_wcroot)
+ {
+ /* The initial call: */
+
+ /* Get all the info within a src wcroot lock */
+ SVN_ERR(svn_wc__db_with_txn(tb->src_wcroot, local_relpath,
+ pristine_transfer, tb, scratch_pool));
+
+ /* And do the final install, while we still have the dst lock */
+ if (tb->ib.tempfile_abspath)
+ SVN_ERR(pristine_install_txn(&(tb->ib), tb->dst_wcroot->sdb,
+ scratch_pool));
+ return SVN_NO_ERROR;
+ }
+
+ /* We have a lock on tb->dst_wcroot and tb->src_wcroot */
+
+ /* Get the right checksum if it wasn't passed */
+ if (!tb->ib.sha1_checksum)
+ {
+ SVN_ERR(svn_sqlite__get_statement(&stmt, tb->src_wcroot->sdb,
+ STMT_SELECT_NODE_INFO));
+
+ SVN_ERR(svn_sqlite__bindf(stmt, "is",
+ tb->src_wcroot->wc_id, local_relpath));
+
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+ if (have_row)
+ SVN_ERR(svn_sqlite__column_checksum(&(tb->ib.sha1_checksum), stmt, 6,
+ scratch_pool));
+
+ SVN_ERR(svn_sqlite__reset(stmt));
+
+ if (!tb->ib.sha1_checksum)
+ return SVN_NO_ERROR; /* Nothing to transfer */
+ }
+
+ /* Check if we have the pristine in the destination wcroot */
+ SVN_ERR(svn_sqlite__get_statement(&stmt, tb->dst_wcroot->sdb,
+ STMT_SELECT_PRISTINE));
+ SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, tb->ib.sha1_checksum,
+ scratch_pool));
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+ SVN_ERR(svn_sqlite__reset(stmt));
+
+ /* Destination repository already has this pristine. We're done */
+ if (have_row)
+ return SVN_NO_ERROR;
+
+ /* Verify if the pristine actually exists and get the MD5 in one query */
+ SVN_ERR(svn_sqlite__get_statement(&stmt, tb->src_wcroot->sdb,
+ STMT_SELECT_PRISTINE));
+ SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, tb->ib.sha1_checksum,
+ scratch_pool));
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+ if (!have_row)
+ {
+ return svn_error_createf(SVN_ERR_WC_DB_ERROR, svn_sqlite__reset(stmt),
+ _("The pristine text with checksum '%s' was "
+ "not found"),
+ svn_checksum_to_cstring_display(
+ tb->ib.sha1_checksum, scratch_pool));
+ }
+ SVN_ERR(svn_sqlite__column_checksum(&(tb->ib.md5_checksum), stmt, 0,
+ scratch_pool));
+ SVN_ERR(svn_sqlite__reset(stmt));
+
+ /* We now have read locks in both working copies, so we can safely copy the
+ file to the temp location of the destination working copy */
+ {
+ svn_stream_t *src_stream;
+ svn_stream_t *dst_stream;
+ const char *tmp_abspath;
+ const char *src_abspath;
+
+ SVN_ERR(svn_stream_open_unique(&dst_stream, &tmp_abspath,
+ pristine_get_tempdir(tb->dst_wcroot,
+ scratch_pool,
+ scratch_pool),
+ svn_io_file_del_on_pool_cleanup,
+ scratch_pool, scratch_pool));
+
+ SVN_ERR(get_pristine_fname(&src_abspath, tb->src_wcroot->abspath,
+ tb->ib.sha1_checksum,
+ scratch_pool, scratch_pool));
+
+ SVN_ERR(svn_stream_open_readonly(&src_stream, src_abspath,
+ scratch_pool, scratch_pool));
+
+ /* ### Should we verify the SHA1 or MD5 here, or is that too expensive? */
+ SVN_ERR(svn_stream_copy3(src_stream, dst_stream,
+ tb->cancel_func, tb->cancel_baton,
+ scratch_pool));
+
+ /* And now set the right information to install once we leave the
+ src transaction */
+
+ SVN_ERR(get_pristine_fname(&(tb->ib.pristine_abspath),
+ tb->dst_wcroot->abspath,
+ tb->ib.sha1_checksum,
+ scratch_pool, scratch_pool));
+ tb->ib.tempfile_abspath = tmp_abspath;
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_wc__db_pristine_transfer(svn_wc__db_t *db,
+ const char *src_local_abspath,
+ const svn_checksum_t *checksum,
+ const char *dst_wri_abspath,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *scratch_pool)
+{
+ const char *src_relpath;
+ const char *dst_relpath;
+ struct pristine_transfer_baton tb;
+ memset(&tb, 0, sizeof(tb));
+
+ SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&tb.src_wcroot, &src_relpath,
+ db, src_local_abspath,
+ scratch_pool, scratch_pool));
+ VERIFY_USABLE_WCROOT(tb.src_wcroot);
+ SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&tb.dst_wcroot, &dst_relpath,
+ db, dst_wri_abspath,
+ scratch_pool, scratch_pool));
+ VERIFY_USABLE_WCROOT(tb.dst_wcroot);
+
+ if (tb.src_wcroot == tb.dst_wcroot
+ || tb.src_wcroot->sdb == tb.dst_wcroot->sdb)
+ {
+ return SVN_NO_ERROR; /* Nothing to transfer */
+ }
+
+ tb.cancel_func = cancel_func;
+ tb.cancel_baton = cancel_baton;
+
+ return svn_error_trace(svn_wc__db_with_txn(tb.dst_wcroot, src_relpath,
+ pristine_transfer, &tb,
+ scratch_pool));
+}
+
+
+
/* Remove the file at FILE_ABSPATH in such a way that we could re-create a
* new file of the same name at any time thereafter.
@@ -708,7 +878,6 @@ pristine_cleanup_wcroot(svn_wc__db_wcroo
return SVN_NO_ERROR;
}
-
svn_error_t *
svn_wc__db_pristine_cleanup(svn_wc__db_t *db,
const char *wri_abspath,
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_util.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_util.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_util.c Tue Jun 26 19:26:49 2012
@@ -196,7 +196,12 @@ svn_wc__db_with_txn(svn_wc__db_wcroot_t
void *cb_baton,
apr_pool_t *scratch_pool)
{
- struct txn_baton_t tb = { wcroot, local_relpath, cb_func, cb_baton };
+ struct txn_baton_t tb;
+
+ tb.wcroot = wcroot;
+ tb.local_relpath = local_relpath;
+ tb.cb_func = cb_func;
+ tb.cb_baton = cb_baton;
return svn_error_trace(
svn_sqlite__with_lock(wcroot->sdb, run_txn, &tb, scratch_pool));
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_wcroot.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_wcroot.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_wcroot.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db_wcroot.c Tue Jun 26 19:26:49 2012
@@ -372,6 +372,7 @@ svn_wc__db_wcroot_parse_local_abspath(sv
svn_boolean_t moved_upwards = FALSE;
svn_boolean_t always_check = FALSE;
int wc_format = 0;
+ const char *adm_relpath;
/* ### we need more logic for finding the database (if it is located
### outside of the wcroot) and then managing all of that within DB.
@@ -459,48 +460,60 @@ svn_wc__db_wcroot_parse_local_abspath(sv
database in the right place. If we find it... great! If not, then
peel off some components, and try again. */
+ adm_relpath = svn_wc_get_adm_dir(scratch_pool);
while (TRUE)
{
svn_error_t *err;
+ svn_node_kind_t adm_subdir_kind;
- /* We always open the database in read/write mode. If the database
- isn't writable in the filesystem, SQLite will internally open
- it as read-only, and we'll get an error if we try to do a write
- operation.
-
- We could decide what to do on a per-operation basis, but since
- we're caching database handles, it make sense to be as permissive
- as the filesystem allows. */
- err = svn_wc__db_util_open_db(&sdb, local_abspath, SDB_FILE,
- svn_sqlite__mode_readwrite, NULL,
- db->state_pool, scratch_pool);
- if (err == NULL)
+ const char *adm_subdir = svn_dirent_join(local_abspath, adm_relpath,
+ scratch_pool);
+
+ SVN_ERR(svn_io_check_path(adm_subdir, &adm_subdir_kind, scratch_pool));
+
+ if (adm_subdir_kind == svn_node_dir)
{
+ /* We always open the database in read/write mode. If the database
+ isn't writable in the filesystem, SQLite will internally open
+ it as read-only, and we'll get an error if we try to do a write
+ operation.
+
+ We could decide what to do on a per-operation basis, but since
+ we're caching database handles, it make sense to be as permissive
+ as the filesystem allows. */
+ err = svn_wc__db_util_open_db(&sdb, local_abspath, SDB_FILE,
+ svn_sqlite__mode_readwrite, NULL,
+ db->state_pool, scratch_pool);
+ if (err == NULL)
+ {
#ifdef SVN_DEBUG
- /* Install self-verification trigger statements. */
- SVN_ERR(svn_sqlite__exec_statements(sdb, STMT_VERIFICATION_TRIGGERS));
+ /* Install self-verification trigger statements. */
+ SVN_ERR(svn_sqlite__exec_statements(sdb,
+ STMT_VERIFICATION_TRIGGERS));
#endif
- break;
- }
- if (err->apr_err != SVN_ERR_SQLITE_ERROR
- && !APR_STATUS_IS_ENOENT(err->apr_err))
- return svn_error_trace(err);
- svn_error_clear(err);
-
- /* If we have not moved upwards, then check for a wc-1 working copy.
- Since wc-1 has a .svn in every directory, and we didn't find one
- in the original directory, then we aren't looking at a wc-1.
-
- If the original path is not present, then we have to check on every
- iteration. The content may be the immediate parent, or possibly
- five ancetors higher. We don't test for directory presence (just
- for the presence of subdirs/files), so we don't know when we can
- stop checking ... so just check always. */
- if (!moved_upwards || always_check)
- {
- SVN_ERR(get_old_version(&wc_format, local_abspath, scratch_pool));
- if (wc_format != 0)
- break;
+ break;
+ }
+ if (err->apr_err != SVN_ERR_SQLITE_ERROR
+ && !APR_STATUS_IS_ENOENT(err->apr_err))
+ return svn_error_trace(err);
+ svn_error_clear(err);
+
+ /* If we have not moved upwards, then check for a wc-1 working copy.
+ Since wc-1 has a .svn in every directory, and we didn't find one
+ in the original directory, then we aren't looking at a wc-1.
+
+ If the original path is not present, then we have to check on every
+ iteration. The content may be the immediate parent, or possibly
+ five ancetors higher. We don't test for directory presence (just
+ for the presence of subdirs/files), so we don't know when we can
+ stop checking ... so just check always. */
+ if (!moved_upwards || always_check)
+ {
+ SVN_ERR(get_old_version(&wc_format, local_abspath,
+ scratch_pool));
+ if (wc_format != 0)
+ break;
+ }
}
/* We couldn't open the SDB within the specified directory, so
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.c Tue Jun 26 19:26:49 2012
@@ -715,6 +715,8 @@ run_file_install(svn_wc__db_t *db,
scratch_pool));
/* No need to set exec or read-only flags on special files. */
+
+ /* ### Shouldn't this record a timestamp and size, etc.? */
return SVN_NO_ERROR;
}
@@ -781,12 +783,27 @@ run_file_install(svn_wc__db_t *db,
}
/* Tweak the on-disk file according to its properties. */
- if (props
- && (apr_hash_get(props, SVN_PROP_NEEDS_LOCK, APR_HASH_KEY_STRING)
- || apr_hash_get(props, SVN_PROP_EXECUTABLE, APR_HASH_KEY_STRING)))
- {
- SVN_ERR(svn_wc__sync_flags_with_props(NULL, db, local_abspath,
- scratch_pool));
+#ifndef WIN32
+ if (props && apr_hash_get(props, SVN_PROP_EXECUTABLE, APR_HASH_KEY_STRING))
+ SVN_ERR(svn_io_set_file_executable(local_abspath, TRUE, FALSE,
+ scratch_pool));
+#endif
+
+ /* Note that this explicitly checks the pristine properties, to make sure
+ that when the lock is locally set (=modification) it is not read only */
+ if (props && apr_hash_get(props, SVN_PROP_NEEDS_LOCK, APR_HASH_KEY_STRING))
+ {
+ svn_wc__db_status_t status;
+ svn_wc__db_lock_t *lock;
+ SVN_ERR(svn_wc__db_read_info(&status, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, &lock, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ db, local_abspath,
+ scratch_pool, scratch_pool));
+
+ if (!lock && status != svn_wc__db_status_added)
+ SVN_ERR(svn_io_set_file_read_only(local_abspath, FALSE, scratch_pool));
}
if (use_commit_times)
@@ -1249,32 +1266,6 @@ run_record_fileinfo(svn_wc__db_t *db,
scratch_pool));
}
-
-svn_error_t *
-svn_wc__wq_build_record_fileinfo(svn_skel_t **work_item,
- svn_wc__db_t *db,
- const char *local_abspath,
- apr_time_t set_time,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- const char *local_relpath;
- *work_item = svn_skel__make_empty_list(result_pool);
-
- SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
-
- SVN_ERR(svn_wc__db_to_relpath(&local_relpath, db, local_abspath,
- local_abspath, result_pool, scratch_pool));
-
- if (set_time)
- svn_skel__prepend_int(set_time, *work_item, result_pool);
-
- svn_skel__prepend_str(local_relpath, *work_item, result_pool);
- svn_skel__prepend_str(OP_RECORD_FILEINFO, *work_item, result_pool);
-
- return SVN_NO_ERROR;
-}
-
/* ------------------------------------------------------------------------ */
/* OP_TMP_SET_TEXT_CONFLICT_MARKERS */
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.h?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.h (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/workqueue.h Tue Jun 26 19:26:49 2012
@@ -122,7 +122,7 @@ svn_wc__wq_build_file_remove(svn_skel_t
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-/* Set *WORK_ITEM to a new work item that describes a moves of
+/* Set *WORK_ITEM to a new work item that describes a move of
a file or directory from SRC_ABSPATH to DST_ABSPATH, ready for
storing in the working copy managing DST_ABSPATH.
@@ -182,22 +182,6 @@ svn_wc__wq_build_prej_install(svn_skel_t
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-/* Set *WORK_ITEM to a new 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.
-
- If SET_TIME is not 0, set LOCAL_ABSPATH's last modified time to this
- time and after that record the actual file time.
-
- ### it is unclear whether this should survive. */
-svn_error_t *
-svn_wc__wq_build_record_fileinfo(svn_skel_t **work_item,
- svn_wc__db_t *db,
- const char *local_abspath,
- apr_time_t set_time,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
/* Set *WORK_ITEM to a new work item that will remove all the data of
the BASE_NODE of LOCAL_ABSPATH and all it's descendants, but keeping
any WORKING_NODE data.
Modified: subversion/branches/inheritable-props/subversion/mod_authz_svn/mod_authz_svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/mod_authz_svn/mod_authz_svn.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/mod_authz_svn/mod_authz_svn.c (original)
+++ subversion/branches/inheritable-props/subversion/mod_authz_svn/mod_authz_svn.c Tue Jun 26 19:26:49 2012
@@ -235,7 +235,7 @@ convert_case(char *text, svn_boolean_t t
char *c = text;
while (*c)
{
- *c = (to_uppercase ? apr_toupper(*c) : apr_tolower(*c));
+ *c = (char)(to_uppercase ? apr_toupper(*c) : apr_tolower(*c));
++c;
}
}
Modified: subversion/branches/inheritable-props/subversion/mod_dav_svn/liveprops.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/mod_dav_svn/liveprops.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/mod_dav_svn/liveprops.c (original)
+++ subversion/branches/inheritable-props/subversion/mod_dav_svn/liveprops.c Tue Jun 26 19:26:49 2012
@@ -75,7 +75,8 @@ enum {
SVN_PROPID_baseline_relative_path = 1,
SVN_PROPID_md5_checksum,
SVN_PROPID_repository_uuid,
- SVN_PROPID_deadprop_count
+ SVN_PROPID_deadprop_count,
+ SVN_PROPID_sha1_checksum
};
@@ -106,6 +107,7 @@ static const dav_liveprop_spec props[] =
SVN_RO_SVN_PROP(md5_checksum, md5-checksum),
SVN_RO_SVN_PROP(repository_uuid, repository-uuid),
SVN_RO_SVN_PROP(deadprop_count, deadprop-count),
+ SVN_RO_SVN_PROP(sha1_checksum, sha1-checksum),
{ 0 } /* sentinel */
};
@@ -668,6 +670,7 @@ insert_prop_internal(const dav_resource
break;
case SVN_PROPID_md5_checksum:
+ case SVN_PROPID_sha1_checksum:
if ((! resource->collection)
&& (! resource->baselined)
&& (resource->type == DAV_RESOURCE_TYPE_REGULAR
@@ -676,11 +679,21 @@ insert_prop_internal(const dav_resource
{
svn_node_kind_t kind;
svn_checksum_t *checksum;
+ svn_checksum_kind_t checksum_kind;
+
+ if (propid == SVN_PROPID_md5_checksum)
+ {
+ checksum_kind = svn_checksum_md5;
+ }
+ else
+ {
+ checksum_kind = svn_checksum_sha1;
+ }
serr = svn_fs_check_path(&kind, resource->info->root.root,
resource->info->repos_path, scratch_pool);
if (!serr && kind == svn_node_file)
- serr = svn_fs_file_checksum(&checksum, svn_checksum_md5,
+ serr = svn_fs_file_checksum(&checksum, checksum_kind,
resource->info->root.root,
resource->info->repos_path, TRUE,
scratch_pool);
@@ -688,8 +701,11 @@ insert_prop_internal(const dav_resource
{
ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
resource->info->r,
- "Can't fetch or compute MD5 checksum of '%s': "
+ "Can't fetch or compute %s checksum of '%s': "
"%s",
+ checksum_kind == svn_checksum_md5
+ ? "MD5"
+ : "SHA1",
resource->info->repos_path,
serr->message);
svn_error_clear(serr);
Modified: subversion/branches/inheritable-props/subversion/mod_dav_svn/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/mod_dav_svn/lock.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/mod_dav_svn/lock.c (original)
+++ subversion/branches/inheritable-props/subversion/mod_dav_svn/lock.c Tue Jun 26 19:26:49 2012
@@ -766,11 +766,9 @@ append_locks(dav_lockdb *lockdb,
"Anonymous lock creation is not allowed.");
}
else if (serr && (serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE ||
- serr->apr_err == SVN_ERR_FS_PATH_ALREADY_LOCKED ||
serr->apr_err == SVN_ERR_FS_NO_SUCH_LOCK ||
serr->apr_err == SVN_ERR_FS_LOCK_EXPIRED ||
- serr->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN ||
- serr->apr_err == SVN_ERR_FS_OUT_OF_DATE))
+ SVN_ERR_IS_LOCK_ERROR(serr)))
return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
"Failed to create new lock.",
resource->pool);
@@ -966,11 +964,9 @@ refresh_locks(dav_lockdb *lockdb,
"Anonymous lock refreshing is not allowed.");
}
else if (serr && (serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE ||
- serr->apr_err == SVN_ERR_FS_PATH_ALREADY_LOCKED ||
serr->apr_err == SVN_ERR_FS_NO_SUCH_LOCK ||
serr->apr_err == SVN_ERR_FS_LOCK_EXPIRED ||
- serr->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN ||
- serr->apr_err == SVN_ERR_FS_OUT_OF_DATE))
+ SVN_ERR_IS_LOCK_ERROR(serr)))
return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
"Failed to refresh existing lock.",
resource->pool);
Modified: subversion/branches/inheritable-props/subversion/mod_dav_svn/mirror.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/mod_dav_svn/mirror.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/mod_dav_svn/mirror.c (original)
+++ subversion/branches/inheritable-props/subversion/mod_dav_svn/mirror.c Tue Jun 26 19:26:49 2012
@@ -54,6 +54,16 @@ static void proxy_request_fixup(request_
(char *)NULL),
r->pool);
r->handler = "proxy-server";
+
+ /* ### FIXME: Seems we could avoid adding some or all of these
+ filters altogether when the root_dir (that is, the slave's
+ location, relative to the server root) and path portion of
+ the master_uri (the master's location, relative to the
+ server root) are identical, rather than adding them here
+ and then trying to remove them later. (See the filter
+ removal logic in dav_svn__location_in_filter() and
+ dav_svn__location_body_filter(). -- cmpilato */
+
ap_add_output_filter("LocationRewrite", NULL, r, r->connection);
ap_add_output_filter("ReposRewrite", NULL, r, r->connection);
ap_add_input_filter("IncomingRewrite", NULL, r, r->connection);
Modified: subversion/branches/inheritable-props/subversion/mod_dav_svn/reports/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/mod_dav_svn/reports/update.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/mod_dav_svn/reports/update.c (original)
+++ subversion/branches/inheritable-props/subversion/mod_dav_svn/reports/update.c Tue Jun 26 19:26:49 2012
@@ -45,6 +45,7 @@
#include "../dav_svn.h"
+/* State baton for the overall update process. */
typedef struct update_ctx_t {
const dav_resource *resource;
@@ -89,22 +90,38 @@ typedef struct update_ctx_t {
} update_ctx_t;
+
+/* State baton for a file or directory. */
typedef struct item_baton_t {
apr_pool_t *pool;
update_ctx_t *uc;
- struct item_baton_t *parent; /* the parent of this item. */
- const char *name; /* the single-component name of this item */
- const char *path; /* a telescoping extension of uc->anchor */
- const char *path2; /* a telescoping extension of uc->dst_path */
- const char *path3; /* a telescoping extension of uc->dst_path
- without dst_path as prefix. */
-
- const char *base_checksum; /* base_checksum (from apply_textdelta) */
-
- svn_boolean_t text_changed; /* Did the file's contents change? */
- svn_boolean_t added; /* File added? (Implies text_changed.) */
- svn_boolean_t copyfrom; /* File copied? */
- apr_array_header_t *removed_props; /* array of const char * prop names */
+
+ /* Uplink -- the parent of this item. */
+ struct item_baton_t *parent;
+
+ /* Single-component name of this item. */
+ const char *name;
+
+ /* Telescoping extension paths ... */
+ const char *path; /* ... of uc->anchor. */
+ const char *path2; /* ... of uc->dst_path. */
+ const char *path3; /* ... uc->dst_path, without dst_path prefix. */
+
+ /* Base_checksum (from apply_textdelta). */
+ const char *base_checksum;
+
+ /* Did the file's contents change? */
+ svn_boolean_t text_changed;
+
+ /* File/dir added? (Implies text_changed for files.) */
+ svn_boolean_t added;
+
+ /* File/dir copied? */
+ svn_boolean_t copyfrom;
+
+ /* Array of const char * names of removed properties. (Used only
+ for copied files/dirs in skelta mode.) */
+ apr_array_header_t *removed_props;
} item_baton_t;
@@ -565,10 +582,10 @@ upd_add_directory(const char *path,
static svn_error_t *
upd_open_directory(const char *path,
- void *parent_baton,
- svn_revnum_t base_revision,
- apr_pool_t *pool,
- void **child_baton)
+ void *parent_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *pool,
+ void **child_baton)
{
return open_helper(TRUE /* is_dir */,
path, parent_baton, base_revision, pool, child_baton);
@@ -638,16 +655,26 @@ upd_change_xxx_prop(void *baton,
qname));
}
}
- else if (!value) /* This is an addition in 'skelta' mode so there is no
- need for an inline response since property fetching
- is implied in addition. We still need to cache
- property removals because a copied path might
- have removed properties. */
+ else if (!value)
{
- if (! b->removed_props)
- b->removed_props = apr_array_make(b->pool, 1, sizeof(name));
+ /* This is an addition in "skelta" (that is, "not send-all")
+ mode so there is no strict need for an inline response.
+ Clients will assume that added objects need all to have all
+ their properties explicitly fetched from the server. */
+
+ /* Now, if the object is actually a copy, we'll still need to
+ cache (and later transmit) property removals, because
+ fetching the object's current property set alone isn't
+ sufficient to communicate the fact that additional properties
+ were, in fact, removed from the copied base object in order
+ to arrive at that set. */
+ if (b->copyfrom)
+ {
+ if (! b->removed_props)
+ b->removed_props = apr_array_make(b->pool, 1, sizeof(name));
- APR_ARRAY_PUSH(b->removed_props, const char *) = qname;
+ APR_ARRAY_PUSH(b->removed_props, const char *) = qname;
+ }
}
return SVN_NO_ERROR;
Modified: subversion/branches/inheritable-props/subversion/mod_dav_svn/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/mod_dav_svn/repos.c?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/mod_dav_svn/repos.c (original)
+++ subversion/branches/inheritable-props/subversion/mod_dav_svn/repos.c Tue Jun 26 19:26:49 2012
@@ -1573,7 +1573,7 @@ static const char *get_entry(apr_pool_t
for (cp = parm; (*cp && !svn_ctype_isspace(*cp) && *cp != '='); ++cp)
{
- *cp = apr_tolower(*cp);
+ *cp = (char)apr_tolower(*cp);
}
if (!*cp)
@@ -3043,14 +3043,12 @@ set_headers(request_rec *r, const dav_re
apr_table_setn(r->headers_out, "ETag",
dav_svn__getetag(resource, resource->pool));
-#if 0
/* As version resources don't change, encourage caching. */
- /* ### FIXME: This conditional is wrong -- type is often REGULAR,
- ### and the resource doesn't seem to be baselined. */
- if (resource->type == DAV_RESOURCE_TYPE_VERSION)
+ if ((resource->type == DAV_RESOURCE_TYPE_REGULAR
+ && resource->versioned && !resource->collection)
+ || resource->type == DAV_RESOURCE_TYPE_VERSION)
/* Cache resource for one week (specified in seconds). */
apr_table_setn(r->headers_out, "Cache-Control", "max-age=604800");
-#endif
/* we accept byte-ranges */
apr_table_setn(r->headers_out, "Accept-Ranges", "bytes");
Modified: subversion/branches/inheritable-props/subversion/po/de.po
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/po/de.po?rev=1354186&r1=1354185&r2=1354186&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/po/de.po [UTF-8] (original)
+++ subversion/branches/inheritable-props/subversion/po/de.po [UTF-8] Tue Jun 26 19:26:49 2012
@@ -50,6 +50,7 @@
# merge tool Konflikteditor??? Aktuell: Werkzeug zum Zusammenführen!?
# note Hinweis
# obstruct(ed) behindern / behindert
+# peg revision Fix-Revision
# property Eigenschaft
# PROPNAME PROPNAME
# PROPVAL PROPWERT
@@ -492,7 +493,7 @@ msgstr "Die vorhergehende Operation wurd
#: ../include/svn_error_codes.h:518
msgid "This operation can not be performed with just this depth."
-msgstr ""
+msgstr "Diese Operation kann nicht allein mit dieser Tiefe durch geführt werden."
#: ../include/svn_error_codes.h:524
msgid "General filesystem error"
@@ -1187,11 +1188,11 @@ msgstr "Nicht unterstütztes Schema in S
#: ../include/svn_error_codes.h:1340
msgid "The SQLite db is busy"
-msgstr ""
+msgstr "Die SQLite-Datenbank ist beschäftigt"
#: ../include/svn_error_codes.h:1345
msgid "SQLite busy at transaction rollback; resetting all busy SQLite statements to allow rollback"
-msgstr ""
+msgstr "SQLite ist mit dem Rollback einer Transaktion beschäftigt; Alle SQLite-Anweisungen werden für Rollback zurückgesetzt"
#: ../include/svn_error_codes.h:1352
msgid "Error parsing arguments"
@@ -1250,7 +1251,7 @@ msgstr "Assert-Anweisung schlug fehl"
#: ../libsvn_auth_gnome_keyring/gnome_keyring.c:554
#: ../libsvn_auth_gnome_keyring/gnome_keyring.c:610
msgid "GNOME Keyring is locked and we are non-interactive"
-msgstr ""
+msgstr "GNOME-Schlüsselring ist gesperrt und wir sind nicht-interaktiv"
#: ../libsvn_client/add.c:488 ../libsvn_wc/adm_ops.c:881
#: ../libsvn_wc/workqueue.c:1658 ../libsvn_wc/workqueue.c:1740
@@ -1318,7 +1319,7 @@ msgstr "»%s« verweist auf ein Verzeich
#: ../libsvn_client/cat.c:89
#, c-format
msgid "'%s' has no base revision until it is committed"
-msgstr ""
+msgstr "»%s« hat keine Basisrevision, bis es übertragen wurde"
#: ../libsvn_client/cat.c:153 ../libsvn_client/export.c:234
msgid "(local)"
@@ -1650,11 +1651,9 @@ msgstr "Pfad »%s« hat keine URL"
msgid "Not all required revisions are specified"
msgstr "Es sind nicht alle erforderlichen Revisionen angegeben"
-# Was soll eine 'pegged diff' sein?
-# Gemeint ist, wenn bei einem svn diff ein @REV angegeben wurde (also die Revision, in der die Datei zuerst gesucht wird)
#: ../libsvn_client/diff.c:1410
msgid "At least one revision must be non-local for a pegged diff"
-msgstr "Wenn eine Basisrevision angegeben wurde, muss zumindest eine Revision auf dem Server sein"
+msgstr "Bei einem Vergleich mit Fix-Revision muss zumindest eine Revision auf dem Server sein"
#: ../libsvn_client/diff.c:1518 ../libsvn_client/diff.c:1530
#, c-format
@@ -1899,7 +1898,7 @@ msgstr ""
#: ../libsvn_client/merge.c:5820
msgid "Merge tracking not allowed with missing subtrees; try restoring these items first:\n"
-msgstr ""
+msgstr "Zusammenführungsverfolgung nicht erlaubt bei fehlenden Unterbäumen; versuchen Sie diese Elemente erst wiederherzustellen:\n"
#: ../libsvn_client/merge.c:8502
msgid "Use of two URLs is not compatible with mergeinfo modification"
@@ -1967,7 +1966,7 @@ msgstr ""
#: ../libsvn_client/mergeinfo.c:1721
msgid "Only depths 'infinity' and 'empty' are currently supported"
-msgstr ""
+msgstr "Nur Tiefenangaben von »infinity« und »empty« werden momentan unterstützt"
#: ../libsvn_client/patch.c:243
#, c-format
@@ -3416,7 +3415,7 @@ msgstr "»%s« in Revision %ld hat keine
#: ../libsvn_ra/compat.c:844 ../libsvn_ra/ra_loader.c:1201
#, c-format
msgid "Invalid peg revision %ld"
-msgstr "Ungültige Peg-Revision %ld"
+msgstr "Ungültige Fix-Revision %ld"
#: ../libsvn_ra/compat.c:847 ../libsvn_ra/ra_loader.c:1204
#: ../libsvn_repos/rev_hunt.c:208 ../libsvn_repos/rev_hunt.c:323
@@ -3426,7 +3425,7 @@ msgstr "Ungültige Endrevision %ld"
#: ../libsvn_ra/compat.c:850 ../libsvn_ra/ra_loader.c:1207
msgid "Peg revision must precede end revision"
-msgstr "Peg-Revision muss vor der Endrevision liegen"
+msgstr "Fix-Revision muss vor der Endrevision liegen"
#: ../libsvn_ra/ra_loader.c:234
#, c-format
@@ -4027,7 +4026,7 @@ msgstr ""
#: ../libsvn_ra_serf/commit.c:307
msgid "No Location header received"
-msgstr ""
+msgstr "Kein »Location« Kopf empfangen"
#: ../libsvn_ra_serf/commit.c:438
#, c-format
@@ -4169,6 +4168,8 @@ msgid ""
"No more credentials or we tried too many times.\n"
"Authentication failed"
msgstr ""
+"Keine weiteren Zugangsdaten oder zu viele Versuche.\n"
+"Anmeldung fehlgeschlagen"
#: ../libsvn_ra_serf/util.c:1421
msgid "Proxy authentication failed"
@@ -4234,7 +4235,7 @@ msgstr "Kann Tunnel nicht erzeugen"
#: ../libsvn_ra_svn/client.c:525
msgid "To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file."
-msgstr ""
+msgstr "Um Probleme mit der Konfiguration von SSH zu untersuchen, entfernen Sie die Option »-q« von »ssh« im Abschnitt »[tunnels]« Ihrer Konfigurationsdatei für Subversion."
#: ../libsvn_ra_svn/client.c:543
#, c-format
@@ -4644,12 +4645,16 @@ msgid ""
"WARNING: The range of revisions dumped contained references to\n"
"WARNING: copy sources outside that range.\n"
msgstr ""
+"WARNUNG: Der ausgegebene Revisionsbereich enthält Verweise auf\n"
+"WARNUNG: Quellpfade außerhalb dieses Bereichs.\n"
#: ../libsvn_repos/dump.c:1131
msgid ""
"WARNING: The range of revisions dumped contained mergeinfo\n"
"WARNING: which reference revisions outside that range.\n"
msgstr ""
+"WARNUNG: Der ausgegebene Revisionsbereich enthält Zusammenführungsinformationen\n"
+"WARNUNG: die auf Revisionen außerhalb dieses Bereichs verweisen.\n"
#: ../libsvn_repos/dump.c:1188
#, c-format
@@ -5780,7 +5785,7 @@ msgstr "»%s« ist kein gültiger Subver
#: ../libsvn_subr/opt.c:964
#, c-format
msgid "'%s' is just a peg revision. Maybe try '%s@' instead?"
-msgstr ""
+msgstr "»%s« ist nur eine Fix-Revision. Meinten Sie stattdessen »%s@«?"
#: ../libsvn_subr/opt.c:996
#, c-format
@@ -5812,6 +5817,11 @@ msgid ""
"Subversion is open source software, see http://subversion.apache.org/\n"
"\n"
msgstr ""
+"Copyright (C) 2010 The Apache Software Foundation.\n"
+"Diese Software besteht aus Beiträgen vieler Personen;\n"
+"siehe Datei NOTICE für mehr Informationen.\n"
+"Subversion ist Open Source Software, siehe http://subversion.apache.org/\n"
+"\n"
#: ../libsvn_subr/path.c:958
#, c-format
@@ -6046,7 +6056,7 @@ msgstr "Erwartete SQLite-Datenbank wurde
#: ../libsvn_subr/sqlite.c:1125
#, c-format
msgid "SQLite hotcopy failed for %s"
-msgstr ""
+msgstr "SQLite-Hotcopy fehlgeschlagen für »%s«"
#: ../libsvn_subr/subst.c:1640 ../libsvn_wc/props.c:1950
#, c-format
@@ -6061,12 +6071,12 @@ msgstr "Konnte »%s« nicht in Zahl umwa
#: ../libsvn_subr/svn_string.c:712
#, c-format
msgid "Number '%s' is out of range '[%llu, %llu]'"
-msgstr ""
+msgstr "Zahl »%s« ist außerhalb des zulässigen Bereichs »[%llu, %llu]«"
#: ../libsvn_subr/svn_string.c:756
#, c-format
msgid "Number '%s' is out of range '[%lld, %lld]'"
-msgstr ""
+msgstr "Zahl »%s« ist außerhalb des zulässigen Bereichs »[%lld, %lld]«"
#. Human explanatory part, generated by apr_strftime as "Sat, 01 Jan 2000"
#: ../libsvn_subr/time.c:85
@@ -6227,17 +6237,17 @@ msgstr "Basisknoten von »%s« ist keine
#: ../libsvn_wc/adm_files.c:322
#, c-format
msgid "Can only get the pristine contents of files; '%s' is not a file"
-msgstr ""
+msgstr "Kann nur ursprünglichen Inhalt von Dateien holen; »%s« ist keine Datei"
#: ../libsvn_wc/adm_files.c:348
#, c-format
msgid "Cannot get the pristine contents of '%s' because its delete is already committed"
-msgstr ""
+msgstr "Kann den ursprünglichen Inhalt von »%s« nicht holen, da sein Löschen schon übertragen wurde"
#: ../libsvn_wc/adm_files.c:356
#, c-format
msgid "Cannot get the pristine contents of '%s' because it has an unexpected status"
-msgstr ""
+msgstr "Kann den ursprünglichen Inhalt von »%s« nicht holen, da es einen unerwarteten Status hat"
#: ../libsvn_wc/adm_files.c:639
#, c-format
@@ -6269,7 +6279,7 @@ msgstr ""
#: ../libsvn_wc/adm_ops.c:813 ../libsvn_wc/update_editor.c:5614
#, c-format
msgid "Can't schedule an addition of '%s' below a not-directory node"
-msgstr ""
+msgstr "Kann »%s« nicht zum Hinzufügen unter einem Knoten vorsehen, der kein Verzeichnis ist"
#: ../libsvn_wc/adm_ops.c:872
#, c-format
@@ -6284,17 +6294,17 @@ msgstr "Die URL »%s« hat eine andere P
#: ../libsvn_wc/adm_ops.c:1068
#, c-format
msgid "Can't schedule the working copy at '%s' from repository '%s' with uuid '%s' for addition under a working copy from repository '%s' with uuid '%s'."
-msgstr ""
+msgstr "Kann Arbeitkopie »%s« des Projektarchivs »%s« mit UUID »%s« nicht zum Hinzufügen unter einer Arbeitskopie des Projektarchivs »%s« mit UUID »%s« vorsehen."
#: ../libsvn_wc/adm_ops.c:1082
#, c-format
msgid "Can't add '%s' with URL '%s', but with the data from '%s'"
-msgstr ""
+msgstr "Kann »%s« mit URL »%s« aber den Daten von »%s« nicht hinzufügen"
#: ../libsvn_wc/adm_ops.c:1313
#, c-format
msgid "Can't revert '%s' with this depth, as that requires reverting '%s'."
-msgstr ""
+msgstr "Kann »%s« mit dieser Tiefe nicht zurücksetzen, da dies das Zurücksetzen von »%s« erfordert."
#: ../libsvn_wc/adm_ops.c:1414
#, c-format
@@ -6333,7 +6343,7 @@ msgstr "»%s« ist kein Verzeichnis eine
#: ../libsvn_wc/cleanup.c:64
msgid "Log format too old, please use Subversion 1.6 or earlier"
-msgstr ""
+msgstr "Log-Format zu alt, bitte verwenden Sie Subversion 1.6 oder älter"
#: ../libsvn_wc/conflicts.c:299
msgid "Invalid 'conflict_result' argument"
@@ -6342,7 +6352,7 @@ msgstr "Ungültiger Parameter »conflict
#: ../libsvn_wc/conflicts.c:409
#, c-format
msgid "Tree conflicts can only be resolved to 'working' state; '%s' not resolved"
-msgstr ""
+msgstr "Baumkonflikte können nur zum Zustand »working« aufgelöst werden; Konflikt in »%s« nicht aufgelöst"
#: ../libsvn_wc/copy.c:78
#, c-format
@@ -6752,7 +6762,7 @@ msgstr "Datei »%s« hat die MIME-Typ Ei
#: ../libsvn_wc/props.c:2000
#, c-format
msgid "Can't set properties on '%s': invalid status for updating properties."
-msgstr ""
+msgstr "Kann Eigenschaften für »%s« nicht setzen: ungültiger Status beim Aktualisieren von Eigenschaften"
#: ../libsvn_wc/props.c:2063
msgid "Failed to load current properties"
@@ -6821,7 +6831,7 @@ msgstr "Kann eine einzelne Datei nicht u
#: ../libsvn_wc/relocate.c:136
#, c-format
msgid "Invalid source URL prefix: '%s' (does not overlap target's URL '%s')"
-msgstr ""
+msgstr "Ungültiger Prefix der Quell-URL: »%s« (Keine Überlappung mit Ziel-URL »%s«)"
#: ../libsvn_wc/relocate.c:146 ../libsvn_wc/relocate.c:151
#, c-format
@@ -6949,26 +6959,26 @@ msgstr "Fehlendes Zeilenende in Datei »
#: ../libsvn_wc/upgrade.c:601
#, c-format
msgid "Working copy '%s' can't be upgraded because the repository root is not available and can't be retrieved"
-msgstr ""
+msgstr "Arbeitskopie »%s« kann nicht in ein neueres Format gebracht werden, da die Wurzel des Projektarchivs nicht verfügbar ist und nicht bestimmt werden kann"
#: ../libsvn_wc/upgrade.c:608
#, c-format
msgid "Working copy '%s' can't be upgraded because the repository uuid is not available and can't be retrieved"
-msgstr ""
+msgstr "Arbeitskopie »%s« kann nicht in ein neueres Format gebracht werden, da die UUID des Projektarchivs nicht verfügbar ist und nicht bestimmt werden kann"
#: ../libsvn_wc/upgrade.c:615
#, c-format
msgid "Working copy '%s' can't be upgraded because it doesn't have a url"
-msgstr ""
+msgstr "Arbeitskopie »%s« kann nicht in ein neueres Format gebracht werden, da sie keine URL hat"
#: ../libsvn_wc/upgrade.c:1127
msgid "Cannot upgrade with existing logs; please run 'svn cleanup' with Subversion 1.6"
-msgstr ""
+msgstr "Kann die Arbeitskopie nicht in ein neues Format bringen; bitte führen Sie »svn cleanup« mit Subversion 1.6 aus"
#: ../libsvn_wc/upgrade.c:1355
#, c-format
msgid "The working copy '%s' is at format 18; use 'tools/dev/wc-ng/bump-to-19.py' to upgrade it"
-msgstr ""
+msgstr "Die Arbeitskopie »%s« hat das Format 18; verwenden Sie »tools/dev/wc-ng/bump-to-19.py« um es in ein neues Format zu bringen"
#: ../libsvn_wc/upgrade.c:1545
#, c-format
@@ -7018,7 +7028,7 @@ msgstr "Der Ursprungstext mit der Prüfs
#: ../libsvn_wc/wc_db.c:3036 ../libsvn_wc/wc_db.c:3258
#, c-format
msgid "Cannot copy '%s' excluded by server"
-msgstr ""
+msgstr "Kann vom Server ausgeschlossenes »%s« nicht kopieren"
#: ../libsvn_wc/wc_db.c:3042
#, c-format
@@ -7038,7 +7048,7 @@ msgstr "Fehlerhafte Daten für »%s«"
#: ../libsvn_wc/wc_db.c:6603
#, c-format
msgid "Could not find node '%s' for recording file information."
-msgstr ""
+msgstr "Knoten »%s« für Aufzeichnung von Dateiinformationen nicht gefunden."
#: ../libsvn_wc/wc_db.c:6863 ../libsvn_wc/wc_db.c:6965
#, c-format
@@ -7053,7 +7063,7 @@ msgstr "Erwartete, dass Knoten »%s« ge
#: ../libsvn_wc/wc_db.c:7554
#, c-format
msgid "The properties of '%s' are in an indeterminate state and cannot be upgraded. See issue #2530."
-msgstr ""
+msgstr "Die Eigenschaften von »%s« sind in einem unbestimmten Zustand und können nicht in ein neues Format gebreacht werden. Siehe Fehlerbericht #2530."
#: ../libsvn_wc/wc_db.c:7643
#, c-format
@@ -7107,7 +7117,7 @@ msgstr ""
#: ../libsvn_wc/wc_db_pdh.c:265
msgid "Cleanup with an older 1.7 client before upgrading with this client"
-msgstr ""
+msgstr "Starten Sie »svn cleanup« mit einem älteren 1.7 Client bevor Sie mit diesem Client operieren"
# CHECKME: What's WCROOT? A variable or short for "working copy root"?
#: ../libsvn_wc/wc_db_pdh.c:526
@@ -7532,7 +7542,7 @@ msgstr "Name: %s\n"
#: ../svn/info-cmd.c:265
#, c-format
msgid "Working Copy Root Path: %s\n"
-msgstr ""
+msgstr "Wurzelpfad der Arbeitskopie: %s\n"
#: ../svn/info-cmd.c:270
#, c-format
@@ -7783,7 +7793,7 @@ msgstr "Zusammengeführt mittels:"
#: ../svn/log-cmd.c:296 ../svn/log-cmd.c:373
#, c-format
msgid "\n"
-msgstr ""
+msgstr "\n"
#: ../svn/log-cmd.c:573
msgid "'with-all-revprops' option only valid in XML mode"
@@ -7809,15 +7819,15 @@ msgstr "»quiet« und »diff« schließe
#: ../svn/log-cmd.c:598
msgid "'diff-cmd' option requires 'diff' option"
-msgstr ""
+msgstr "Option »diff-cmd« erfordert Option »diff«"
#: ../svn/log-cmd.c:602
msgid "'internal-diff' option requires 'diff' option"
-msgstr ""
+msgstr "Option »internal-diff« erfordert Option »diff«"
#: ../svn/log-cmd.c:606
msgid "'extensions' option requires 'diff' option"
-msgstr ""
+msgstr "Option »extensions« erfordert Option »diff«"
# TODO: Duplicated message!!!!
#: ../svn/log-cmd.c:625
@@ -9086,7 +9096,7 @@ msgstr ""
" Revisionsmarkern und einer URL bestehen. Die Reihenfolge der drei\n"
" Elemente führt zu verschiedenem Verhalten. Subversion 1.4 und älter\n"
" unterstützt nur die folgenden Formate und die URLs können keine\n"
-" Peg-Revisionen haben:\n"
+" Fix-Revisionen haben:\n"
" foo http://example.org/repos/zig\n"
" foo/bar -r 1234 http://example.org/repos/zag\n"
" Subversion 1.5 und neuer unterstützt die obigen Formate und die\n"