Lines Matching refs:root

30    transaction's root down into directories and files shared with
76 /* The root structures.
79 enough that it isn't safe to cache the DAG node for the root
82 the root DAG node? When cloning transaction DAG nodes in and out
86 kept in the FS object and shared among multiple revision root
113 svn_fs_root_t *root,
119 /* Creating transaction and revision root nodes. */
166 svn_fs_x__root_txn_id(svn_fs_root_t *root)
168 fs_txn_root_data_t *frd = root->fsap_data;
169 assert(root->is_txn_root);
176 svn_fs_x__root_change_set(svn_fs_root_t *root)
178 if (root->is_txn_root)
179 return svn_fs_x__change_set_by_txn(svn_fs_x__root_txn_id(root));
181 return svn_fs_x__change_set_by_rev(root->rev);
268 svn_fs_root_t *root,
274 if ((! root->is_txn_root)
278 The root directory ("" or "/") node is stored in the
280 root, so we can just reach in and grab it directly. */
281 svn_fs_x__init_rev_root(&noderev_id, root->rev);
288 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, scratch_pool));
293 *id_p = svn_fs_x__id_create(svn_fs_x__id_create_context(root->fs, pool),
323 /* Are both (!) root paths? Then, they are related and we only test how
331 /* For txn roots, root->REV is the base revision of that TXN. */
364 svn_fs_root_t *root,
370 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, scratch_pool));
381 svn_fs_root_t *root,
387 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, pool));
399 svn_fs_root_t *root,
406 svn_error_t *err = svn_fs_x__get_temp_dag_node(&node, root, path,
430 svn_fs_root_t *root,
439 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, scratch_pool));
457 svn_fs_root_t *root,
464 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, scratch_pool));
473 svn_fs_root_t *root,
479 SVN_ERR(x_node_proplist(&props, root, path, scratch_pool));
511 x_change_node_prop(svn_fs_root_t *root,
523 if (! root->is_txn_root)
524 return SVN_FS__NOT_TXN(root);
525 txn_id = svn_fs_x__root_txn_id(root);
527 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, root, path, 0, TRUE, subpool,
532 if (root->txn_flags & SVN_FS_TXN_CHECK_LOCKS)
533 SVN_ERR(svn_fs_x__allow_locked_operation(path, root->fs, FALSE, FALSE,
536 SVN_ERR(svn_fs_x__make_path_mutable(root, dag_path, path, subpool,
578 SVN_ERR(add_change(root->fs, txn_id, path,
588 /* Determine if the properties of two path/root combinations are
624 /* Set *NODE to the root node of ROOT. */
627 svn_fs_root_t *root,
631 return svn_fs_x__get_dag_node(node, root, "/", result_pool, scratch_pool);
1081 SOURCE_NODE, and its root node will have a new ID, a
1140 * attach the txn root as the root of the new revision, because that
1205 succeeds, this youngest root node will become the new base
1206 root for the svn txn that was the target of the merge (but
1208 why we're careful to get this root in its own bdb txn
1213 /* Try to merge. If the merge succeeds, the base root node of
1216 the root node of the youngest rev is by then. */
1317 /* Open a txn for the txn root into which we're merging. */
1355 svn_fs_root_t *root,
1367 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, scratch_pool));
1372 context = svn_fs_x__id_create_context(root->fs, pool);
1397 svn_fs_root_t *root,
1402 *ordered_p = svn_fs_x__order_dir_entries(root->fs, entries, result_pool,
1409 no entries, and no properties. ROOT must be the root of a
1413 x_make_dir(svn_fs_root_t *root,
1419 svn_fs_x__txn_id_t txn_id = svn_fs_x__root_txn_id(root);
1422 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, root, path,
1429 if (root->txn_flags & SVN_FS_TXN_CHECK_LOCKS)
1430 SVN_ERR(svn_fs_x__allow_locked_operation(path, root->fs, TRUE, FALSE,
1436 return SVN_FS__ALREADY_EXISTS(root, path);
1439 SVN_ERR(svn_fs_x__make_path_mutable(root, dag_path->parent, path, subpool,
1453 SVN_ERR(add_change(root->fs, txn_id, path,
1463 root. Perform temporary allocations in SCRATCH_POOL. */
1465 x_delete_node(svn_fs_root_t *root,
1475 if (! root->is_txn_root)
1476 return SVN_FS__NOT_TXN(root);
1478 txn_id = svn_fs_x__root_txn_id(root);
1479 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, root, path, 0, TRUE, subpool,
1483 /* We can't remove the root of the filesystem. */
1486 _("The root directory cannot be deleted"));
1490 if (root->txn_flags & SVN_FS_TXN_CHECK_LOCKS)
1491 SVN_ERR(svn_fs_x__allow_locked_operation(path, root->fs, TRUE, FALSE,
1495 SVN_ERR(svn_fs_x__make_path_mutable(root, dag_path->parent, path, subpool,
1503 svn_fs_x__invalidate_dag_cache(root, parent_path_path(dag_path, subpool));
1512 SVN_ERR(add_change(root->fs, txn_id, path,
1729 svn_fs_root_t *root,
1736 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, pool));
1751 x_make_file(svn_fs_root_t *root,
1757 svn_fs_x__txn_id_t txn_id = svn_fs_x__root_txn_id(root);
1760 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, root, path,
1767 return SVN_FS__ALREADY_EXISTS(root, path);
1771 if (root->txn_flags & SVN_FS_TXN_CHECK_LOCKS)
1772 SVN_ERR(svn_fs_x__allow_locked_operation(path, root->fs, FALSE, FALSE,
1776 SVN_ERR(svn_fs_x__make_path_mutable(root, dag_path->parent, path, subpool,
1790 SVN_ERR(add_change(root->fs, txn_id, path,
1803 svn_fs_root_t *root,
1809 /* First create a dag_node_t from the root/path pair. */
1810 SVN_ERR(svn_fs_x__get_temp_dag_node(&file, root, path, scratch_pool));
1823 svn_fs_root_t *root,
1829 SVN_ERR(svn_fs_x__get_temp_dag_node(&file, root, path, pool));
1840 svn_fs_root_t *root,
1847 /* First create a dag_node_t from the root/path pair. */
1848 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, pool));
1864 svn_fs_root_t *root,
1871 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, pool));
1894 svn_fs_root_t *root;
1943 svn_fs_x__txn_id_t txn_id = svn_fs_x__root_txn_id(tb->root);
1947 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, tb->root, tb->path, 0, TRUE,
1952 if (tb->root->txn_flags & SVN_FS_TXN_CHECK_LOCKS)
1953 SVN_ERR(svn_fs_x__allow_locked_operation(tb->path, tb->root->fs,
1957 SVN_ERR(svn_fs_x__make_path_mutable(tb->root, dag_path, tb->path,
1997 return add_change(tb->root->fs, txn_id, tb->path,
2009 svn_fs_root_t *root,
2018 tb->root = root;
2041 svn_fs_root_t *root;
2109 svn_fs_x__txn_id_t txn_id = svn_fs_x__root_txn_id(tb->root);
2113 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, tb->root, tb->path, 0, TRUE,
2118 if (tb->root->txn_flags & SVN_FS_TXN_CHECK_LOCKS)
2119 SVN_ERR(svn_fs_x__allow_locked_operation(tb->path, tb->root->fs,
2123 SVN_ERR(svn_fs_x__make_path_mutable(tb->root, dag_path, tb->path,
2137 return add_change(tb->root->fs, txn_id, tb->path,
2148 svn_fs_root_t *root,
2156 tb->root = root;
2338 svn_fs_root_t *root,
2344 if (root->is_txn_root)
2347 SVN_ERR(svn_fs_x__txn_changes_fetch(&changed_paths, root->fs,
2348 svn_fs_x__root_txn_id(root),
2371 root->fs, root->rev,
2428 PATH under ROOT. ROOT must be a revision root. Use POOL for all
2432 svn_fs_root_t *root,
2439 /* We require a revision root. */
2440 if (root->is_txn_root)
2443 /* And we require that the path exist in the root. */
2444 SVN_ERR(svn_fs_x__check_path(&kind, root, path, scratch_pool));
2446 return SVN_FS__NOT_FOUND(root, path);
2449 *history_p = assemble_history(root->fs, path, root->rev, FALSE, NULL,
2497 svn_fs_root_t *root,
2501 svn_fs_t *fs = root->fs;
2513 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, root, path, 0, FALSE,
2580 svn_fs_root_t *root,
2587 SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, path, scratch_pool));
2610 svn_fs_root_t *root;
2672 SVN_ERR(svn_fs_x__revision_root(&root, fs, revision, scratch_pool));
2676 SVN_ERR(svn_fs_x__get_dag_path(&dag_path, root, path, 0, FALSE,
2813 /* Special case: the root directory changes in every single
2814 revision, no exceptions. And, the root can't be the target (or
2928 crawl_directory_dag_for_mergeinfo(svn_fs_root_t *root,
2951 SVN_ERR(svn_fs_x__get_temp_dag_node(&kid_dag, root, kid_path,
2995 SVN_ERR(crawl_directory_dag_for_mergeinfo(root,
3111 add_descendant_mergeinfo(svn_fs_root_t *root,
3119 SVN_ERR(svn_fs_x__get_temp_dag_node(&this_dag, root, path, scratch_pool));
3121 SVN_ERR(crawl_directory_dag_for_mergeinfo(root,
3137 get_mergeinfos_for_paths(svn_fs_root_t *root,
3157 err = get_mergeinfo_for_path(&path_mergeinfo, root, path,
3177 SVN_ERR(add_descendant_mergeinfo(root, path, receiver, baton,
3188 x_get_mergeinfo(svn_fs_root_t *root,
3197 /* We require a revision root. */
3198 if (root->is_txn_root)
3202 return get_mergeinfos_for_paths(root, paths, inherit,
3210 /* The vtable associated with root objects. */
3247 /* Construct a new root object in FS, allocated from RESULT_POOL. */
3252 svn_fs_root_t *root = apr_pcalloc(result_pool, sizeof(*root));
3254 root->fs = fs;
3255 root->pool = result_pool;
3256 root->vtable = &root_vtable;
3258 return root;
3262 /* Construct a root object referring to the root of revision REV in FS.
3263 Create the new root in RESULT_POOL. */
3269 svn_fs_root_t *root = make_root(fs, result_pool);
3271 root->is_txn_root = FALSE;
3272 root->rev = rev;
3274 return root;
3278 /* Construct a root object referring to the root of the transaction
3280 describe transaction's behavior. Create the new root in RESULT_POOL. */
3289 svn_fs_root_t *root = make_root(fs, result_pool);
3290 fs_txn_root_data_t *frd = apr_pcalloc(root->pool, sizeof(*frd));
3293 root->is_txn_root = TRUE;
3294 root->txn = svn_fs_x__txn_name(txn_id, root->pool);
3295 root->txn_flags = flags;
3296 root->rev = base_rev;
3297 root->fsap_data = frd;
3299 *root_p = root;
3359 /* Issue #4129. (This check will explicitly catch non-root instances too.) */
3449 svn_fs_x__verify_root(svn_fs_root_t *root,
3455 /* Issue #4129: bogus pred-counts and minfo-cnt's on the root node-rev
3465 SVN_ERR(svn_fs_x__dag_root(&root_dir, root->fs,
3466 svn_fs_x__root_change_set(root),
3471 SVN_ERR(verify_node(root_dir, root->rev, parent_nodes, scratch_pool));
3473 /* Verify explicitly the predecessor of the root. */
3481 if (!root->is_txn_root && has_predecessor != !!root->rev)
3483 "r%ld's root node's predecessor is "
3485 root->rev,
3490 if (root->is_txn_root && !has_predecessor)
3492 "Transaction '%s''s root node's predecessor is "
3494 root->txn);
3500 if (! root->is_txn_root && pred_rev+1 != root->rev)
3503 "r%ld's root node's predecessor is r%ld"
3505 root->rev, pred_rev, root->rev - 1);
3506 if (root->is_txn_root && pred_rev != root->rev)
3508 "Transaction '%s''s root node's predecessor"
3511 root->txn, pred_rev, root->rev);