You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/10/13 16:30:10 UTC
svn commit: r1182877 [5/5] - in /subversion/branches/fs-py: ./
subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/tigris/subversion/javahl/
subversion/bindings/javahl/tests/org/apache/subversion/javahl/
subversion/include/ subversion...
Modified: subversion/branches/fs-py/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_wc/wc_db.c?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_wc/wc_db.c Thu Oct 13 14:30:07 2011
@@ -142,7 +142,7 @@ apr_int64_t svn_wc__db_op_depth_for_upgr
typedef struct insert_base_baton_t {
/* common to all insertions into BASE */
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
apr_int64_t repos_id;
const char *repos_relpath;
svn_revnum_t revision;
@@ -192,7 +192,7 @@ typedef struct insert_base_baton_t {
typedef struct insert_working_baton_t {
/* common to all insertions into WORKING (including NODE_DATA) */
svn_wc__db_status_t presence;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
apr_int64_t op_depth;
/* common to all "normal" presence insertions */
@@ -226,7 +226,7 @@ typedef struct insert_working_baton_t {
typedef struct insert_external_baton_t {
/* common to all insertions into EXTERNALS */
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_wc__db_status_t presence;
/* The repository of the external */
@@ -274,10 +274,10 @@ typedef struct insert_external_baton_t {
static const svn_token_map_t kind_map[] = {
- { "file", svn_wc__db_kind_file },
- { "dir", svn_wc__db_kind_dir },
- { "symlink", svn_wc__db_kind_symlink },
- { "unknown", svn_wc__db_kind_unknown },
+ { "file", svn_kind_file },
+ { "dir", svn_kind_dir },
+ { "symlink", svn_kind_symlink },
+ { "unknown", svn_kind_unknown },
{ NULL }
};
@@ -329,7 +329,7 @@ db_read_pristine_props(apr_hash_t **prop
static svn_error_t *
read_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
apr_int64_t *repos_id,
@@ -830,17 +830,17 @@ insert_base_node(void *baton,
pibb->repos_relpath,
pibb->revision,
presence_map, pibb->status, /* 8 */
- (pibb->kind == svn_wc__db_kind_dir) ? /* 9 */
+ (pibb->kind == svn_kind_dir) ? /* 9 */
svn_depth_to_word(pibb->depth) : NULL,
kind_map, pibb->kind, /* 10 */
pibb->changed_rev, /* 11 */
pibb->changed_date, /* 12 */
pibb->changed_author, /* 13 */
- (pibb->kind == svn_wc__db_kind_symlink) ?
+ (pibb->kind == svn_kind_symlink) ?
pibb->target : NULL, /* 19 */
NULL /* 20 */,
moved_to_relpath /* 21 */));
- if (pibb->kind == svn_wc__db_kind_file)
+ if (pibb->kind == svn_kind_file)
{
SVN_ERR(svn_sqlite__bind_checksum(stmt, 14, pibb->checksum,
scratch_pool));
@@ -886,7 +886,7 @@ insert_base_node(void *baton,
wcroot->sdb, scratch_pool));
}
- if (pibb->kind == svn_wc__db_kind_dir && pibb->children)
+ if (pibb->kind == svn_kind_dir && pibb->children)
SVN_ERR(insert_incomplete_children(wcroot->sdb, wcroot->wc_id,
local_relpath,
repos_id,
@@ -1023,18 +1023,18 @@ insert_working_node(void *baton,
piwb->op_depth,
parent_relpath,
presence_map, piwb->presence,
- (piwb->kind == svn_wc__db_kind_dir)
+ (piwb->kind == svn_kind_dir)
? svn_depth_to_word(piwb->depth) : NULL,
kind_map, piwb->kind,
piwb->changed_rev,
piwb->changed_date,
piwb->changed_author,
/* Note: incomplete nodes may have a NULL target. */
- (piwb->kind == svn_wc__db_kind_symlink)
+ (piwb->kind == svn_kind_symlink)
? piwb->target : NULL,
(apr_int64_t)piwb->moved_here));
- if (piwb->kind == svn_wc__db_kind_file)
+ if (piwb->kind == svn_kind_file)
{
SVN_ERR(svn_sqlite__bind_checksum(stmt, 14, piwb->checksum,
scratch_pool));
@@ -1055,7 +1055,7 @@ insert_working_node(void *baton,
The children are part of the same op and so have the same op_depth.
(The only time we'd want a different depth is during a recursive
simple add, but we never insert children here during a simple add.) */
- if (piwb->kind == svn_wc__db_kind_dir && piwb->children)
+ if (piwb->kind == svn_kind_dir && piwb->children)
SVN_ERR(insert_incomplete_children(wcroot->sdb, wcroot->wc_id,
local_relpath,
INVALID_REPOS_ID /* inherit repos_id */,
@@ -1065,7 +1065,7 @@ insert_working_node(void *baton,
piwb->op_depth,
scratch_pool));
- if (piwb->kind == svn_wc__db_kind_dir)
+ if (piwb->kind == svn_kind_dir)
{
SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST));
@@ -1463,7 +1463,7 @@ svn_wc__db_init(svn_wc__db_t *db,
ibb.status = svn_wc__db_status_incomplete;
else
ibb.status = svn_wc__db_status_normal;
- ibb.kind = svn_wc__db_kind_dir;
+ ibb.kind = svn_kind_dir;
ibb.repos_id = repos_id;
ibb.repos_relpath = repos_relpath;
ibb.revision = initial_rev;
@@ -1613,7 +1613,7 @@ svn_wc__db_base_add_directory(svn_wc__db
ibb.repos_uuid = repos_uuid;
ibb.status = svn_wc__db_status_normal;
- ibb.kind = svn_wc__db_kind_dir;
+ ibb.kind = svn_kind_dir;
ibb.repos_relpath = repos_relpath;
ibb.revision = revision;
@@ -1694,7 +1694,7 @@ svn_wc__db_base_add_file(svn_wc__db_t *d
ibb.repos_uuid = repos_uuid;
ibb.status = svn_wc__db_status_normal;
- ibb.kind = svn_wc__db_kind_file;
+ ibb.kind = svn_kind_file;
ibb.repos_relpath = repos_relpath;
ibb.revision = revision;
@@ -1773,7 +1773,7 @@ svn_wc__db_base_add_symlink(svn_wc__db_t
ibb.repos_uuid = repos_uuid;
ibb.status = svn_wc__db_status_normal;
- ibb.kind = svn_wc__db_kind_symlink;
+ ibb.kind = svn_kind_symlink;
ibb.repos_relpath = repos_relpath;
ibb.revision = revision;
@@ -1812,7 +1812,7 @@ add_excluded_or_not_present_node(svn_wc_
const char *repos_root_url,
const char *repos_uuid,
svn_revnum_t revision,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
svn_wc__db_status_t status,
const svn_skel_t *conflict,
const svn_skel_t *work_items,
@@ -1884,7 +1884,7 @@ svn_wc__db_base_add_excluded_node(svn_wc
const char *repos_root_url,
const char *repos_uuid,
svn_revnum_t revision,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
svn_wc__db_status_t status,
const svn_skel_t *conflict,
const svn_skel_t *work_items,
@@ -1906,7 +1906,7 @@ svn_wc__db_base_add_not_present_node(svn
const char *repos_root_url,
const char *repos_uuid,
svn_revnum_t revision,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
const svn_skel_t *conflict,
const svn_skel_t *work_items,
apr_pool_t *scratch_pool)
@@ -1983,7 +1983,7 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
DB+LOCAL_ABSPATH and outputting REPOS_ID instead of URL+UUID. */
static svn_error_t *
base_get_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
apr_int64_t *repos_id,
@@ -2013,7 +2013,7 @@ base_get_info(svn_wc__db_status_t *statu
if (have_row)
{
- svn_wc__db_kind_t node_kind = svn_sqlite__column_token(stmt, 3,
+ svn_kind_t node_kind = svn_sqlite__column_token(stmt, 3,
kind_map);
if (kind)
@@ -2047,7 +2047,7 @@ base_get_info(svn_wc__db_status_t *statu
}
if (depth)
{
- if (node_kind != svn_wc__db_kind_dir)
+ if (node_kind != svn_kind_dir)
{
*depth = svn_depth_unknown;
}
@@ -2063,7 +2063,7 @@ base_get_info(svn_wc__db_status_t *statu
}
if (checksum)
{
- if (node_kind != svn_wc__db_kind_file)
+ if (node_kind != svn_kind_file)
{
*checksum = NULL;
}
@@ -2081,7 +2081,7 @@ base_get_info(svn_wc__db_status_t *statu
}
if (target)
{
- if (node_kind != svn_wc__db_kind_symlink)
+ if (node_kind != svn_kind_symlink)
*target = NULL;
else
*target = svn_sqlite__column_text(stmt, 11, result_pool);
@@ -2110,7 +2110,7 @@ base_get_info(svn_wc__db_status_t *statu
svn_error_t *
svn_wc__db_base_get_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
const char **repos_root_url,
@@ -2362,7 +2362,7 @@ svn_wc__db_base_clear_dav_cache_recursiv
DB+LOCAL_ABSPATH and outputting REPOS_ID instead of URL+UUID. */
static svn_error_t *
depth_get_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
apr_int64_t *repos_id,
@@ -2391,7 +2391,7 @@ depth_get_info(svn_wc__db_status_t *stat
if (have_row)
{
- svn_wc__db_kind_t node_kind = svn_sqlite__column_token(stmt, 3,
+ svn_kind_t node_kind = svn_sqlite__column_token(stmt, 3,
kind_map);
if (kind)
@@ -2423,7 +2423,7 @@ depth_get_info(svn_wc__db_status_t *stat
}
if (depth)
{
- if (node_kind != svn_wc__db_kind_dir)
+ if (node_kind != svn_kind_dir)
{
*depth = svn_depth_unknown;
}
@@ -2439,7 +2439,7 @@ depth_get_info(svn_wc__db_status_t *stat
}
if (checksum)
{
- if (node_kind != svn_wc__db_kind_file)
+ if (node_kind != svn_kind_file)
{
*checksum = NULL;
}
@@ -2457,7 +2457,7 @@ depth_get_info(svn_wc__db_status_t *stat
}
if (target)
{
- if (node_kind != svn_wc__db_kind_symlink)
+ if (node_kind != svn_kind_symlink)
*target = NULL;
else
*target = svn_sqlite__column_text(stmt, 11, result_pool);
@@ -2616,8 +2616,8 @@ insert_external_node(void *baton,
else if (status == svn_wc__db_status_normal && !update_root)
return svn_error_create(SVN_ERR_WC_PATH_UNEXPECTED_STATUS, NULL, NULL);
- if (ieb->kind == svn_wc__db_kind_file
- || ieb->kind == svn_wc__db_kind_symlink)
+ if (ieb->kind == svn_kind_file
+ || ieb->kind == svn_kind_symlink)
{
struct insert_base_baton_t ibb;
@@ -2738,7 +2738,7 @@ svn_wc__db_external_add_file(svn_wc__db_
blank_ieb(&ieb);
- ieb.kind = svn_wc__db_kind_file;
+ ieb.kind = svn_kind_file;
ieb.presence = svn_wc__db_status_normal;
ieb.repos_root_url = repos_root_url;
@@ -2822,7 +2822,7 @@ svn_wc__db_external_add_symlink(svn_wc__
blank_ieb(&ieb);
- ieb.kind = svn_wc__db_kind_symlink;
+ ieb.kind = svn_kind_symlink;
ieb.presence = svn_wc__db_status_normal;
ieb.repos_root_url = repos_root_url;
@@ -2895,7 +2895,7 @@ svn_wc__db_external_add_dir(svn_wc__db_t
blank_ieb(&ieb);
- ieb.kind = svn_wc__db_kind_dir;
+ ieb.kind = svn_kind_dir;
ieb.presence = svn_wc__db_status_normal;
ieb.repos_root_url = repos_root_url;
@@ -2972,7 +2972,7 @@ svn_wc__db_external_remove(svn_wc__db_t
svn_error_t *
svn_wc__db_external_read(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
const char **definining_abspath,
const char **repos_root_url,
const char **repos_uuid,
@@ -3240,7 +3240,7 @@ cross_db_copy(svn_wc__db_wcroot_t *src_w
svn_wc__db_status_t dst_status,
apr_int64_t dst_op_depth,
apr_int64_t dst_np_op_depth,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
const apr_array_header_t *children,
apr_int64_t copyfrom_id,
const char *copyfrom_relpath,
@@ -3255,8 +3255,8 @@ cross_db_copy(svn_wc__db_wcroot_t *src_w
apr_hash_t *props;
svn_depth_t depth;
- SVN_ERR_ASSERT(kind == svn_wc__db_kind_file
- || kind == svn_wc__db_kind_dir
+ SVN_ERR_ASSERT(kind == svn_kind_file
+ || kind == svn_kind_dir
);
SVN_ERR(read_info(NULL, NULL, NULL, NULL, NULL,
@@ -3307,7 +3307,7 @@ get_info_for_copy(apr_int64_t *copyfrom_
const char **copyfrom_relpath,
svn_revnum_t *copyfrom_rev,
svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_boolean_t *op_root,
svn_boolean_t *have_work,
svn_wc__db_wcroot_t *wcroot,
@@ -3332,7 +3332,7 @@ get_info_for_copy(apr_int64_t *copyfrom_
adjust the relpath */
const char *parent_relpath, *base_name;
svn_wc__db_status_t parent_status;
- svn_wc__db_kind_t parent_kind;
+ svn_kind_t parent_kind;
svn_boolean_t parent_have_work;
svn_dirent_split(&parent_relpath, &base_name, local_relpath,
@@ -3453,7 +3453,7 @@ db_op_copy(svn_wc__db_wcroot_t *src_wcro
apr_int64_t copyfrom_id;
apr_int64_t dst_op_depth;
apr_int64_t dst_np_op_depth;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
const apr_array_header_t *children;
SVN_ERR(get_info_for_copy(©from_id, ©from_relpath, ©from_rev,
@@ -3464,7 +3464,7 @@ db_op_copy(svn_wc__db_wcroot_t *src_wcro
copyfrom_relpath, copyfrom_rev,
dst_wcroot, dst_relpath, scratch_pool));
- SVN_ERR_ASSERT(kind == svn_wc__db_kind_file || kind == svn_wc__db_kind_dir);
+ SVN_ERR_ASSERT(kind == svn_kind_file || kind == svn_kind_dir);
/* ### New status, not finished, see notes/wc-ng/copying */
switch (status)
@@ -3532,7 +3532,7 @@ db_op_copy(svn_wc__db_wcroot_t *src_wcro
scratch_pool));
}
- if (kind == svn_wc__db_kind_dir)
+ if (kind == svn_kind_dir)
{
apr_int64_t src_op_depth;
@@ -3595,7 +3595,7 @@ db_op_copy(svn_wc__db_wcroot_t *src_wcro
The children are part of the same op and so have the same op_depth.
(The only time we'd want a different depth is during a recursive
simple add, but we never insert children here during a simple add.) */
- if (kind == svn_wc__db_kind_dir
+ if (kind == svn_kind_dir
&& dst_presence == svn_wc__db_status_normal)
SVN_ERR(insert_incomplete_children(
dst_wcroot->sdb,
@@ -3716,7 +3716,7 @@ db_op_copy_shadowed_layer(svn_wc__db_wcr
const apr_array_header_t *children;
apr_pool_t *iterpool;
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_revnum_t node_revision;
const char *node_repos_relpath;
apr_int64_t node_repos_id;
@@ -4203,7 +4203,7 @@ svn_wc__db_op_copy_dir(svn_wc__db_t *db,
blank_iwb(&iwb);
iwb.presence = svn_wc__db_status_normal;
- iwb.kind = svn_wc__db_kind_dir;
+ iwb.kind = svn_kind_dir;
iwb.props = props;
iwb.changed_rev = changed_rev;
@@ -4278,7 +4278,7 @@ svn_wc__db_op_copy_file(svn_wc__db_t *db
blank_iwb(&iwb);
iwb.presence = svn_wc__db_status_normal;
- iwb.kind = svn_wc__db_kind_file;
+ iwb.kind = svn_kind_file;
iwb.props = props;
iwb.changed_rev = changed_rev;
@@ -4347,7 +4347,7 @@ svn_wc__db_op_copy_symlink(svn_wc__db_t
blank_iwb(&iwb);
iwb.presence = svn_wc__db_status_normal;
- iwb.kind = svn_wc__db_kind_symlink;
+ iwb.kind = svn_kind_symlink;
iwb.props = props;
iwb.changed_rev = changed_rev;
@@ -4401,7 +4401,7 @@ svn_wc__db_op_add_directory(svn_wc__db_t
blank_iwb(&iwb);
iwb.presence = svn_wc__db_status_normal;
- iwb.kind = svn_wc__db_kind_dir;
+ iwb.kind = svn_kind_dir;
iwb.op_depth = relpath_depth(local_relpath);
iwb.work_items = work_items;
@@ -4436,7 +4436,7 @@ svn_wc__db_op_add_file(svn_wc__db_t *db,
blank_iwb(&iwb);
iwb.presence = svn_wc__db_status_normal;
- iwb.kind = svn_wc__db_kind_file;
+ iwb.kind = svn_kind_file;
iwb.op_depth = relpath_depth(local_relpath);
iwb.work_items = work_items;
@@ -4470,7 +4470,7 @@ svn_wc__db_op_add_symlink(svn_wc__db_t *
blank_iwb(&iwb);
iwb.presence = svn_wc__db_status_normal;
- iwb.kind = svn_wc__db_kind_symlink;
+ iwb.kind = svn_kind_symlink;
iwb.op_depth = relpath_depth(local_relpath);
iwb.target = target;
@@ -5494,7 +5494,7 @@ struct revert_list_read_baton {
const char **conflict_working;
const char **prop_reject;
svn_boolean_t *copied_here;
- svn_wc__db_kind_t *kind;
+ svn_kind_t *kind;
apr_pool_t *result_pool;
};
@@ -5512,7 +5512,7 @@ revert_list_read(void *baton,
*(b->conflict_new) = *(b->conflict_old) = *(b->conflict_working) = NULL;
*(b->prop_reject) = NULL;
*(b->copied_here) = FALSE;
- *(b->kind) = svn_wc__db_kind_unknown;
+ *(b->kind) = svn_kind_unknown;
SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
STMT_SELECT_REVERT_LIST));
@@ -5587,7 +5587,7 @@ svn_wc__db_revert_list_read(svn_boolean_
const char **conflict_working,
const char **prop_reject,
svn_boolean_t *copied_here,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_wc__db_t *db,
const char *local_abspath,
apr_pool_t *result_pool,
@@ -5901,7 +5901,7 @@ svn_wc__db_op_read_tree_conflict(
struct remove_node_baton
{
svn_revnum_t not_present_rev;
- svn_wc__db_kind_t not_present_kind;
+ svn_kind_t not_present_kind;
};
/* Implements svn_wc__db_txn_callback_t for svn_wc__db_op_remove_node */
@@ -5966,7 +5966,7 @@ svn_error_t *
svn_wc__db_op_remove_node(svn_wc__db_t *db,
const char *local_abspath,
svn_revnum_t not_present_revision,
- svn_wc__db_kind_t not_present_kind,
+ svn_kind_t not_present_kind,
apr_pool_t *scratch_pool)
{
svn_wc__db_wcroot_t *wcroot;
@@ -6108,11 +6108,7 @@ convert_to_working_status(svn_wc__db_sta
|| work_status == svn_wc__db_status_incomplete
|| work_status == svn_wc__db_status_excluded);
- if (work_status == svn_wc__db_status_incomplete)
- {
- *working_status = svn_wc__db_status_incomplete;
- }
- else if (work_status == svn_wc__db_status_excluded)
+ if (work_status == svn_wc__db_status_excluded)
{
*working_status = svn_wc__db_status_excluded;
}
@@ -6127,7 +6123,7 @@ convert_to_working_status(svn_wc__db_sta
*working_status = svn_wc__db_status_deleted;
}
- else /* normal */
+ else /* normal or incomplete */
{
/* The caller should scan upwards to detect whether this
addition has occurred because of a simple addition,
@@ -6238,7 +6234,7 @@ op_delete_txn(void *baton,
svn_sqlite__stmt_t *stmt;
apr_int64_t select_depth; /* Depth of what is to be deleted */
svn_boolean_t refetch_depth = FALSE;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
SVN_ERR(svn_sqlite__exec_statements(wcroot->sdb, STMT_CREATE_DELETE_LIST));
@@ -6300,7 +6296,7 @@ op_delete_txn(void *baton,
/* If a subtree is being moved-away, we need to update moved-to
* information in BASE for all children that were moved into this
* subtree. */
- if (kind == svn_wc__db_kind_dir)
+ if (kind == svn_kind_dir)
{
apr_pool_t *iterpool;
@@ -6590,7 +6586,7 @@ svn_wc__db_op_delete(svn_wc__db_t *db,
DB+LOCAL_ABSPATH, and outputting repos ids instead of URL+UUID. */
static svn_error_t *
read_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
apr_int64_t *repos_id,
@@ -6649,7 +6645,7 @@ read_info(svn_wc__db_status_t *status,
if (have_info)
{
apr_int64_t op_depth;
- svn_wc__db_kind_t node_kind;
+ svn_kind_t node_kind;
op_depth = svn_sqlite__column_int64(stmt_info, 0);
node_kind = svn_sqlite__column_token(stmt_info, 4, kind_map);
@@ -6708,7 +6704,7 @@ read_info(svn_wc__db_status_t *status,
}
if (depth)
{
- if (node_kind != svn_wc__db_kind_dir)
+ if (node_kind != svn_kind_dir)
{
*depth = svn_depth_unknown;
}
@@ -6726,7 +6722,7 @@ read_info(svn_wc__db_status_t *status,
}
if (checksum)
{
- if (node_kind != svn_wc__db_kind_file)
+ if (node_kind != svn_kind_file)
{
*checksum = NULL;
}
@@ -6752,7 +6748,7 @@ read_info(svn_wc__db_status_t *status,
}
if (target)
{
- if (node_kind != svn_wc__db_kind_symlink)
+ if (node_kind != svn_kind_symlink)
*target = NULL;
else
*target = svn_sqlite__column_text(stmt_info, 12, result_pool);
@@ -6869,7 +6865,7 @@ read_info(svn_wc__db_status_t *status,
if (status)
*status = svn_wc__db_status_normal; /* What! No it's not! */
if (kind)
- *kind = svn_wc__db_kind_unknown;
+ *kind = svn_kind_unknown;
if (revision)
*revision = SVN_INVALID_REVNUM;
if (repos_relpath)
@@ -6934,7 +6930,7 @@ read_info(svn_wc__db_status_t *status,
svn_error_t *
svn_wc__db_read_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
const char **repos_root_url,
@@ -7068,6 +7064,8 @@ read_children_info(void *baton,
child->status = svn_sqlite__column_token(stmt, 3, presence_map);
if (op_depth != 0)
{
+ if (child->status == svn_wc__db_status_incomplete)
+ child->incomplete = TRUE;
err = convert_to_working_status(&child->status, child->status);
if (err)
SVN_ERR(svn_error_compose_create(err, svn_sqlite__reset(stmt)));
@@ -7116,7 +7114,7 @@ read_children_info(void *baton,
child->changed_author = svn_sqlite__column_text(stmt, 10,
result_pool);
- if (child->kind != svn_wc__db_kind_dir)
+ if (child->kind != svn_kind_dir)
child->depth = svn_depth_unknown;
else
{
@@ -7287,7 +7285,7 @@ svn_wc__db_read_children_info(apr_hash_t
svn_error_t *
svn_wc__db_read_pristine_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *changed_rev,
apr_time_t *changed_date,
const char **changed_author,
@@ -7307,7 +7305,7 @@ svn_wc__db_read_pristine_info(svn_wc__db
svn_error_t *err = NULL;
apr_int64_t op_depth;
svn_wc__db_status_t raw_status;
- svn_wc__db_kind_t node_kind;
+ svn_kind_t node_kind;
SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
@@ -7377,7 +7375,7 @@ svn_wc__db_read_pristine_info(svn_wc__db
}
if (depth)
{
- if (node_kind != svn_wc__db_kind_dir)
+ if (node_kind != svn_kind_dir)
{
*depth = svn_depth_unknown;
}
@@ -7395,7 +7393,7 @@ svn_wc__db_read_pristine_info(svn_wc__db
}
if (checksum)
{
- if (node_kind != svn_wc__db_kind_file)
+ if (node_kind != svn_kind_file)
{
*checksum = NULL;
}
@@ -7421,7 +7419,7 @@ svn_wc__db_read_pristine_info(svn_wc__db
}
if (target)
{
- if (node_kind != svn_wc__db_kind_symlink)
+ if (node_kind != svn_kind_symlink)
*target = NULL;
else
*target = svn_sqlite__column_text(stmt, 12, result_pool);
@@ -8537,7 +8535,7 @@ commit_node(void *baton,
const char *changelist = NULL;
const char *parent_relpath;
svn_wc__db_status_t new_presence;
- svn_wc__db_kind_t new_kind;
+ svn_kind_t new_kind;
const char *new_depth_str = NULL;
svn_sqlite__stmt_t *stmt;
apr_int64_t repos_id;
@@ -8575,7 +8573,7 @@ commit_node(void *baton,
new_kind = svn_sqlite__column_token(stmt_info, 4, kind_map);
/* What will the new depth be? */
- if (new_kind == svn_wc__db_kind_dir)
+ if (new_kind == svn_kind_dir)
new_depth_str = svn_sqlite__column_text(stmt_info, 11, scratch_pool);
/* Check that the repository information is not being changed. */
@@ -8713,7 +8711,7 @@ commit_node(void *baton,
}
}
- if (new_kind == svn_wc__db_kind_dir)
+ if (new_kind == svn_kind_dir)
{
/* When committing a directory, we should have its new children. */
/* ### one day. just not today. */
@@ -8810,7 +8808,7 @@ struct update_baton_t {
svn_error_t *
svn_wc__db_global_update(svn_wc__db_t *db,
const char *local_abspath,
- svn_wc__db_kind_t new_kind,
+ svn_kind_t new_kind,
const char *new_repos_relpath,
svn_revnum_t new_revision,
const apr_hash_t *new_props,
@@ -8947,7 +8945,7 @@ bump_node_revision(svn_wc__db_wcroot_t *
const apr_array_header_t *children;
int i;
svn_wc__db_status_t status;
- svn_wc__db_kind_t db_kind;
+ svn_kind_t db_kind;
svn_revnum_t revision;
const char *repos_relpath;
apr_int64_t repos_id;
@@ -8967,11 +8965,11 @@ bump_node_revision(svn_wc__db_wcroot_t *
/* Skip file externals */
if (update_root
- && db_kind == svn_wc__db_kind_file
+ && db_kind == svn_kind_file
&& !is_root)
return SVN_NO_ERROR;
- if (skip_when_dir && db_kind == svn_wc__db_kind_dir)
+ if (skip_when_dir && db_kind == svn_kind_dir)
return SVN_NO_ERROR;
/* If the node is still marked 'not-present', then the server did not
@@ -9003,7 +9001,7 @@ bump_node_revision(svn_wc__db_wcroot_t *
/* Early out */
if (depth <= svn_depth_empty
- || db_kind != svn_wc__db_kind_dir
+ || db_kind != svn_kind_dir
|| status == svn_wc__db_status_server_excluded
|| status == svn_wc__db_status_excluded
|| status == svn_wc__db_status_not_present)
@@ -9068,7 +9066,7 @@ bump_revisions_post_update(void *baton,
{
struct bump_revisions_baton_t *brb = baton;
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_error_t *err;
apr_int64_t new_repos_id = INVALID_REPOS_ID;
@@ -9463,7 +9461,9 @@ scan_addition_txn(void *baton,
presence = svn_sqlite__column_token(stmt, 1, presence_map);
/* The starting node should exist normally. */
- if (presence != svn_wc__db_status_normal)
+ op_depth = svn_sqlite__column_int64(stmt, 0);
+ if (op_depth == 0 || (presence != svn_wc__db_status_normal
+ && presence != svn_wc__db_status_incomplete))
/* reset the statement as part of the error generation process */
return svn_error_createf(SVN_ERR_WC_PATH_UNEXPECTED_STATUS,
svn_sqlite__reset(stmt),
@@ -9477,11 +9477,15 @@ scan_addition_txn(void *baton,
/* Provide the default status; we'll override as appropriate. */
if (sab->status)
- *sab->status = svn_wc__db_status_added;
+ {
+ if (presence == svn_wc__db_status_normal)
+ *sab->status = svn_wc__db_status_added;
+ else
+ *sab->status = svn_wc__db_status_incomplete;
+ }
/* Calculate the op root local path components */
- op_depth = svn_sqlite__column_int64(stmt, 0);
op_root_relpath = local_relpath;
for (i = (int)relpath_depth(local_relpath); i > op_depth; --i)
@@ -10368,7 +10372,7 @@ svn_wc__db_upgrade_apply_props(svn_sqlit
svn_error_t *
svn_wc__db_upgrade_insert_external(svn_wc__db_t *db,
const char *local_abspath,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
const char *parent_abspath,
const char *def_local_abspath,
const char *repos_relpath,
@@ -10977,7 +10981,7 @@ svn_wc__db_read_conflicts(const apr_arra
svn_error_t *
-svn_wc__db_read_kind(svn_wc__db_kind_t *kind,
+svn_wc__db_read_kind(svn_kind_t *kind,
svn_wc__db_t *db,
const char *local_abspath,
svn_boolean_t allow_missing,
@@ -11003,7 +11007,7 @@ svn_wc__db_read_kind(svn_wc__db_kind_t *
{
if (allow_missing)
{
- *kind = svn_wc__db_kind_unknown;
+ *kind = svn_kind_unknown;
SVN_ERR(svn_sqlite__reset(stmt_info));
return SVN_NO_ERROR;
}
@@ -12057,7 +12061,7 @@ svn_wc__db_temp_op_set_new_dir_to_incomp
ibb.repos_uuid = repos_uuid;
ibb.status = svn_wc__db_status_incomplete;
- ibb.kind = svn_wc__db_kind_dir;
+ ibb.kind = svn_kind_dir;
ibb.repos_relpath = repos_relpath;
ibb.revision = revision;
ibb.depth = depth;
Modified: subversion/branches/fs-py/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_wc/wc_db.h?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/fs-py/subversion/libsvn_wc/wc_db.h Thu Oct 13 14:30:07 2011
@@ -128,37 +128,6 @@ extern "C" {
typedef struct svn_wc__db_t svn_wc__db_t;
-/* Enum indicating what kind of versioned object we're talking about.
-
- ### KFF: That is, my understanding is that this is *not* an enum
- ### indicating what kind of storage the DB is using, even though
- ### one might think that from its name. Rather, the "svn_wc__db_"
- ### is a generic prefix, and this "_kind_t" type indicates the kind
- ### of something that's being stored in the DB.
-
- ### KFF: Does this overlap too much with what svn_node_kind_t does?
-
- ### gjs: possibly. but that doesn't have a symlink kind. and that
- ### cannot simply be added. it would surprise too much code.
- ### (we could probably create svn_node_kind2_t though)
-*/
-typedef enum svn_wc__db_kind_t {
- /* The node is a directory. */
- svn_wc__db_kind_dir,
-
- /* The node is a file. */
- svn_wc__db_kind_file,
-
- /* The node is a symbolic link. */
- svn_wc__db_kind_symlink,
-
- /* The type of the node is not known, due to its absence, exclusion,
- deletion, or incomplete status. */
- svn_wc__db_kind_unknown,
-
-} svn_wc__db_kind_t;
-
-
/* Enumerated values describing the state of a node. */
typedef enum svn_wc__db_status_t {
/* The node is present and has no known modifications applied to it. */
@@ -630,7 +599,7 @@ svn_wc__db_base_add_excluded_node(svn_wc
const char *repos_root_url,
const char *repos_uuid,
svn_revnum_t revision,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
svn_wc__db_status_t status,
const svn_skel_t *conflict,
const svn_skel_t *work_items,
@@ -661,7 +630,7 @@ svn_wc__db_base_add_not_present_node(svn
const char *repos_root_url,
const char *repos_uuid,
svn_revnum_t revision,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
const svn_skel_t *conflict,
const svn_skel_t *work_items,
apr_pool_t *scratch_pool);
@@ -740,7 +709,7 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
*/
svn_error_t *
svn_wc__db_base_get_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
const char **repos_root_url,
@@ -763,7 +732,7 @@ svn_wc__db_base_get_info(svn_wc__db_stat
fields needed by the adm crawler. */
struct svn_wc__db_base_info_t {
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_revnum_t revnum;
const char *repos_relpath;
const char *repos_root_url;
@@ -1148,7 +1117,7 @@ svn_wc__db_external_remove(svn_wc__db_t
*/
svn_error_t *
svn_wc__db_external_read(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
const char **defining_abspath,
const char **repos_root_url,
@@ -1521,7 +1490,7 @@ svn_wc__db_revert_list_read(svn_boolean_
const char **conflict_working,
const char **prop_reject,
svn_boolean_t *copied_here,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_wc__db_t *db,
const char *local_abspath,
apr_pool_t *result_pool,
@@ -1531,7 +1500,7 @@ svn_wc__db_revert_list_read(svn_boolean_
* svn_wc__db_revert_list_read_copied_children(). */
typedef struct svn_wc__db_revert_list_copied_child_info_t {
const char *abspath;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
} svn_wc__db_revert_list_copied_child_info_t ;
/* Return in *CHILDREN a list of reverted copied nodes at or within
@@ -1642,7 +1611,7 @@ svn_wc__db_op_set_tree_conflict(svn_wc__
The OUT parameters, and their "not available" values are:
STATUS n/a (always available)
- KIND svn_wc__db_kind_unknown (For ACTUAL only nodes)
+ KIND svn_kind_unknown (For ACTUAL only nodes)
REVISION SVN_INVALID_REVNUM
REPOS_RELPATH NULL
REPOS_ROOT_URL NULL
@@ -1710,8 +1679,8 @@ svn_wc__db_op_set_tree_conflict(svn_wc__
node's revision.
svn_wc__db_status_incomplete
- The BASE or WORKING node is incomplete due to an interrupted
- operation.
+ The BASE is incomplete due to an interrupted operation. An
+ incomplete WORKING node will be svn_wc__db_status_added.
If REVISION is requested, it will be set to the revision of the
unmodified (BASE) node, or to SVN_INVALID_REVNUM if any structural
@@ -1791,7 +1760,7 @@ svn_wc__db_op_set_tree_conflict(svn_wc__
*/
svn_error_t *
svn_wc__db_read_info(svn_wc__db_status_t *status, /* ### derived */
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *revision,
const char **repos_relpath,
const char **repos_root_url,
@@ -1839,7 +1808,7 @@ svn_wc__db_read_info(svn_wc__db_status_t
fields needed by status. */
struct svn_wc__db_info_t {
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_revnum_t revnum;
const char *repos_relpath;
const char *repos_root_url;
@@ -1868,6 +1837,7 @@ struct svn_wc__db_info_t {
svn_boolean_t locked; /* WC directory lock */
svn_wc__db_lock_t *lock; /* Repository file lock */
+ svn_boolean_t incomplete; /* TRUE if a working node is incomplete */
const char *moved_to_abspath; /* Only on op-roots. See svn_wc_status3_t. */
svn_boolean_t moved_here; /* On both op-roots and children. */
@@ -1896,7 +1866,7 @@ svn_wc__db_read_children_info(apr_hash_t
fields needed by svn_wc__internal_walk_children(). */
struct svn_wc__db_walker_info_t {
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
};
/* When a node is deleted in WORKING, some of its information is no longer
@@ -1915,7 +1885,7 @@ struct svn_wc__db_walker_info_t {
*/
svn_error_t *
svn_wc__db_read_pristine_info(svn_wc__db_status_t *status,
- svn_wc__db_kind_t *kind,
+ svn_kind_t *kind,
svn_revnum_t *changed_rev,
apr_time_t *changed_date,
const char **changed_author,
@@ -2122,13 +2092,13 @@ svn_wc__db_read_conflicts(const apr_arra
/* Return the kind of the node in DB at LOCAL_ABSPATH. The WORKING tree will
be examined first, then the BASE tree. If the node is not present in either
- tree and ALLOW_MISSING is TRUE, then svn_wc__db_kind_unknown is returned.
+ tree and ALLOW_MISSING is TRUE, then svn_kind_unknown is returned.
If the node is missing and ALLOW_MISSING is FALSE, then it will return
SVN_ERR_WC_PATH_NOT_FOUND.
Uses SCRATCH_POOL for temporary allocations. */
svn_error_t *
-svn_wc__db_read_kind(svn_wc__db_kind_t *kind,
+svn_wc__db_read_kind(svn_kind_t *kind,
svn_wc__db_t *db,
const char *local_abspath,
svn_boolean_t allow_missing,
@@ -2288,7 +2258,7 @@ svn_wc__db_global_commit(svn_wc__db_t *d
svn_error_t *
svn_wc__db_global_update(svn_wc__db_t *db,
const char *local_abspath,
- svn_wc__db_kind_t new_kind,
+ svn_kind_t new_kind,
const char *new_repos_relpath,
svn_revnum_t new_revision,
const apr_hash_t *new_props,
@@ -2441,6 +2411,8 @@ svn_wc__db_scan_base_repos(const char **
ancestor unshadowed BASE node. ORIGINAL_* will indicate the source
of the copy.
+ svn_wc__db_status_incomplete -- this NODE is copied but incomplete.
+
svn_wc__db_status_moved_here -- this NODE arrived as a result of a move.
The root of the moved nodes will be stored in OP_ROOT_ABSPATH.
Similar to the copied state, its parent may be a WORKING node or a
@@ -2656,7 +2628,7 @@ svn_wc__db_upgrade_apply_props(svn_sqlit
svn_error_t *
svn_wc__db_upgrade_insert_external(svn_wc__db_t *db,
const char *local_abspath,
- svn_wc__db_kind_t kind,
+ svn_kind_t kind,
const char *parent_abspath,
const char *def_local_abspath,
const char *repos_relpath,
@@ -2784,7 +2756,7 @@ svn_error_t *
svn_wc__db_op_remove_node(svn_wc__db_t *db,
const char *local_abspath,
svn_revnum_t not_present_revision,
- svn_wc__db_kind_t not_present_kind,
+ svn_kind_t not_present_kind,
apr_pool_t *scratch_pool);
/* Remove the WORKING_NODE row of LOCAL_ABSPATH in DB. */
Modified: subversion/branches/fs-py/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_wc/workqueue.c?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_wc/workqueue.c Thu Oct 13 14:30:07 2011
@@ -109,7 +109,7 @@ remove_base_node(svn_wc__db_t *db,
apr_pool_t *scratch_pool)
{
svn_wc__db_status_t base_status, wrk_status;
- svn_wc__db_kind_t base_kind, wrk_kind;
+ svn_kind_t base_kind, wrk_kind;
svn_boolean_t have_base, have_work;
svn_error_t *err;
@@ -148,7 +148,7 @@ remove_base_node(svn_wc__db_t *db,
scratch_pool, scratch_pool));
/* Children first */
- if (base_kind == svn_wc__db_kind_dir
+ if (base_kind == svn_kind_dir
&& base_status == svn_wc__db_status_normal)
{
const apr_array_header_t *children;
@@ -179,12 +179,12 @@ remove_base_node(svn_wc__db_t *db,
&& wrk_status != svn_wc__db_status_excluded)
{
if (wrk_status != svn_wc__db_status_deleted
- && (base_kind == svn_wc__db_kind_file
- || base_kind == svn_wc__db_kind_symlink))
+ && (base_kind == svn_kind_file
+ || base_kind == svn_kind_symlink))
{
SVN_ERR(svn_io_remove_file2(local_abspath, TRUE, scratch_pool));
}
- else if (base_kind == svn_wc__db_kind_dir
+ else if (base_kind == svn_kind_dir
&& wrk_status != svn_wc__db_status_deleted)
{
err = svn_io_dir_remove_nonrecursive(local_abspath, scratch_pool);
@@ -218,7 +218,7 @@ run_base_remove(svn_wc__db_t *db,
const char *local_relpath;
const char *local_abspath;
svn_revnum_t not_present_rev = SVN_INVALID_REVNUM;
- svn_wc__db_kind_t not_present_kind;
+ svn_kind_t not_present_kind;
const char *repos_relpath, *repos_root_url, *repos_uuid;
apr_int64_t val;
@@ -232,7 +232,7 @@ run_base_remove(svn_wc__db_t *db,
not_present_rev = (svn_revnum_t)val;
SVN_ERR(svn_skel__parse_int(&val, arg1->next->next, scratch_pool));
- not_present_kind = (svn_wc__db_kind_t)val;
+ not_present_kind = (svn_kind_t)val;
if (SVN_IS_VALID_REVNUM(not_present_rev))
{
@@ -295,7 +295,7 @@ svn_wc__wq_build_base_remove(svn_skel_t
svn_wc__db_t *db,
const char *local_abspath,
svn_revnum_t not_present_revision,
- svn_wc__db_kind_t not_present_kind,
+ svn_kind_t not_present_kind,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
Modified: subversion/branches/fs-py/subversion/libsvn_wc/workqueue.h
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_wc/workqueue.h?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/libsvn_wc/workqueue.h (original)
+++ subversion/branches/fs-py/subversion/libsvn_wc/workqueue.h Thu Oct 13 14:30:07 2011
@@ -212,7 +212,7 @@ svn_wc__wq_build_base_remove(svn_skel_t
svn_wc__db_t *db,
const char *local_abspath,
svn_revnum_t not_present_revision,
- svn_wc__db_kind_t not_present_kind,
+ svn_kind_t not_present_kind,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
Modified: subversion/branches/fs-py/subversion/svnserve/cyrus_auth.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/svnserve/cyrus_auth.c?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/svnserve/cyrus_auth.c (original)
+++ subversion/branches/fs-py/subversion/svnserve/cyrus_auth.c Thu Oct 13 14:30:07 2011
@@ -105,12 +105,7 @@ static sasl_callback_t callbacks[] =
static svn_error_t *initialize(void *baton, apr_pool_t *pool)
{
int result;
- apr_status_t status;
-
- status = svn_ra_svn__sasl_common_init(pool);
- if (status)
- return svn_error_wrap_apr(status,
- _("Could not initialize the SASL library"));
+ SVN_ERR(svn_ra_svn__sasl_common_init(pool));
/* The second parameter tells SASL to look for a configuration file
named subversion.conf. */
Modified: subversion/branches/fs-py/subversion/tests/cmdline/authz_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/tests/cmdline/authz_tests.py?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/tests/cmdline/authz_tests.py (original)
+++ subversion/branches/fs-py/subversion/tests/cmdline/authz_tests.py Thu Oct 13 14:30:07 2011
@@ -1002,6 +1002,7 @@ def multiple_matches(sbox):
'-m', 'second copy',
root_url, root_url + '/second')
+@Issues(4025,4026)
@Skip(svntest.main.is_ra_type_file)
def wc_wc_copy_revert(sbox):
"wc-to-wc-copy with absent nodes and then revert"
@@ -1044,8 +1045,28 @@ def wc_wc_copy_revert(sbox):
svntest.actions.run_and_verify_svn(None, expected_output, [],
'st', '--verbose', sbox.ospath('A2'))
+
+ # Issue 4025, info SEGV on incomplete working node
+ svntest.actions.run_and_verify_svn(None, None,
+ 'svn: E145000: .*unrecognized node kind',
+ 'info', sbox.ospath('A2/B/E'))
+
+ # Issue 4026, copy assertion on incomplete working node
+ svntest.actions.run_and_verify_svn(None, None,
+ 'svn: E145001: cannot handle node kind',
+ 'cp', sbox.ospath('A2/B'), sbox.ospath('B3'))
+
+ expected_output = svntest.verify.ExpectedOutput(
+ ['A + - 1 jrandom ' + sbox.ospath('B3') + '\n',
+ '! - ? ? ' + sbox.ospath('B3/E') + '\n',
+ ])
+ expected_output.match_all = False
+ svntest.actions.run_and_verify_svn(None, expected_output, [],
+ 'st', '--verbose', sbox.ospath('B3'))
+
svntest.actions.run_and_verify_svn(None, None, [],
- 'revert', '--recursive', sbox.ospath('A2'))
+ 'revert', '--recursive',
+ sbox.ospath('A2'), sbox.ospath('B3'))
expected_status = svntest.actions.get_virginal_state(sbox.wc_dir, 1)
expected_status.remove('A/B/E', 'A/B/E/alpha', 'A/B/E/beta')
Modified: subversion/branches/fs-py/subversion/tests/cmdline/log_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/tests/cmdline/log_tests.py?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/tests/cmdline/log_tests.py (original)
+++ subversion/branches/fs-py/subversion/tests/cmdline/log_tests.py Thu Oct 13 14:30:07 2011
@@ -2028,6 +2028,72 @@ def log_on_nonexistent_path_and_valid_re
svntest.actions.run_and_verify_svn(None, None, expected_error,
'log', '-q', bad_path_default_rev)
+#----------------------------------------------------------------------
+# Test for issue #4022 'svn log -g interprets change in inherited mergeinfo
+# due to move as a merge'.
+@Issue(4022)
+@XFail()
+def merge_sensitive_log_copied_path_inherited_mergeinfo(sbox):
+ "log -g on copied path with inherited mergeinfo"
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ wc_disk, wc_status = set_up_branch(sbox, branch_only=True)
+
+ A_path = os.path.join(wc_dir, 'A')
+ gamma_COPY_path = os.path.join(wc_dir, 'A_COPY', 'D', 'gamma')
+ old_gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
+ new_gamma_path = os.path.join(wc_dir, 'A', 'C', 'gamma')
+
+ # r3 - Modify a file (A_COPY/D/gamma) on the branch
+ svntest.main.file_write(gamma_COPY_path, "Branch edit.\n")
+ svntest.main.run_svn(None, 'ci', '-m', 'Branch edit', wc_dir)
+
+ # r4 - Reintegrate A_COPY to A
+ svntest.main.run_svn(None, 'up', wc_dir)
+ svntest.main.run_svn(None, 'merge', '--reintegrate',
+ sbox.repo_url + '/A_COPY', A_path)
+ svntest.main.run_svn(None, 'ci', '-m', 'Reintegrate A_COPY to A', wc_dir)
+
+ # r5 - Move file modified by reintegrate (A/D/gamma to A/C/gamma).
+ svntest.main.run_svn(None, 'move', old_gamma_path, new_gamma_path)
+ svntest.main.run_svn(None, 'ci', '-m', 'Move file', wc_dir)
+
+ # 'svn log -g --stop-on-copy ^/A/C/gamma' hould return *only* r5
+ # Currently this test fails because the change in gamma's inherited
+ # mergeinfo between r4 and r5, due to the move, is understood as a merge:
+ #
+ # >svn log -v -g --stop-on-copy ^^/A/C/gamma
+ # ------------------------------------------------------------------------
+ # r5 | jrandom | 2011-10-11 14:37:57 -0700 (Tue, 11 Oct 2011) | 1 line #
+ # Changed paths:
+ # A /A/C/gamma (from /A/D/gamma:4)
+ # D /A/D/gamma
+ #
+ # Move file
+ # ------------------------------------------------------------------------
+ # r3 | jrandom | 2011-10-11 14:37:56 -0700 (Tue, 11 Oct 2011) | 1 line
+ # Changed paths:
+ # M /A_COPY/D/gamma
+ # Reverse merged via: r5
+ #
+ # Branch edit
+ # ------------------------------------------------------------------------
+ # r2 | jrandom | 2011-10-11 14:37:56 -0700 (Tue, 11 Oct 2011) | 1 line
+ # Changed paths:
+ # A /A_COPY (from /A:1)
+ # Reverse merged via: r5
+ #
+ # log msg
+ # ------------------------------------------------------------------------
+ expected_merges = {5 : []}
+ svntest.main.run_svn(None, 'up', wc_dir)
+ exit_code, out, err = svntest.actions.run_and_verify_svn(
+ None, None, [], 'log', '-g', '--stop-on-copy',
+ sbox.repo_url + '/A/C/gamma')
+ log_chain = parse_log_output(out)
+ check_merge_results(log_chain, expected_merges)
+
########################################################################
# Run the tests
@@ -2067,6 +2133,7 @@ test_list = [ None,
merge_sensitive_log_ignores_cyclic_merges,
log_with_unrelated_peg_and_operative_revs,
log_on_nonexistent_path_and_valid_rev,
+ merge_sensitive_log_copied_path_inherited_mergeinfo,
]
if __name__ == '__main__':
Modified: subversion/branches/fs-py/subversion/tests/cmdline/svnadmin_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/tests/cmdline/svnadmin_tests.py?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/tests/cmdline/svnadmin_tests.py (original)
+++ subversion/branches/fs-py/subversion/tests/cmdline/svnadmin_tests.py Thu Oct 13 14:30:07 2011
@@ -1405,7 +1405,7 @@ def test_lslocks_and_rmlocks(sbox):
[], "lock", "-m", "Locking files",
iota_url, lambda_url)
- expected_output = svntest.verify.UnorderedRegexOutput([
+ expected_output_list = [
"Path: /A/B/lambda",
"UUID Token: opaquelocktoken",
"Owner: jrandom",
@@ -1416,7 +1416,7 @@ def test_lslocks_and_rmlocks(sbox):
"Path: /iota",
"UUID Token: opaquelocktoken.*",
"\n", # empty line
- ])
+ ]
# List all locks
exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
@@ -1424,10 +1424,25 @@ def test_lslocks_and_rmlocks(sbox):
if errput:
raise SVNUnexpectedStderr(errput)
-
- svntest.verify.compare_and_display_lines('message', 'label',
- expected_output, output)
svntest.verify.verify_exit_code(None, exit_code, 0)
+
+ try:
+ expected_output = svntest.verify.UnorderedRegexOutput(expected_output_list)
+ svntest.verify.compare_and_display_lines('lslocks output mismatch',
+ 'output',
+ expected_output, output)
+ except:
+ # Usually both locks have the same timestamp but if the clock
+ # ticks between creating the two locks then the timestamps will
+ # differ. When the output has two identical "Created" lines
+ # UnorderedRegexOutput must have one matching regex, when the
+ # output has two different "Created" lines UnorderedRegexOutput
+ # must have two regex.
+ expected_output_list.append("Created:.*")
+ expected_output = svntest.verify.UnorderedRegexOutput(expected_output_list)
+ svntest.verify.compare_and_display_lines('lslocks output mismatch',
+ 'output',
+ expected_output, output)
# List lock in path /A
exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
Modified: subversion/branches/fs-py/subversion/tests/libsvn_subr/cache-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/tests/libsvn_subr/cache-test.c?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/tests/libsvn_subr/cache-test.c (original)
+++ subversion/branches/fs-py/subversion/tests/libsvn_subr/cache-test.c Thu Oct 13 14:30:07 2011
@@ -135,7 +135,7 @@ test_inprocess_cache_basic(apr_pool_t *p
APR_HASH_KEY_STRING,
1,
1,
- TRUE,
+ APR_HAS_THREADS,
"",
pool));
Modified: subversion/branches/fs-py/subversion/tests/libsvn_subr/mergeinfo-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/tests/libsvn_subr/mergeinfo-test.c?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/tests/libsvn_subr/mergeinfo-test.c (original)
+++ subversion/branches/fs-py/subversion/tests/libsvn_subr/mergeinfo-test.c Thu Oct 13 14:30:07 2011
@@ -117,7 +117,7 @@ verify_mergeinfo_parse(const char *input
-> merge ranges. */
static apr_hash_t *info1, *info2;
-#define NBR_MERGEINFO_VALS 20
+#define NBR_MERGEINFO_VALS 24
/* Valid mergeinfo values. */
static const char * const mergeinfo_vals[NBR_MERGEINFO_VALS] =
@@ -146,7 +146,12 @@ static const char * const mergeinfo_vals
"/gunther_branch:7-12*,1,5-10*",
/* Adjacent rangelists of differing inheritability. */
"/b5:5-53,1-4,54-90*",
- "/c0:1-77,12-44"
+ "/c0:1-77,12-44",
+ /* Non-canonical paths. */
+ "/A/:7-8",
+ "/A///:7-8",
+ "/A/.:7-8",
+ "/A/./B:7-8"
};
/* Paths corresponding to mergeinfo_vals. */
static const char * const mergeinfo_paths[NBR_MERGEINFO_VALS] =
@@ -173,7 +178,13 @@ static const char * const mergeinfo_path
"/gunther_branch",
"/gunther_branch",
"/b5",
- "/c0"
+ "/c0",
+
+ /* non-canonical paths converted to canonical */
+ "/A",
+ "/A",
+ "/A",
+ "/A/B"
};
/* First ranges from the paths identified by mergeinfo_paths. */
static svn_merge_range_t mergeinfo_ranges[NBR_MERGEINFO_VALS][MAX_NBR_RANGES] =
@@ -200,6 +211,10 @@ static svn_merge_range_t mergeinfo_range
{ {0, 1, TRUE}, {4, 12, FALSE} },
{ {0, 53, TRUE}, {53, 90, FALSE} },
{ {0, 77, TRUE} },
+ { {6, 8, TRUE} },
+ { {6, 8, TRUE} },
+ { {6, 8, TRUE} },
+ { {6, 8, TRUE} },
};
static svn_error_t *
@@ -1181,7 +1196,7 @@ test_rangelist_merge(apr_pool_t *pool)
svn_merge_range_t expected_merge[6];
};
- #define SIZE_OF_RANGE_MERGE_TEST_ARRAY 59
+ #define SIZE_OF_RANGE_MERGE_TEST_ARRAY 68
/* The actual test data. */
struct rangelist_merge_test_data test_data[SIZE_OF_RANGE_MERGE_TEST_ARRAY] =
{
@@ -1266,6 +1281,29 @@ test_rangelist_merge(apr_pool_t *pool)
{"/A: 2-17", "/A: 1-5*,7*,12-13*", 2,
{{0, 1, FALSE}, {1, 17, TRUE}}},
+ {"/A: 3-4*,10-15,20", "/A: 5-60*", 5,
+ {{2, 9, FALSE}, {9, 15, TRUE}, {15, 19, FALSE},{19, 20, TRUE},
+ {20, 60, FALSE}}},
+
+ {"/A: 5-60*", "/A: 3-4*,10-15,20", 5,
+ {{2, 9, FALSE}, {9, 15, TRUE}, {15, 19, FALSE},{19, 20, TRUE},
+ {20, 60, FALSE}}},
+
+ {"/A: 3-4*,50-100*", "/A: 5-60*", 1, {{2, 100, FALSE}}},
+
+ {"/A: 5-60*", "/A: 3-4*,50-100*", 1, {{2, 100, FALSE}}},
+
+ {"/A: 3-4*,50-100", "/A: 5-60*", 2, {{2, 49, FALSE}, {49, 100, TRUE}}},
+
+ {"/A: 5-60*", "/A: 3-4*,50-100", 2, {{2, 49, FALSE}, {49, 100, TRUE}}},
+
+ {"/A: 3-4,50-100*", "/A: 5-60", 2, {{2, 60, TRUE}, {60, 100, FALSE}}},
+
+ {"/A: 5-60", "/A: 3-4,50-100*", 2, {{2, 60, TRUE}, {60, 100, FALSE}}},
+
+ {"/A: 5,9,11-15,17,200-300,999", "/A: 7-50", 4,
+ {{4, 5, TRUE}, {6, 50, TRUE}, {199, 300, TRUE}, {998, 999, TRUE}}},
+
/* A rangelist merged with an empty rangelist should equal the
non-empty rangelist but in compacted form. */
{"/A: 1-44,45,46,47-50", "", 1, {{ 0, 50, TRUE }}},
Modified: subversion/branches/fs-py/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/tests/libsvn_wc/db-test.c?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/branches/fs-py/subversion/tests/libsvn_wc/db-test.c Thu Oct 13 14:30:07 2011
@@ -374,7 +374,7 @@ static svn_error_t *
test_getting_info(apr_pool_t *pool)
{
const char *local_abspath;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_wc__db_status_t status;
svn_revnum_t revision;
const char *repos_relpath;
@@ -403,7 +403,7 @@ test_getting_info(apr_pool_t *pool)
&update_root,
db, local_abspath,
pool, pool));
- SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
+ SVN_TEST_ASSERT(kind == svn_kind_dir);
SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
SVN_TEST_ASSERT(revision == 1);
SVN_TEST_STRING_ASSERT(repos_relpath, "");
@@ -426,7 +426,7 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL,
db, svn_dirent_join(local_abspath, "A", pool),
pool, pool));
- SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
+ SVN_TEST_ASSERT(kind == svn_kind_file);
SVN_TEST_STRING_ASSERT(SHA1_1, svn_checksum_to_cstring(checksum, pool));
SVN_TEST_STRING_ASSERT(repos_relpath, "A");
SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
@@ -441,7 +441,7 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL,
db, svn_dirent_join(local_abspath, "B", pool),
pool, pool));
- SVN_TEST_ASSERT(kind == svn_wc__db_kind_symlink);
+ SVN_TEST_ASSERT(kind == svn_kind_symlink);
SVN_TEST_ASSERT(status == svn_wc__db_status_excluded);
SVN_TEST_ASSERT(!SVN_IS_VALID_REVNUM(revision));
SVN_TEST_STRING_ASSERT(repos_relpath, "B");
@@ -464,7 +464,7 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "C", pool),
pool, pool));
- SVN_TEST_ASSERT(kind == svn_wc__db_kind_unknown);
+ SVN_TEST_ASSERT(kind == svn_kind_unknown);
SVN_TEST_ASSERT(status == svn_wc__db_status_server_excluded);
/* Test: not-present presence. */
@@ -549,12 +549,12 @@ static svn_error_t *
validate_node(svn_wc__db_t *db,
const char *local_abspath,
const char *relpath,
- svn_wc__db_kind_t expected_kind,
+ svn_kind_t expected_kind,
svn_wc__db_status_t expected_status,
apr_pool_t *scratch_pool)
{
const char *path = svn_dirent_join(local_abspath, relpath, scratch_pool);
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_wc__db_status_t status;
apr_hash_t *props;
const svn_string_t *value;
@@ -679,7 +679,7 @@ test_inserting_nodes(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_add_excluded_node(
db, svn_dirent_join(local_abspath, "N/N-b", pool),
"N/N-b", ROOT_ONE, UUID_ONE, 3,
- svn_wc__db_kind_file, svn_wc__db_status_server_excluded,
+ svn_kind_file, svn_wc__db_status_server_excluded,
NULL, NULL,
pool));
@@ -687,7 +687,7 @@ test_inserting_nodes(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_add_excluded_node(
db, svn_dirent_join(local_abspath, "P", pool),
"P", ROOT_ONE, UUID_ONE, 3,
- svn_wc__db_kind_dir, svn_wc__db_status_excluded,
+ svn_kind_dir, svn_wc__db_status_excluded,
NULL, NULL,
pool));
@@ -695,7 +695,7 @@ test_inserting_nodes(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_add_not_present_node(
db, svn_dirent_join(local_abspath, "Q", pool),
"Q", ROOT_ONE, UUID_ONE, 3,
- svn_wc__db_kind_symlink,
+ svn_kind_symlink,
NULL, NULL,
pool));
@@ -703,36 +703,36 @@ test_inserting_nodes(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_add_excluded_node(
db, svn_dirent_join(local_abspath, "R", pool),
"R", ROOT_ONE, UUID_ONE, 3,
- svn_wc__db_kind_unknown, svn_wc__db_status_server_excluded,
+ svn_kind_unknown, svn_wc__db_status_server_excluded,
NULL, NULL,
pool));
/* Are all the nodes where we expect them to be? */
SVN_ERR(validate_node(db, local_abspath, "N",
- svn_wc__db_kind_dir, svn_wc__db_status_normal,
+ svn_kind_dir, svn_wc__db_status_normal,
pool));
SVN_ERR(validate_node(db, local_abspath, "N/N-a",
- svn_wc__db_kind_file, svn_wc__db_status_normal,
+ svn_kind_file, svn_wc__db_status_normal,
pool));
SVN_ERR(validate_node(db, local_abspath, "N/N-b",
- svn_wc__db_kind_file,
+ svn_kind_file,
svn_wc__db_status_server_excluded,
pool));
SVN_ERR(validate_node(db, local_abspath, "N/N-c",
- svn_wc__db_kind_unknown, svn_wc__db_status_incomplete,
+ svn_kind_unknown, svn_wc__db_status_incomplete,
pool));
SVN_ERR(validate_node(db, local_abspath, "O",
- svn_wc__db_kind_symlink, svn_wc__db_status_normal,
+ svn_kind_symlink, svn_wc__db_status_normal,
pool));
SVN_ERR(validate_node(db, local_abspath, "P",
- svn_wc__db_kind_dir, svn_wc__db_status_excluded,
+ svn_kind_dir, svn_wc__db_status_excluded,
pool));
SVN_ERR(validate_node(db, local_abspath, "Q",
- svn_wc__db_kind_symlink, svn_wc__db_status_not_present,
+ svn_kind_symlink, svn_wc__db_status_not_present,
pool));
SVN_ERR(validate_node(db, local_abspath, "R",
- svn_wc__db_kind_unknown,
+ svn_kind_unknown,
svn_wc__db_status_server_excluded,
pool));
@@ -788,7 +788,7 @@ static svn_error_t *
test_working_info(apr_pool_t *pool)
{
const char *local_abspath;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
svn_wc__db_status_t status;
svn_revnum_t revision;
const char *repos_relpath;
@@ -832,7 +832,7 @@ test_working_info(apr_pool_t *pool)
db, svn_dirent_join(local_abspath, "I", pool),
pool, pool));
SVN_TEST_ASSERT(status == svn_wc__db_status_added);
- SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
+ SVN_TEST_ASSERT(kind == svn_kind_dir);
SVN_TEST_ASSERT(revision == SVN_INVALID_REVNUM);
SVN_TEST_ASSERT(repos_relpath == NULL);
SVN_TEST_ASSERT(repos_root_url == NULL);
@@ -879,14 +879,14 @@ test_pdh(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_add_excluded_node(
db, svn_dirent_join(local_abspath, "sub", pool),
"sub", ROOT_ONE, UUID_ONE, 1,
- svn_wc__db_kind_file, svn_wc__db_status_server_excluded,
+ svn_kind_file, svn_wc__db_status_server_excluded,
NULL, NULL,
pool));
SVN_ERR(svn_wc__db_base_add_excluded_node(
db, svn_dirent_join(local_abspath, "sub/A", pool),
"sub/A", ROOT_ONE, UUID_ONE, 1,
- svn_wc__db_kind_file, svn_wc__db_status_server_excluded,
+ svn_kind_file, svn_wc__db_status_server_excluded,
NULL, NULL,
pool));
@@ -1428,7 +1428,7 @@ test_externals_store(apr_pool_t *pool)
{
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
+ svn_kind_t kind;
const char *repos_root_url;
const char *repos_uuid;
const char *defining_abspath;
@@ -1445,7 +1445,7 @@ test_externals_store(apr_pool_t *pool)
pool, pool));
SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
- SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
+ SVN_TEST_ASSERT(kind == svn_kind_file);
SVN_TEST_STRING_ASSERT(repos_root_url, "svn://some-repos/svn");
SVN_TEST_STRING_ASSERT(repos_uuid, "not-a-uuid");
SVN_TEST_STRING_ASSERT(defining_abspath, subdir);
@@ -1476,7 +1476,7 @@ test_externals_store(apr_pool_t *pool)
pool, pool));
SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
- SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
+ SVN_TEST_ASSERT(kind == svn_kind_dir);
SVN_TEST_STRING_ASSERT(repos_root_url, "svn://other-repos/nsv");
SVN_TEST_STRING_ASSERT(repos_uuid, "no-uuid-either");
SVN_TEST_STRING_ASSERT(defining_abspath, subdir);
Modified: subversion/branches/fs-py/tools/client-side/svn-viewspec.py
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/client-side/svn-viewspec.py?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/client-side/svn-viewspec.py (original)
+++ subversion/branches/fs-py/tools/client-side/svn-viewspec.py Thu Oct 13 14:30:07 2011
@@ -20,6 +20,8 @@
# ====================================================================
"""\
+__SCRIPTNAME__: checkout utility for sparse Subversion working copies
+
Usage: 1. __SCRIPTNAME__ checkout VIEWSPEC-FILE TARGET-DIR
2. __SCRIPTNAME__ examine VIEWSPEC-FILE
3. __SCRIPTNAME__ help
Modified: subversion/branches/fs-py/tools/dev/benchmarks/suite1/cronjob
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/dev/benchmarks/suite1/cronjob?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/dev/benchmarks/suite1/cronjob (original)
+++ subversion/branches/fs-py/tools/dev/benchmarks/suite1/cronjob Thu Oct 13 14:30:07 2011
@@ -1,4 +1,24 @@
#!/bin/bash
+#
+# ====================================================================
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ====================================================================
+#
# This is the cronjob as run on our ASF box aka svn-qavm.
# It uses neels' mad bash script magic called 'pat' to update and
# build the latest trunk, invokes a benchmark and sends as mail.
Modified: subversion/branches/fs-py/tools/dev/unix-build/Makefile.svn
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/dev/unix-build/Makefile.svn?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/branches/fs-py/tools/dev/unix-build/Makefile.svn Thu Oct 13 14:30:07 2011
@@ -1037,7 +1037,10 @@ $(PYTHON_OBJDIR)/.retrieved: $(DISTDIR)/
chmod +x $(PYTHON_SRCDIR)/setup.py
# Fixes shared library linking on OpenBSD
# http://bugs.python.org/issue12560
+ # Also fix compilation error on OpenBSD 5.0 and later (undefined
+ # reference to 'lstat' -- already fixed in hg.python.org/cpython).
sed -e '4930s#NetBSD\*|#NetBSD*|OpenBSD*|#' \
+ -e 's#OpenBSD/4\.\[789\]#OpenBSD/*#' \
< $(PYTHON_SRCDIR)/configure \
> $(PYTHON_SRCDIR)/configure.patched
mv $(PYTHON_SRCDIR)/configure.patched $(PYTHON_SRCDIR)/configure
Modified: subversion/branches/fs-py/tools/dev/wc-format.py
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/dev/wc-format.py?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/dev/wc-format.py (original)
+++ subversion/branches/fs-py/tools/dev/wc-format.py Thu Oct 13 14:30:07 2011
@@ -51,7 +51,7 @@ def print_format(wc_path):
# 1.4.x: format 8
# 1.5.x: format 9
# 1.6.x: format 10
- # 1.7.x: format XXX
+ # 1.7.x: format 29
formatno = get_format(wc_path)
print '%s: %s' % (wc_path, formatno)
Modified: subversion/branches/fs-py/tools/dist/collect_sigs.py
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/dist/collect_sigs.py?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/dist/collect_sigs.py (original)
+++ subversion/branches/fs-py/tools/dist/collect_sigs.py Thu Oct 13 14:30:07 2011
@@ -75,7 +75,7 @@ def generate_asc_files(target_dir='.'):
db = sqlite3.connect(os.path.join(target_dir, 'sigs.db'))
curs = db.cursor()
- like_filename = 'subversion-%s%%' % config.version
+ like_filename = 'subversion-%s.%%' % config.version
curs.execute('''SELECT filename, signature FROM signatures
WHERE filename LIKE ?''', (like_filename, ) )
for filename, signature in curs:
@@ -183,7 +183,7 @@ def list_signatures():
lines = ""
curs = db.cursor()
- like_filename = 'subversion-%s%%' % config.version
+ like_filename = 'subversion-%s.%%' % config.version
curs.execute('''SELECT filename, COUNT(*) FROM signatures
WHERE filename LIKE ?
GROUP BY filename ORDER BY filename''',
Modified: subversion/branches/fs-py/tools/dist/rat-excludes
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/dist/rat-excludes?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/dist/rat-excludes (original)
+++ subversion/branches/fs-py/tools/dist/rat-excludes Thu Oct 13 14:30:07 2011
@@ -15,6 +15,7 @@ doc/doxygen.conf
notes/**
packages/
subversion/tests/cmdline/getopt_tests_data/*
+subversion/tests/cmdline/diff_tests_data/*
subversion/bindings/swig/NOTES
subversion/libsvn_fs_base/notes/TODO
subversion/libsvn_fs_base/notes/fs-history
@@ -31,8 +32,11 @@ subversion/bindings/ctypes-python/csvn/e
subversion/tests/cmdline/svntest/err.py
tools/buildbot/master/public_html/buildbot.css
tools/dist/rat-excludes
+tools/dist/_gnupg.py
+tools/dist/templates/*.ezt
tools/dev/iz/defect.dem
tools/dev/iz/ff2csv.command
+tools/dev/benchmarks/suite1/crontab.entry
tools/hook-scripts/mailer/tests/mailer-t1.output
**/*.dump
**/*.icns
Modified: subversion/branches/fs-py/tools/dist/release.py
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/dist/release.py?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/dist/release.py (original)
+++ subversion/branches/fs-py/tools/dist/release.py Thu Oct 13 14:30:07 2011
@@ -626,7 +626,7 @@ def check_sigs(args):
target = args.target
else:
target = os.path.join(os.getenv('HOME'), 'public_html', 'svn',
- str(args.version), 'deploy')
+ str(args.version))
good_sigs = {}
Modified: subversion/branches/fs-py/tools/dist/templates/rc-news.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/tools/dist/templates/rc-news.ezt?rev=1182877&r1=1182876&r2=1182877&view=diff
==============================================================================
--- subversion/branches/fs-py/tools/dist/templates/rc-news.ezt (original)
+++ subversion/branches/fs-py/tools/dist/templates/rc-news.ezt Thu Oct 13 14:30:07 2011
@@ -4,7 +4,7 @@
title="Link to this section">¶</a>
</h3>
-<p>We are pleased to announce to release of Apache Subversion [version]. This
+<p>We are pleased to announce the release of Apache Subversion [version]. This
release is not intended for production use, but is provided as a milestone
to encourage wider testing and feedback from intrepid users and maintainers.
Please see the