You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/07/01 21:51:06 UTC
svn commit: r1498645 - in
/subversion/branches/fsfs-format7/subversion/libsvn_fs_x: fs.h fs_x.c
fs_x.h low_level.c low_level.h transaction.c tree.c
Author: stefan2
Date: Mon Jul 1 19:51:05 2013
New Revision: 1498645
URL: http://svn.apache.org/r1498645
Log:
On the fsfs-format7 branch: Remove the SVN_FS_FS__MIN_MERGEINFO_FORMAT
flags from FSX because it always support merge info. Remove all
references to that flag and the obsolete FSFS-fallback behavior.
* subversion/libsvn_fs_x/fs.h
(SVN_FS_FS__MIN_MERGEINFO_FORMAT): drop
* subversion/libsvn_fs_x/fs_x.h
(svn_fs_x__fs_supports_mergeinfo): drop
* subversion/libsvn_fs_x/fs_x.c
(svn_fs_x__fs_supports_mergeinfo): drop
* subversion/libsvn_fs_x/low_level.h
(svn_fs_x__write_noderev): drop the include_mergeinfo parameter
* subversion/libsvn_fs_x/low_level.c
(svn_fs_x__write_noderev): drop the include_mergeinfo parameter
* subversion/libsvn_fs_x/transaction.c
(svn_fs_x__put_node_revision,
write_final_rev): update callers
* subversion/libsvn_fs_x/tree.c
(x_change_node_prop,
merge,
x_delete_node,
copy_helper): remove check
(x_get_mergeinfo): remove check & fallback code
Modified:
subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs.h
subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.c
subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.h
subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.c
subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.h
subversion/branches/fsfs-format7/subversion/libsvn_fs_x/transaction.c
subversion/branches/fsfs-format7/subversion/libsvn_fs_x/tree.c
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs.h?rev=1498645&r1=1498644&r2=1498645&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs.h Mon Jul 1 19:51:05 2013
@@ -126,10 +126,6 @@ extern "C" {
using a transaction sequence in the txn-current file. */
#define SVN_FS_FS__MIN_TXN_CURRENT_FORMAT 3
-/* The minimum format number that maintains minfo-here and minfo-count
- noderev fields. */
-#define SVN_FS_FS__MIN_MERGEINFO_FORMAT 3
-
/* The minimum format number that stores node kinds in changed-paths lists. */
#define SVN_FS_FS__MIN_KIND_IN_CHANGED_FORMAT 4
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.c?rev=1498645&r1=1498644&r2=1498645&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.c Mon Jul 1 19:51:05 2013
@@ -176,13 +176,6 @@ check_format(int format)
SVN_FS_FS__FORMAT_NUMBER, format);
}
-svn_boolean_t
-svn_fs_x__fs_supports_mergeinfo(svn_fs_t *fs)
-{
- fs_x_data_t *ffd = fs->fsap_data;
- return ffd->format >= SVN_FS_FS__MIN_MERGEINFO_FORMAT;
-}
-
/* Find the youngest revision in a repository at path FS_PATH and
return it in *YOUNGEST_P. Perform temporary allocations in
POOL. */
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.h?rev=1498645&r1=1498644&r2=1498645&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_x/fs_x.h Mon Jul 1 19:51:05 2013
@@ -107,9 +107,6 @@ svn_error_t *svn_fs_x__file_checksum(svn
svn_checksum_kind_t kind,
apr_pool_t *pool);
-/* Return whether or not the given FS supports mergeinfo metadata. */
-svn_boolean_t svn_fs_x__fs_supports_mergeinfo(svn_fs_t *fs);
-
/* Create a fs_fs fileysystem referenced by FS at path PATH. Get any
temporary allocations from POOL.
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.c?rev=1498645&r1=1498644&r2=1498645&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.c Mon Jul 1 19:51:05 2013
@@ -558,7 +558,6 @@ svn_error_t *
svn_fs_x__write_noderev(svn_stream_t *outfile,
node_revision_t *noderev,
int format,
- svn_boolean_t include_mergeinfo,
apr_pool_t *pool)
{
SVN_ERR(svn_stream_printf(outfile, pool, HEADER_ID ": %s\n",
@@ -609,16 +608,13 @@ svn_fs_x__write_noderev(svn_stream_t *ou
if (noderev->is_fresh_txn_root)
SVN_ERR(svn_stream_puts(outfile, HEADER_FRESHTXNRT ": y\n"));
- if (include_mergeinfo)
- {
- if (noderev->mergeinfo_count > 0)
- SVN_ERR(svn_stream_printf(outfile, pool, HEADER_MINFO_CNT ": %"
- APR_INT64_T_FMT "\n",
- noderev->mergeinfo_count));
+ if (noderev->mergeinfo_count > 0)
+ SVN_ERR(svn_stream_printf(outfile, pool, HEADER_MINFO_CNT ": %"
+ APR_INT64_T_FMT "\n",
+ noderev->mergeinfo_count));
- if (noderev->has_mergeinfo)
- SVN_ERR(svn_stream_puts(outfile, HEADER_MINFO_HERE ": y\n"));
- }
+ if (noderev->has_mergeinfo)
+ SVN_ERR(svn_stream_puts(outfile, HEADER_MINFO_HERE ": y\n"));
return svn_stream_puts(outfile, "\n");
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.h?rev=1498645&r1=1498644&r2=1498645&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_x/low_level.h Mon Jul 1 19:51:05 2013
@@ -79,13 +79,11 @@ svn_fs_x__read_noderev(node_revision_t *
apr_pool_t *pool);
/* Write the node-revision NODEREV into the stream OUTFILE, compatible with
- filesystem format FORMAT. Only write mergeinfo-related metadata if
- INCLUDE_MERGEINFO is true. Temporary allocations are from POOL. */
+ filesystem format FORMAT. Temporary allocations are from POOL. */
svn_error_t *
svn_fs_x__write_noderev(svn_stream_t *outfile,
node_revision_t *noderev,
int format,
- svn_boolean_t include_mergeinfo,
apr_pool_t *pool);
/* This type enumerates all forms of representations that we support. */
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_x/transaction.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_x/transaction.c?rev=1498645&r1=1498644&r2=1498645&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_x/transaction.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_x/transaction.c Mon Jul 1 19:51:05 2013
@@ -553,9 +553,7 @@ svn_fs_x__put_node_revision(svn_fs_t *fs
SVN_ERR(svn_fs_x__write_noderev(svn_stream_from_aprfile2(noderev_file, TRUE,
pool),
- noderev, ffd->format,
- svn_fs_x__fs_supports_mergeinfo(fs),
- pool));
+ noderev, ffd->format, pool));
SVN_ERR(svn_io_file_close(noderev_file, pool));
@@ -2782,9 +2780,7 @@ write_final_rev(const svn_fs_id_t **new_
SVN_ERR(validate_root_noderev(fs, noderev, rev, pool));
SVN_ERR(svn_fs_x__write_noderev(svn_stream_from_aprfile2(file, TRUE, pool),
- noderev, ffd->format,
- svn_fs_x__fs_supports_mergeinfo(fs),
- pool));
+ noderev, ffd->format, pool));
/* reference the root noderev from the log-to-phys index */
rev_item.revision = SVN_INVALID_REVNUM;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_x/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_x/tree.c?rev=1498645&r1=1498644&r2=1498645&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_x/tree.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_x/tree.c Mon Jul 1 19:51:05 2013
@@ -1476,8 +1476,7 @@ x_change_node_prop(svn_fs_root_t *root,
if (! proplist)
proplist = apr_hash_make(pool);
- if (svn_fs_x__fs_supports_mergeinfo(root->fs)
- && strcmp (name, SVN_PROP_MERGEINFO) == 0)
+ if (strcmp(name, SVN_PROP_MERGEINFO) == 0)
{
apr_int64_t increment = 0;
svn_boolean_t had_mergeinfo;
@@ -1601,7 +1600,6 @@ merge(svn_stringbuf_t *conflict_p,
svn_fs_t *fs;
apr_pool_t *iterpool;
apr_int64_t mergeinfo_increment = 0;
- svn_boolean_t fs_supports_mergeinfo;
/* Make sure everyone comes from the same filesystem. */
fs = svn_fs_x__dag_get_fs(ancestor);
@@ -1749,8 +1747,6 @@ merge(svn_stringbuf_t *conflict_p,
SVN_ERR(svn_fs_x__dag_dir_entries(&t_entries, target, pool));
SVN_ERR(svn_fs_x__dag_dir_entries(&a_entries, ancestor, pool));
- fs_supports_mergeinfo = svn_fs_x__fs_supports_mergeinfo(fs);
-
/* for each entry E in a_entries... */
iterpool = svn_pool_create(pool);
for (hi = apr_hash_first(pool, a_entries);
@@ -1779,16 +1775,15 @@ merge(svn_stringbuf_t *conflict_p,
process, but the transaction did not touch this entry. */
else if (t_entry && svn_fs_x__id_eq(a_entry->id, t_entry->id))
{
+ apr_int64_t mergeinfo_start;
+ apr_int64_t mergeinfo_end;
+
dag_node_t *t_ent_node;
SVN_ERR(svn_fs_x__dag_get_node(&t_ent_node, fs,
t_entry->id, iterpool));
- if (fs_supports_mergeinfo)
- {
- apr_int64_t mergeinfo_start;
- SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_start,
- t_ent_node));
- mergeinfo_increment -= mergeinfo_start;
- }
+ SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_start,
+ t_ent_node));
+ mergeinfo_increment -= mergeinfo_start;
if (s_entry)
{
@@ -1796,13 +1791,9 @@ merge(svn_stringbuf_t *conflict_p,
SVN_ERR(svn_fs_x__dag_get_node(&s_ent_node, fs,
s_entry->id, iterpool));
- if (fs_supports_mergeinfo)
- {
- apr_int64_t mergeinfo_end;
- SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_end,
- s_ent_node));
- mergeinfo_increment += mergeinfo_end;
- }
+ SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_end,
+ s_ent_node));
+ mergeinfo_increment += mergeinfo_end;
SVN_ERR(svn_fs_x__dag_set_entry(target, name,
s_entry->id,
@@ -1873,8 +1864,7 @@ merge(svn_stringbuf_t *conflict_p,
txn_id,
&sub_mergeinfo_increment,
iterpool));
- if (fs_supports_mergeinfo)
- mergeinfo_increment += sub_mergeinfo_increment;
+ mergeinfo_increment += sub_mergeinfo_increment;
}
/* We've taken care of any possible implications E could have.
@@ -1894,6 +1884,7 @@ merge(svn_stringbuf_t *conflict_p,
const char *name = svn__apr_hash_index_key(hi);
apr_ssize_t klen = svn__apr_hash_index_klen(hi);
dag_node_t *s_ent_node;
+ apr_int64_t mergeinfo_s;
svn_pool_clear(iterpool);
@@ -1909,13 +1900,8 @@ merge(svn_stringbuf_t *conflict_p,
SVN_ERR(svn_fs_x__dag_get_node(&s_ent_node, fs,
s_entry->id, iterpool));
- if (fs_supports_mergeinfo)
- {
- apr_int64_t mergeinfo_s;
- SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_s,
- s_ent_node));
- mergeinfo_increment += mergeinfo_s;
- }
+ SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_s, s_ent_node));
+ mergeinfo_increment += mergeinfo_s;
SVN_ERR(svn_fs_x__dag_set_entry
(target, s_entry->name, s_entry->id, s_entry->kind,
@@ -1925,10 +1911,9 @@ merge(svn_stringbuf_t *conflict_p,
SVN_ERR(svn_fs_x__dag_update_ancestry(target, source, pool));
- if (fs_supports_mergeinfo)
- SVN_ERR(svn_fs_x__dag_increment_mergeinfo_count(target,
- mergeinfo_increment,
- pool));
+ SVN_ERR(svn_fs_x__dag_increment_mergeinfo_count(target,
+ mergeinfo_increment,
+ pool));
if (mergeinfo_increment_out)
*mergeinfo_increment_out = mergeinfo_increment;
@@ -2324,9 +2309,8 @@ x_delete_node(svn_fs_root_t *root,
/* Make the parent directory mutable, and do the deletion. */
SVN_ERR(make_path_mutable(root, parent_path->parent, path, pool));
- if (svn_fs_x__fs_supports_mergeinfo(root->fs))
- SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_count,
- parent_path->node));
+ SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_count,
+ parent_path->node));
SVN_ERR(svn_fs_x__dag_delete(parent_path->parent->node,
parent_path->entry,
txn_id, pool));
@@ -2429,9 +2413,8 @@ copy_helper(svn_fs_root_t *from_root,
if (to_parent_path->node)
{
kind = svn_fs_path_change_replace;
- if (svn_fs_x__fs_supports_mergeinfo(to_root->fs))
- SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_start,
- to_parent_path->node));
+ SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_start,
+ to_parent_path->node));
}
else
{
@@ -2439,9 +2422,7 @@ copy_helper(svn_fs_root_t *from_root,
mergeinfo_start = 0;
}
- if (svn_fs_x__fs_supports_mergeinfo(to_root->fs))
- SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_end,
- from_node));
+ SVN_ERR(svn_fs_x__dag_get_mergeinfo_count(&mergeinfo_end, from_node));
/* Make sure the target node's parents are mutable. */
SVN_ERR(make_path_mutable(to_root, to_parent_path->parent,
@@ -2463,8 +2444,7 @@ copy_helper(svn_fs_root_t *from_root,
parent_path_path(to_parent_path,
pool), pool));
- if (svn_fs_x__fs_supports_mergeinfo(to_root->fs)
- && mergeinfo_start != mergeinfo_end)
+ if (mergeinfo_start != mergeinfo_end)
SVN_ERR(increment_mergeinfo_up_tree(to_parent_path->parent,
mergeinfo_end - mergeinfo_start,
pool));
@@ -4078,20 +4058,10 @@ x_get_mergeinfo(svn_mergeinfo_catalog_t
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- fs_x_data_t *ffd = root->fs->fsap_data;
-
/* We require a revision root. */
if (root->is_txn_root)
return svn_error_create(SVN_ERR_FS_NOT_REVISION_ROOT, NULL, NULL);
- /* We have to actually be able to find the mergeinfo metadata! */
- if (! svn_fs_x__fs_supports_mergeinfo(root->fs))
- return svn_error_createf
- (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
- _("Querying mergeinfo requires version %d of the FSFS filesystem "
- "schema; filesystem '%s' uses only version %d"),
- SVN_FS_FS__MIN_MERGEINFO_FORMAT, root->fs->path, ffd->format);
-
/* Retrieve a path -> mergeinfo hash mapping. */
return get_mergeinfos_for_paths(root, catalog, paths,
inherit,