Author: stefan2
Date: Sat Dec 29 01:06:15 2012
New Revision: 1426679
URL: http://svn.apache.org/viewvc?rev=1426679&view=rev
Log:
On the fsfs-format7 branch: remove most constants from the low-level API
and adapt callers.
* subversion/libsvn_fs_fs/low_level.h
(SVN_FS_FS__KIND_FILE): renamed from KIND_FILE
(SVN_FS_FS__KIND_DIR): renamed from KIND_DIR
(HEADER_ID,
HEADER_TYPE,
HEADER_COUNT,
HEADER_PROPS,
HEADER_TEXT,
HEADER_CPATH,
HEADER_PRED,
HEADER_COPYFROM,
HEADER_COPYROOT,
HEADER_FRESHTXNRT,
HEADER_MINFO_HERE,
HEADER_MINFO_CNT,
ACTION_MODIFY,
ACTION_ADD,
ACTION_DELETE,
ACTION_REPLACE,
ACTION_RESET,
FLAG_TRUE,
FLAG_FALSE,
REP_PLAIN,
REP_DELTA,
FSFS_MAX_PATH_LEN): remove from API ...
* subversion/libsvn_fs_fs/low_level.c
(HEADER_ID,
HEADER_TYPE,
HEADER_COUNT,
HEADER_PROPS,
HEADER_TEXT,
HEADER_CPATH,
HEADER_PRED,
HEADER_COPYFROM,
HEADER_COPYROOT,
HEADER_FRESHTXNRT,
HEADER_MINFO_HERE,
HEADER_MINFO_CNT,
ACTION_MODIFY,
ACTION_ADD,
ACTION_DELETE,
ACTION_REPLACE,
ACTION_RESET,
FLAG_TRUE,
FLAG_FALSE,
REP_PLAIN,
REP_DELTA,
FSFS_MAX_PATH_LEN): ... and declare them locally
(svn_fs_fs__read_noderev,
svn_fs_fs__write_noderev,
read_change,
write_change_entry): adapt to renames
* subversion/libsvn_fs_fs/cached_data.c
(parse_dir_entries): ditto
* subversion/libsvn_fs_fs/recovery.c
(recover_find_max_ids): same here ...
* subversion/libsvn_fs_fs/transaction.c
(unparse_dir_entry): ... and here
(rep_write_get_baton,
write_hash_delta_rep): use svn_fs_fs__write_rep_header API
Modified:
subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/cached_data.c
subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c
subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h
subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/recovery.c
subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/cached_data.c
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/cached_data.c?rev=1426679&r1=1426678&r2=1426679&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/cached_data.c
(original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/cached_data.c Sat
Dec 29 01:06:15 2012
@@ -1531,11 +1531,11 @@ parse_dir_entries(apr_hash_t **entries_p
_("Directory entry corrupt in '%s'"),
unparsed_id);
- if (strcmp(str, KIND_FILE) == 0)
+ if (strcmp(str, SVN_FS_FS__KIND_FILE) == 0)
{
dirent->kind = svn_node_file;
}
- else if (strcmp(str, KIND_DIR) == 0)
+ else if (strcmp(str, SVN_FS_FS__KIND_DIR) == 0)
{
dirent->kind = svn_node_dir;
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c?rev=1426679&r1=1426678&r2=1426679&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c
(original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c Sat
Dec 29 01:06:15 2012
@@ -34,6 +34,39 @@
#include "pack.h"
#include "cached_data.h"
+/* Headers used to describe node-revision in the revision file. */
+#define HEADER_ID "id"
+#define HEADER_TYPE "type"
+#define HEADER_COUNT "count"
+#define HEADER_PROPS "props"
+#define HEADER_TEXT "text"
+#define HEADER_CPATH "cpath"
+#define HEADER_PRED "pred"
+#define HEADER_COPYFROM "copyfrom"
+#define HEADER_COPYROOT "copyroot"
+#define HEADER_FRESHTXNRT "is-fresh-txn-root"
+#define HEADER_MINFO_HERE "minfo-here"
+#define HEADER_MINFO_CNT "minfo-cnt"
+
+/* Kinds that a change can be. */
+#define ACTION_MODIFY "modify"
+#define ACTION_ADD "add"
+#define ACTION_DELETE "delete"
+#define ACTION_REPLACE "replace"
+#define ACTION_RESET "reset"
+
+/* True and False flags. */
+#define FLAG_TRUE "true"
+#define FLAG_FALSE "false"
+
+/* Kinds of representation. */
+#define REP_PLAIN "PLAIN"
+#define REP_DELTA "DELTA"
+
+/* An arbitrary maximum path length, so clients can't run us out of memory
+ * by giving us arbitrarily large paths. */
+#define FSFS_MAX_PATH_LEN 4096
+
/* The 256 is an arbitrary size large enough to hold the node id and the
* various flags. */
#define MAX_CHANGE_LINE_LEN FSFS_MAX_PATH_LEN + 256
@@ -351,14 +384,16 @@ svn_fs_fs__read_noderev(node_revision_t
value = apr_hash_get(headers, HEADER_TYPE, APR_HASH_KEY_STRING);
if ((value == NULL) ||
- (strcmp(value, KIND_FILE) != 0 && strcmp(value, KIND_DIR)))
+ ( strcmp(value, SVN_FS_FS__KIND_FILE)
+ && strcmp(value, SVN_FS_FS__KIND_DIR)))
/* ### s/kind/type/ */
return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
_("Missing kind field in node-rev '%s'"),
noderev_id);
- noderev->kind = (strcmp(value, KIND_FILE) == 0) ? svn_node_file
- : svn_node_dir;
+ noderev->kind = (strcmp(value, SVN_FS_FS__KIND_FILE) == 0)
+ ? svn_node_file
+ : svn_node_dir;
/* Read the 'count' field. */
value = apr_hash_get(headers, HEADER_COUNT, APR_HASH_KEY_STRING);
@@ -529,7 +564,7 @@ svn_fs_fs__write_noderev(svn_stream_t *o
SVN_ERR(svn_stream_printf(outfile, pool, HEADER_TYPE ": %s\n",
(noderev->kind == svn_node_file) ?
- KIND_FILE : KIND_DIR));
+ SVN_FS_FS__KIND_FILE : SVN_FS_FS__KIND_DIR));
if (noderev->predecessor_id)
SVN_ERR(svn_stream_printf(outfile, pool, HEADER_PRED ": %s\n",
@@ -724,9 +759,9 @@ read_change(change_t **change_p,
/* Cap off the end of "str" (the action). */
*kind_str = '\0';
kind_str++;
- if (strcmp(kind_str, KIND_FILE) == 0)
+ if (strcmp(kind_str, SVN_FS_FS__KIND_FILE) == 0)
change->node_kind = svn_node_file;
- else if (strcmp(kind_str, KIND_DIR) == 0)
+ else if (strcmp(kind_str, SVN_FS_FS__KIND_DIR) == 0)
change->node_kind = svn_node_dir;
else
return svn_error_create(SVN_ERR_FS_CORRUPT, NULL,
@@ -903,7 +938,8 @@ write_change_entry(svn_stream_t *stream,
|| change->node_kind == svn_node_file);
kind_string = apr_psprintf(pool, "-%s",
change->node_kind == svn_node_dir
- ? KIND_DIR : KIND_FILE);
+ ? SVN_FS_FS__KIND_DIR
+ : SVN_FS_FS__KIND_FILE);
}
buf = apr_psprintf(pool, "%s %s%s %s %s %s\n",
idstr, change_string, kind_string,
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h?rev=1426679&r1=1426678&r2=1426679&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h
(original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h Sat
Dec 29 01:06:15 2012
@@ -25,42 +25,9 @@
#include "fs_fs.h"
#include "id.h"
-/* Headers used to describe node-revision in the revision file. */
-#define HEADER_ID "id"
-#define HEADER_TYPE "type"
-#define HEADER_COUNT "count"
-#define HEADER_PROPS "props"
-#define HEADER_TEXT "text"
-#define HEADER_CPATH "cpath"
-#define HEADER_PRED "pred"
-#define HEADER_COPYFROM "copyfrom"
-#define HEADER_COPYROOT "copyroot"
-#define HEADER_FRESHTXNRT "is-fresh-txn-root"
-#define HEADER_MINFO_HERE "minfo-here"
-#define HEADER_MINFO_CNT "minfo-cnt"
-
-/* Kinds that a change can be. */
-#define ACTION_MODIFY "modify"
-#define ACTION_ADD "add"
-#define ACTION_DELETE "delete"
-#define ACTION_REPLACE "replace"
-#define ACTION_RESET "reset"
-
-/* True and False flags. */
-#define FLAG_TRUE "true"
-#define FLAG_FALSE "false"
-
/* Kinds that a node-rev can be. */
-#define KIND_FILE "file"
-#define KIND_DIR "dir"
-
-/* Kinds of representation. */
-#define REP_PLAIN "PLAIN"
-#define REP_DELTA "DELTA"
-
-/* An arbitrary maximum path length, so clients can't run us out of memory
- * by giving us arbitrarily large paths. */
-#define FSFS_MAX_PATH_LEN 4096
+#define SVN_FS_FS__KIND_FILE "file"
+#define SVN_FS_FS__KIND_DIR "dir"
/* Given the last "few" bytes (should be at least 40) of revision REV in
* TRAILER, parse the last line and return the offset of the root noderev
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/recovery.c
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/recovery.c?rev=1426679&r1=1426678&r2=1426679&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/recovery.c
(original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/recovery.c Sat Dec
29 01:06:15 2012
@@ -226,9 +226,9 @@ recover_find_max_ids(svn_fs_t *fs, svn_r
return svn_error_create(SVN_ERR_FS_CORRUPT, NULL,
_("Directory entry corrupt"));
- if (strcmp(str, KIND_FILE) == 0)
+ if (strcmp(str, SVN_FS_FS__KIND_FILE) == 0)
kind = svn_node_file;
- else if (strcmp(str, KIND_DIR) == 0)
+ else if (strcmp(str, SVN_FS_FS__KIND_DIR) == 0)
kind = svn_node_dir;
else
{
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c?rev=1426679&r1=1426678&r2=1426679&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
(original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c Sat
Dec 29 01:06:15 2012
@@ -585,7 +585,8 @@ unparse_dir_entry(svn_node_kind_t kind,
apr_pool_t *pool)
{
return apr_psprintf(pool, "%s %s",
- (kind == svn_node_file) ? KIND_FILE : KIND_DIR,
+ (kind == svn_node_file) ? SVN_FS_FS__KIND_FILE
+ : SVN_FS_FS__KIND_DIR,
svn_fs_fs__id_unparse(id, pool)->data);
}
@@ -1761,11 +1762,11 @@ rep_write_get_baton(struct rep_write_bat
apr_file_t *file;
representation_t *base_rep;
svn_stream_t *source;
- const char *header;
svn_txdelta_window_handler_t wh;
void *whb;
fs_fs_data_t *ffd = fs->fsap_data;
int diff_version = ffd->format >= SVN_FS_FS__MIN_SVNDIFF1_FORMAT ? 1 : 0;
+ svn_fs_fs__rep_header_t header = { TRUE };
b = apr_pcalloc(pool, sizeof(*b));
@@ -1795,17 +1796,15 @@ rep_write_get_baton(struct rep_write_bat
/* Write out the rep header. */
if (base_rep)
{
- header = apr_psprintf(b->pool, REP_DELTA " %ld %" APR_OFF_T_FMT " %"
- SVN_FILESIZE_T_FMT "\n",
- base_rep->revision, base_rep->offset,
- base_rep->size);
+ header.base_revision = base_rep->revision;
+ header.base_offset = base_rep->offset;
+ header.base_length = base_rep->size;
}
else
{
- header = REP_DELTA "\n";
+ header.is_delta_vs_empty = TRUE;
}
- SVN_ERR(svn_io_file_write_full(file, header, strlen(header), NULL,
- b->pool));
+ SVN_ERR(svn_fs_fs__write_rep_header(&header, b->rep_stream, b->pool));
/* Now determine the offset of the actual svndiff data. */
SVN_ERR(get_file_offset(&b->delta_start, file, b->pool));
@@ -2258,7 +2257,7 @@ write_hash_delta_rep(representation_t *r
representation_t *base_rep;
representation_t *old_rep;
svn_stream_t *source;
- const char *header;
+ svn_fs_fs__rep_header_t header = { TRUE };
apr_off_t rep_end = 0;
apr_off_t delta_start = 0;
@@ -2276,20 +2275,18 @@ write_hash_delta_rep(representation_t *r
/* Write out the rep header. */
if (base_rep)
{
- header = apr_psprintf(pool, REP_DELTA " %ld %" APR_OFF_T_FMT " %"
- SVN_FILESIZE_T_FMT "\n",
- base_rep->revision, base_rep->offset,
- base_rep->size);
+ header.base_revision = base_rep->revision;
+ header.base_offset = base_rep->offset;
+ header.base_length = base_rep->size;
}
else
{
- header = REP_DELTA "\n";
+ header.is_delta_vs_empty = TRUE;
}
- SVN_ERR(svn_io_file_write_full(file, header, strlen(header), NULL,
- pool));
- SVN_ERR(get_file_offset(&delta_start, file, pool));
file_stream = svn_stream_from_aprfile2(file, TRUE, pool);
+ SVN_ERR(svn_fs_fs__write_rep_header(&header, file_stream, pool));
+ SVN_ERR(get_file_offset(&delta_start, file, pool));
/* Prepare to write the svndiff data. */
svn_txdelta_to_svndiff3(&diff_wh,