You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2011/10/31 17:51:55 UTC
svn commit: r1195565 [2/2] - in /subversion/branches/showing-merge-info: ./
build/ build/win32/ subversion/bindings/javahl/native/ subversion/include/
subversion/include/private/ subversion/libsvn_client/
subversion/libsvn_delta/ subversion/libsvn_diff...
Modified: subversion/branches/showing-merge-info/subversion/libsvn_repos/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_repos/log.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_repos/log.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_repos/log.c Mon Oct 31 16:51:52 2011
@@ -663,9 +663,9 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
svn_mergeinfo_catalog_t tmp_catalog;
APR_ARRAY_PUSH(query_paths, const char *) = changed_path;
- SVN_ERR(svn_fs_get_mergeinfo(&tmp_catalog, root,
- query_paths, svn_mergeinfo_inherited,
- FALSE, iterpool));
+ SVN_ERR(svn_fs_get_mergeinfo2(&tmp_catalog, root,
+ query_paths, svn_mergeinfo_inherited,
+ FALSE, TRUE, iterpool, iterpool));
tmp_mergeinfo = apr_hash_get(tmp_catalog, changed_path,
APR_HASH_KEY_STRING);
if (tmp_mergeinfo)
@@ -682,9 +682,9 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
svn_mergeinfo_catalog_t tmp_catalog;
APR_ARRAY_PUSH(query_paths, const char *) = base_path;
- SVN_ERR(svn_fs_get_mergeinfo(&tmp_catalog, base_root,
- query_paths, svn_mergeinfo_inherited,
- FALSE, iterpool));
+ SVN_ERR(svn_fs_get_mergeinfo2(&tmp_catalog, base_root,
+ query_paths, svn_mergeinfo_inherited,
+ FALSE, TRUE, iterpool, iterpool));
tmp_mergeinfo = apr_hash_get(tmp_catalog, base_path,
APR_HASH_KEY_STRING);
if (tmp_mergeinfo)
@@ -835,8 +835,9 @@ get_combined_mergeinfo_changes(svn_merge
SVN_ERR(svn_fs_revision_root(&prev_root, fs, prev_rev, iterpool));
query_paths = apr_array_make(iterpool, 1, sizeof(const char *));
APR_ARRAY_PUSH(query_paths, const char *) = prev_path;
- err = svn_fs_get_mergeinfo(&catalog, prev_root, query_paths,
- svn_mergeinfo_inherited, FALSE, iterpool);
+ err = svn_fs_get_mergeinfo2(&catalog, prev_root, query_paths,
+ svn_mergeinfo_inherited, FALSE, TRUE,
+ iterpool, iterpool);
if (err && (err->apr_err == SVN_ERR_FS_NOT_FOUND ||
err->apr_err == SVN_ERR_FS_NOT_DIRECTORY ||
err->apr_err == SVN_ERR_MERGEINFO_PARSE_ERROR))
@@ -867,8 +868,9 @@ get_combined_mergeinfo_changes(svn_merge
/* Fetch the current mergeinfo (as of REV, and including
inherited stuff) for this path. */
APR_ARRAY_IDX(query_paths, 0, const char *) = path;
- SVN_ERR(svn_fs_get_mergeinfo(&catalog, root, query_paths,
- svn_mergeinfo_inherited, FALSE, iterpool));
+ SVN_ERR(svn_fs_get_mergeinfo2(&catalog, root, query_paths,
+ svn_mergeinfo_inherited, FALSE, TRUE,
+ iterpool, iterpool));
/* Issue #4022 again, fetch the raw inherited mergeinfo. */
SVN_ERR(svn_fs_get_mergeinfo2(&inherited_catalog, root, query_paths,
Modified: subversion/branches/showing-merge-info/subversion/libsvn_repos/rev_hunt.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_repos/rev_hunt.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_repos/rev_hunt.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_repos/rev_hunt.c Mon Oct 31 16:51:52 2011
@@ -982,30 +982,27 @@ get_path_mergeinfo(apr_hash_t **mergeinf
svn_fs_t *fs,
const char *path,
svn_revnum_t revnum,
- apr_pool_t *pool)
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
svn_mergeinfo_catalog_t tmp_catalog;
svn_fs_root_t *root;
- apr_pool_t *subpool = svn_pool_create(pool);
- apr_array_header_t *paths = apr_array_make(subpool, 1,
+ apr_array_header_t *paths = apr_array_make(scratch_pool, 1,
sizeof(const char *));
APR_ARRAY_PUSH(paths, const char *) = path;
- SVN_ERR(svn_fs_revision_root(&root, fs, revnum, subpool));
+ SVN_ERR(svn_fs_revision_root(&root, fs, revnum, scratch_pool));
/* We do not need to call svn_repos_fs_get_mergeinfo() (which performs authz)
because we will filter out unreadable revisions in
find_interesting_revision(), above */
- SVN_ERR(svn_fs_get_mergeinfo(&tmp_catalog, root, paths,
- svn_mergeinfo_inherited, FALSE, subpool));
+ SVN_ERR(svn_fs_get_mergeinfo2(&tmp_catalog, root, paths,
+ svn_mergeinfo_inherited, FALSE, TRUE,
+ result_pool, scratch_pool));
*mergeinfo = apr_hash_get(tmp_catalog, path, APR_HASH_KEY_STRING);
- if (*mergeinfo)
- *mergeinfo = svn_mergeinfo_dup(*mergeinfo, pool);
- else
- *mergeinfo = apr_hash_make(pool);
-
- svn_pool_destroy(subpool);
+ if (!*mergeinfo)
+ *mergeinfo = apr_hash_make(result_pool);
return SVN_NO_ERROR;
}
@@ -1042,9 +1039,9 @@ static svn_error_t *
get_merged_mergeinfo(apr_hash_t **merged_mergeinfo,
svn_repos_t *repos,
struct path_revision *old_path_rev,
- apr_pool_t *pool)
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
- apr_pool_t *subpool = svn_pool_create(pool);
apr_hash_t *curr_mergeinfo, *prev_mergeinfo, *deleted, *changed;
svn_error_t *err;
svn_fs_root_t *root;
@@ -1054,8 +1051,8 @@ get_merged_mergeinfo(apr_hash_t **merged
/* Getting/parsing/diffing svn:mergeinfo is expensive, so only do it
if there is a property change. */
SVN_ERR(svn_fs_revision_root(&root, repos->fs, old_path_rev->revnum,
- subpool));
- SVN_ERR(svn_fs_paths_changed2(&changed_paths, root, subpool));
+ scratch_pool));
+ SVN_ERR(svn_fs_paths_changed2(&changed_paths, root, scratch_pool));
while (1)
{
svn_fs_path_change2_t *changed_path = apr_hash_get(changed_paths,
@@ -1065,17 +1062,17 @@ get_merged_mergeinfo(apr_hash_t **merged
break;
if (svn_fspath__is_root(path, strlen(path)))
{
- svn_pool_destroy(subpool);
*merged_mergeinfo = NULL;
return SVN_NO_ERROR;
}
- path = svn_fspath__dirname(path, subpool);
+ path = svn_fspath__dirname(path, scratch_pool);
}
/* First, find the mergeinfo difference for old_path_rev->revnum, and
old_path_rev->revnum - 1. */
err = get_path_mergeinfo(&curr_mergeinfo, repos->fs, old_path_rev->path,
- old_path_rev->revnum, subpool);
+ old_path_rev->revnum, scratch_pool,
+ scratch_pool);
if (err)
{
if (err->apr_err == SVN_ERR_MERGEINFO_PARSE_ERROR)
@@ -1084,7 +1081,6 @@ get_merged_mergeinfo(apr_hash_t **merged
best we can do is ignore it and act is if there are
no mergeinfo differences. */
svn_error_clear(err);
- svn_pool_destroy(subpool);
*merged_mergeinfo = NULL;
return SVN_NO_ERROR;
}
@@ -1095,14 +1091,14 @@ get_merged_mergeinfo(apr_hash_t **merged
}
err = get_path_mergeinfo(&prev_mergeinfo, repos->fs, old_path_rev->path,
- old_path_rev->revnum - 1, subpool);
+ old_path_rev->revnum - 1, scratch_pool,
+ scratch_pool);
if (err && (err->apr_err == SVN_ERR_FS_NOT_FOUND
|| err->apr_err == SVN_ERR_MERGEINFO_PARSE_ERROR))
{
/* If the path doesn't exist in the previous revision or it does exist
but has invalid mergeinfo (Issue #3896), assume no merges. */
svn_error_clear(err);
- svn_pool_destroy(subpool);
*merged_mergeinfo = NULL;
return SVN_NO_ERROR;
}
@@ -1111,8 +1107,9 @@ get_merged_mergeinfo(apr_hash_t **merged
/* Then calculate and merge the differences. */
SVN_ERR(svn_mergeinfo_diff2(&deleted, &changed, prev_mergeinfo,
- curr_mergeinfo, FALSE, pool, subpool));
- SVN_ERR(svn_mergeinfo_merge2(changed, deleted, pool, subpool));
+ curr_mergeinfo, FALSE, result_pool,
+ scratch_pool));
+ SVN_ERR(svn_mergeinfo_merge2(changed, deleted, result_pool, scratch_pool));
/* Store the result. */
if (apr_hash_count(changed))
@@ -1120,8 +1117,6 @@ get_merged_mergeinfo(apr_hash_t **merged
else
*merged_mergeinfo = NULL;
- svn_pool_destroy(subpool);
-
return SVN_NO_ERROR;
}
@@ -1204,7 +1199,7 @@ find_interesting_revisions(apr_array_hea
if (include_merged_revisions)
SVN_ERR(get_merged_mergeinfo(&path_rev->merged_mergeinfo, repos,
- path_rev, result_pool));
+ path_rev, result_pool, iterpool));
else
path_rev->merged_mergeinfo = NULL;
Propchange: subversion/branches/showing-merge-info/subversion/libsvn_subr/adler32.c
('svn:mergeinfo' removed)
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/cmdline.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/cmdline.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/cmdline.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/cmdline.c Mon Oct 31 16:51:52 2011
@@ -637,7 +637,7 @@ svn_cmdline__print_xml_prop(svn_stringbu
const char *encoding = NULL;
if (*outstr == NULL)
- *outstr = svn_stringbuf_create("", pool);
+ *outstr = svn_stringbuf_create_empty(pool);
if (svn_xml_is_xml_safe(propval->data, propval->len))
{
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/config.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/config.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/config.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/config.c Mon Oct 31 16:51:52 2011
@@ -88,8 +88,8 @@ svn_config_create(svn_config_t **cfgp,
cfg->pool = result_pool;
cfg->x_pool = svn_pool_create(result_pool);
cfg->x_values = FALSE;
- cfg->tmp_key = svn_stringbuf_create("", result_pool);
- cfg->tmp_value = svn_stringbuf_create("", result_pool);
+ cfg->tmp_key = svn_stringbuf_create_empty(result_pool);
+ cfg->tmp_value = svn_stringbuf_create_empty(result_pool);
cfg->section_names_case_sensitive = section_names_case_sensitive;
*cfgp = cfg;
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/config_file.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/config_file.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/config_file.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/config_file.c Mon Oct 31 16:51:52 2011
@@ -386,9 +386,9 @@ svn_config__parse_file(svn_config_t *cfg
pool);
ctx.line = 1;
ctx.have_ungotten_char = FALSE;
- ctx.section = svn_stringbuf_create("", pool);
- ctx.option = svn_stringbuf_create("", pool);
- ctx.value = svn_stringbuf_create("", pool);
+ ctx.section = svn_stringbuf_create_empty(pool);
+ ctx.option = svn_stringbuf_create_empty(pool);
+ ctx.value = svn_stringbuf_create_empty(pool);
do
{
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/config_win.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/config_win.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/config_win.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/config_win.c Mon Oct 31 16:51:52 2011
@@ -200,9 +200,9 @@ svn_config__parse_registry(svn_config_t
subpool = svn_pool_create(pool);
- section = svn_stringbuf_create("", subpool);
- option = svn_stringbuf_create("", subpool);
- value = svn_stringbuf_create("", subpool);
+ section = svn_stringbuf_create_empty(subpool);
+ option = svn_stringbuf_create_empty(subpool);
+ value = svn_stringbuf_create_empty(subpool);
/* The top-level values belong to the [DEFAULT] section */
svn_err = parse_section(cfg, hkey, SVN_CONFIG__DEFAULT_SECTION,
Propchange: subversion/branches/showing-merge-info/subversion/libsvn_subr/hash.c
('svn:mergeinfo' removed)
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/log.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/log.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/log.c Mon Oct 31 16:51:52 2011
@@ -121,7 +121,7 @@ svn_log__get_mergeinfo(const apr_array_h
{
int i;
apr_pool_t *iterpool = svn_pool_create(pool);
- svn_stringbuf_t *space_separated_paths = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *space_separated_paths = svn_stringbuf_create_empty(pool);
for (i = 0; i < paths->nelts; i++)
{
@@ -210,8 +210,8 @@ svn_log__log(const apr_array_header_t *p
{
int i;
apr_pool_t *iterpool = svn_pool_create(pool);
- svn_stringbuf_t *space_separated_paths = svn_stringbuf_create("", pool);
- svn_stringbuf_t *options = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *space_separated_paths = svn_stringbuf_create_empty(pool);
+ svn_stringbuf_t *options = svn_stringbuf_create_empty(pool);
for (i = 0; i < paths->nelts; i++)
{
@@ -264,7 +264,7 @@ svn_log__get_locations(const char *path,
{
const svn_revnum_t *revision_ptr, *revision_ptr_start, *revision_ptr_end;
apr_pool_t *iterpool = svn_pool_create(pool);
- svn_stringbuf_t *space_separated_revnums = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *space_separated_revnums = svn_stringbuf_create_empty(pool);
revision_ptr_start = (const svn_revnum_t *)location_revisions->elts;
revision_ptr = revision_ptr_start;
@@ -311,7 +311,7 @@ svn_log__lock(const apr_array_header_t *
{
int i;
apr_pool_t *iterpool = svn_pool_create(pool);
- svn_stringbuf_t *space_separated_paths = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *space_separated_paths = svn_stringbuf_create_empty(pool);
for (i = 0; i < paths->nelts; i++)
{
@@ -334,7 +334,7 @@ svn_log__unlock(const apr_array_header_t
{
int i;
apr_pool_t *iterpool = svn_pool_create(pool);
- svn_stringbuf_t *space_separated_paths = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *space_separated_paths = svn_stringbuf_create_empty(pool);
for (i = 0; i < paths->nelts; i++)
{
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/mergeinfo.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/mergeinfo.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/mergeinfo.c Mon Oct 31 16:51:52 2011
@@ -1853,7 +1853,7 @@ svn_rangelist_to_string(svn_string_t **o
const apr_array_header_t *rangelist,
apr_pool_t *pool)
{
- svn_stringbuf_t *buf = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *buf = svn_stringbuf_create_empty(pool);
if (rangelist->nelts > 0)
{
@@ -1890,7 +1890,7 @@ mergeinfo_to_stringbuf(svn_stringbuf_t *
const char *prefix,
apr_pool_t *pool)
{
- *output = svn_stringbuf_create("", pool);
+ *output = svn_stringbuf_create_empty(pool);
if (apr_hash_count(input) > 0)
{
@@ -1923,16 +1923,10 @@ svn_error_t *
svn_mergeinfo_to_string(svn_string_t **output, svn_mergeinfo_t input,
apr_pool_t *pool)
{
- if (apr_hash_count(input) > 0)
- {
- svn_stringbuf_t *mergeinfo_buf;
- SVN_ERR(mergeinfo_to_stringbuf(&mergeinfo_buf, input, NULL, pool));
- *output = svn_stringbuf__morph_into_string(mergeinfo_buf);
- }
- else
- {
- *output = svn_string_create("", pool);
- }
+ svn_stringbuf_t *mergeinfo_buf;
+
+ SVN_ERR(mergeinfo_to_stringbuf(&mergeinfo_buf, input, NULL, pool));
+ *output = svn_stringbuf__morph_into_string(mergeinfo_buf);
return SVN_NO_ERROR;
}
@@ -2289,7 +2283,7 @@ svn_mergeinfo__catalog_to_formatted_stri
apr_array_header_t *sorted_catalog =
svn_sort__hash(catalog, svn_sort_compare_items_as_paths, pool);
- output_buf = svn_stringbuf_create("", pool);
+ output_buf = svn_stringbuf_create_empty(pool);
for (i = 0; i < sorted_catalog->nelts; i++)
{
svn_sort__item_t elt =
@@ -2362,7 +2356,7 @@ svn_mergeinfo__to_formatted_string(svn_s
#endif
*output = output_buf ? svn_stringbuf__morph_into_string(output_buf)
- : svn_string_create("", pool);
+ : svn_string_create_empty(pool);
return SVN_NO_ERROR;
}
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/opt.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/opt.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/opt.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/opt.c Mon Oct 31 16:51:52 2011
@@ -944,7 +944,7 @@ svn_opt_parse_revprop(apr_hash_t **revpr
else
{
SVN_ERR(svn_utf_cstring_to_utf8(&propname, revprop_spec, pool));
- propval = svn_string_create("", pool);
+ propval = svn_string_create_empty(pool);
}
if (!svn_prop_name_is_valid(propname))
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/prompt.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/prompt.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/prompt.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/prompt.c Mon Oct 31 16:51:52 2011
@@ -95,7 +95,7 @@ prompt(const char **result,
apr_file_t *fp;
char c;
- svn_stringbuf_t *strbuf = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *strbuf = svn_stringbuf_create_empty(pool);
status = apr_file_open_stdin(&fp, pool);
if (status)
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/quoprint.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/quoprint.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/quoprint.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/quoprint.c Mon Oct 31 16:51:52 2011
@@ -120,7 +120,7 @@ encode_data(void *baton, const char *dat
{
struct encode_baton *eb = baton;
apr_pool_t *subpool = svn_pool_create(eb->pool);
- svn_stringbuf_t *encoded = svn_stringbuf_create("", subpool);
+ svn_stringbuf_t *encoded = svn_stringbuf_create_empty(subpool);
apr_size_t enclen;
svn_error_t *err = SVN_NO_ERROR;
@@ -177,7 +177,7 @@ svn_quoprint_encode(svn_stream_t *output
svn_stringbuf_t *
svn_quoprint_encode_string(const svn_stringbuf_t *str, apr_pool_t *pool)
{
- svn_stringbuf_t *encoded = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *encoded = svn_stringbuf_create_empty(pool);
int linelen = 0;
encode_bytes(encoded, str->data, str->len, &linelen);
@@ -254,7 +254,7 @@ decode_data(void *baton, const char *dat
/* Decode this block of data. */
subpool = svn_pool_create(db->pool);
- decoded = svn_stringbuf_create("", subpool);
+ decoded = svn_stringbuf_create_empty(subpool);
decode_bytes(decoded, data, *len, db->buf, &db->buflen);
/* Write the output, clean up, go home. */
@@ -300,7 +300,7 @@ svn_quoprint_decode(svn_stream_t *output
svn_stringbuf_t *
svn_quoprint_decode_string(const svn_stringbuf_t *str, apr_pool_t *pool)
{
- svn_stringbuf_t *decoded = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *decoded = svn_stringbuf_create_empty(pool);
char ingroup[4];
int ingrouplen = 0;
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/subst.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/subst.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/subst.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/subst.c Mon Oct 31 16:51:52 2011
@@ -1467,7 +1467,7 @@ stream_translated(svn_stream_t *stream,
= create_translation_baton(eol_str, translated_eol, repair, keywords,
expand, result_pool);
baton->written = FALSE;
- baton->readbuf = svn_stringbuf_create("", result_pool);
+ baton->readbuf = svn_stringbuf_create_empty(result_pool);
baton->readbuf_off = 0;
baton->iterpool = svn_pool_create(result_pool);
baton->buf = apr_palloc(result_pool, SVN__TRANSLATION_BUF_SIZE);
@@ -1522,7 +1522,7 @@ translate_cstring(const char **dst,
}
/* Create a stringbuf and wrapper stream to hold the output. */
- dst_stringbuf = svn_stringbuf_create("", pool);
+ dst_stringbuf = svn_stringbuf_create_empty(pool);
dst_stream = svn_stream_from_stringbuf(dst_stringbuf, pool);
if (translated_eol)
@@ -1813,7 +1813,7 @@ svn_subst_create_specialfile(svn_stream_
/* SCRATCH_POOL may not exist after the function returns. */
baton->pool = result_pool;
- baton->write_content = svn_stringbuf_create("", result_pool);
+ baton->write_content = svn_stringbuf_create_empty(result_pool);
baton->write_stream = svn_stream_from_stringbuf(baton->write_content,
result_pool);
@@ -1852,7 +1852,7 @@ svn_subst_stream_from_specialfile(svn_st
baton->read_stream = NULL;
}
- baton->write_content = svn_stringbuf_create("", pool);
+ baton->write_content = svn_stringbuf_create_empty(pool);
baton->write_stream = svn_stream_from_stringbuf(baton->write_content, pool);
*stream = svn_stream_create(baton, pool);
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_base64.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_base64.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_base64.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_base64.c Mon Oct 31 16:51:52 2011
@@ -208,7 +208,7 @@ static svn_error_t *
encode_data(void *baton, const char *data, apr_size_t *len)
{
struct encode_baton *eb = baton;
- svn_stringbuf_t *encoded = svn_stringbuf_create("", eb->scratch_pool);
+ svn_stringbuf_t *encoded = svn_stringbuf_create_empty(eb->scratch_pool);
apr_size_t enclen;
svn_error_t *err = SVN_NO_ERROR;
@@ -227,7 +227,7 @@ static svn_error_t *
finish_encoding_data(void *baton)
{
struct encode_baton *eb = baton;
- svn_stringbuf_t *encoded = svn_stringbuf_create("", eb->scratch_pool);
+ svn_stringbuf_t *encoded = svn_stringbuf_create_empty(eb->scratch_pool);
apr_size_t enclen;
svn_error_t *err = SVN_NO_ERROR;
@@ -267,7 +267,7 @@ svn_base64_encode_string2(const svn_stri
svn_boolean_t break_lines,
apr_pool_t *pool)
{
- svn_stringbuf_t *encoded = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *encoded = svn_stringbuf_create_empty(pool);
unsigned char ingroup[3];
size_t ingrouplen = 0;
size_t linelen = 0;
@@ -461,7 +461,7 @@ decode_data(void *baton, const char *dat
svn_error_t *err = SVN_NO_ERROR;
/* Decode this block of data. */
- decoded = svn_stringbuf_create("", db->scratch_pool);
+ decoded = svn_stringbuf_create_empty(db->scratch_pool);
decode_bytes(decoded, data, *len, db->buf, &db->buflen, &db->done);
/* Write the output, clean up, go home. */
@@ -507,7 +507,7 @@ svn_base64_decode(svn_stream_t *output,
const svn_string_t *
svn_base64_decode_string(const svn_string_t *str, apr_pool_t *pool)
{
- svn_stringbuf_t *decoded = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *decoded = svn_stringbuf_create_empty(pool);
unsigned char ingroup[4];
int ingrouplen = 0;
svn_boolean_t done = FALSE;
@@ -531,7 +531,7 @@ base64_from_checksum(const svn_checksum_
unsigned char ingroup[3];
size_t ingrouplen = 0;
size_t linelen = 0;
- checksum_str = svn_stringbuf_create("", pool);
+ checksum_str = svn_stringbuf_create_empty(pool);
encode_bytes(checksum_str, checksum->digest,
svn_checksum_size(checksum), ingroup, &ingrouplen,
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_string.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_string.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_string.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_string.c Mon Oct 31 16:51:52 2011
@@ -28,7 +28,6 @@
#include <apr.h>
#include <string.h> /* for memcpy(), memcmp(), strlen() */
-#include <apr_lib.h> /* for apr_isspace() */
#include <apr_fnmatch.h>
#include "svn_string.h" /* loads "svn_types.h" and <apr_pools.h> */
#include "svn_ctype.h"
@@ -133,6 +132,19 @@ create_string(const char *data, apr_size
return new_string;
}
+static char empty_buffer[1] = {0};
+
+svn_string_t *
+svn_string_create_empty(apr_pool_t *pool)
+{
+ svn_string_t *new_string = apr_palloc(pool, sizeof(*new_string));
+ new_string->data = empty_buffer;
+ new_string->len = 0;
+
+ return new_string;
+}
+
+
svn_string_t *
svn_string_ncreate(const char *bytes, apr_size_t size, apr_pool_t *pool)
{
@@ -286,6 +298,17 @@ create_stringbuf(char *data, apr_size_t
}
svn_stringbuf_t *
+svn_stringbuf_create_empty(apr_pool_t *pool)
+{
+ /* All instances share the same zero-length buffer.
+ * Some algorithms, however, assume that they may write
+ * the terminating zero. So, empty_buffer must be writable
+ * (a simple (char *)"" will cause SEGFAULTs). */
+
+ return create_stringbuf(empty_buffer, 0, 0, pool);
+}
+
+svn_stringbuf_t *
svn_stringbuf_create_ensure(apr_size_t blocksize, apr_pool_t *pool)
{
void *mem;
@@ -724,7 +747,7 @@ svn_cstring_join(const apr_array_header_
const char *separator,
apr_pool_t *pool)
{
- svn_stringbuf_t *new_str = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *new_str = svn_stringbuf_create_empty(pool);
size_t sep_len = strlen(separator);
int i;
Propchange: subversion/branches/showing-merge-info/subversion/libsvn_subr/svn_temp_serializer.c
('svn:mergeinfo' removed)
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/win32_xlate.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/win32_xlate.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/win32_xlate.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/win32_xlate.c Mon Oct 31 16:51:52 2011
@@ -185,7 +185,7 @@ svn_subr__win32_xlate_to_stringbuf(win32
if (src_length == 0)
{
- *dest = svn_stringbuf_create("", pool);
+ *dest = svn_stringbuf_create_empty(pool);
return APR_SUCCESS;
}
Modified: subversion/branches/showing-merge-info/subversion/libsvn_subr/xml.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_subr/xml.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_subr/xml.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_subr/xml.c Mon Oct 31 16:51:52 2011
@@ -115,7 +115,7 @@ xml_escape_cdata(svn_stringbuf_t **outst
const char *p = data, *q;
if (*outstr == NULL)
- *outstr = svn_stringbuf_create("", pool);
+ *outstr = svn_stringbuf_create_empty(pool);
while (1)
{
@@ -277,7 +277,7 @@ svn_xml_fuzzy_escape(const char *string,
if (q == end)
return string;
- outstr = svn_stringbuf_create("", pool);
+ outstr = svn_stringbuf_create_empty(pool);
while (1)
{
q = p;
@@ -479,7 +479,7 @@ svn_xml_make_header2(svn_stringbuf_t **s
{
if (*str == NULL)
- *str = svn_stringbuf_create("", pool);
+ *str = svn_stringbuf_create_empty(pool);
svn_stringbuf_appendcstr(*str, "<?xml version=\"1.0\"");
if (encoding)
{
@@ -646,7 +646,7 @@ void svn_xml_make_close_tag(svn_stringbu
const char *tagname)
{
if (*str == NULL)
- *str = svn_stringbuf_create("", pool);
+ *str = svn_stringbuf_create_empty(pool);
svn_stringbuf_appendcstr(*str, "</");
svn_stringbuf_appendcstr(*str, tagname);
Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/props.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/props.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/props.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/props.c Mon Oct 31 16:51:52 2011
@@ -595,9 +595,9 @@ prop_conflict_from_skel(const svn_string
incoming_base, scratch_pool);
if (mine == NULL)
- mine = svn_string_create("", scratch_pool);
+ mine = svn_string_create_empty(scratch_pool);
if (incoming == NULL)
- incoming = svn_string_create("", scratch_pool);
+ incoming = svn_string_create_empty(scratch_pool);
/* Pick a suitable base for the conflict diff.
* The incoming value is always a change,
@@ -607,7 +607,7 @@ prop_conflict_from_skel(const svn_string
if (incoming_base)
original = incoming_base;
else
- original = svn_string_create("", scratch_pool);
+ original = svn_string_create_empty(scratch_pool);
}
else if (incoming_base && svn_string_compare(original, mine))
original = incoming_base;
Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c Mon Oct 31 16:51:52 2011
@@ -709,7 +709,7 @@ request_body_to_string(svn_string_t **re
}
else
{
- buf = svn_stringbuf_create("", pool);
+ buf = svn_stringbuf_create_empty(pool);
}
brigade = apr_brigade_create(r->pool, r->connection->bucket_alloc);
@@ -765,7 +765,7 @@ request_body_to_string(svn_string_t **re
apr_brigade_destroy(brigade);
/* Make an svn_string_t from our svn_stringbuf_t. */
- *request_str = svn_string_create("", pool);
+ *request_str = svn_string_create_empty(pool);
(*request_str)->data = buf->data;
(*request_str)->len = buf->len;
return OK;
Modified: subversion/branches/showing-merge-info/subversion/svn/blame-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/blame-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/blame-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/blame-cmd.c Mon Oct 31 16:51:52 2011
@@ -283,7 +283,7 @@ svn_cl__blame(apr_getopt_t *os,
if (! opt_state->xml)
SVN_ERR(svn_stream_for_stdout(&bl.out, pool));
else
- bl.sbuf = svn_stringbuf_create("", pool);
+ bl.sbuf = svn_stringbuf_create_empty(pool);
bl.opt_state = opt_state;
Modified: subversion/branches/showing-merge-info/subversion/svn/diff-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/diff-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/diff-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/diff-cmd.c Mon Oct 31 16:51:52 2011
@@ -89,7 +89,7 @@ summarize_xml(const svn_client_diff_summ
/* Full path to the object being diffed. This is created by taking the
* baton, and appending the target's relative path. */
const char *path = *(const char **)baton;
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
/* Tack on the target path, so we can differentiate between different parts
* of the output when we're given multiple targets. */
@@ -197,7 +197,7 @@ svn_cl__diff(apr_getopt_t *os,
SVN_ERR(svn_cl__xml_print_header("diff", pool));
- sb = svn_stringbuf_create("", pool);
+ sb = svn_stringbuf_create_empty(pool);
svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "paths", NULL);
SVN_ERR(svn_cl__error_checked_fputs(sb->data, stdout));
}
@@ -419,7 +419,7 @@ svn_cl__diff(apr_getopt_t *os,
if (opt_state->xml)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
svn_xml_make_close_tag(&sb, pool, "paths");
SVN_ERR(svn_cl__error_checked_fputs(sb->data, stdout));
SVN_ERR(svn_cl__xml_print_footer("diff", pool));
Modified: subversion/branches/showing-merge-info/subversion/svn/info-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/info-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/info-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/info-cmd.c Mon Oct 31 16:51:52 2011
@@ -85,7 +85,7 @@ print_info_xml(void *baton,
const svn_client_info2_t *info,
apr_pool_t *pool)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
const char *rev_str;
const char *path_prefix = baton;
Modified: subversion/branches/showing-merge-info/subversion/svn/list-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/list-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/list-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/list-cmd.c Mon Oct 31 16:51:52 2011
@@ -156,7 +156,7 @@ print_dirent_xml(void *baton,
if (pb->ctx->cancel_func)
SVN_ERR(pb->ctx->cancel_func(pb->ctx->cancel_baton));
- sb = svn_stringbuf_create("", pool);
+ sb = svn_stringbuf_create_empty(pool);
svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "entry",
"kind", svn_cl__node_kind_str_xml(dirent->kind),
@@ -276,7 +276,7 @@ svn_cl__list(apr_getopt_t *os,
if (opt_state->xml)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "list",
"path", truepath[0] == '\0' ? "." : truepath,
NULL);
@@ -308,7 +308,7 @@ svn_cl__list(apr_getopt_t *os,
if (opt_state->xml)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
svn_xml_make_close_tag(&sb, pool, "list");
SVN_ERR(svn_cl__error_checked_fputs(sb->data, stdout));
}
Modified: subversion/branches/showing-merge-info/subversion/svn/log-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/log-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/log-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/log-cmd.c Mon Oct 31 16:51:52 2011
@@ -227,8 +227,7 @@ log_entry_receiver(void *baton,
svn_sort__item_t *item = &(APR_ARRAY_IDX(sorted_paths, i,
svn_sort__item_t));
const char *path = item->key;
- svn_log_changed_path2_t *log_item
- = apr_hash_get(log_entry->changed_paths2, item->key, item->klen);
+ svn_log_changed_path2_t *log_item = item->value;
const char *copy_data = "";
if (lb->ctx->cancel_func)
@@ -432,7 +431,7 @@ log_entry_receiver_xml(void *baton,
{
struct log_receiver_baton *lb = baton;
/* Collate whole log message into sb before printing. */
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
char *revstr;
const char *author;
const char *date;
Modified: subversion/branches/showing-merge-info/subversion/svn/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/main.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/main.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/main.c Mon Oct 31 16:51:52 2011
@@ -123,7 +123,7 @@ typedef enum svn_cl__longopt_t {
opt_diff,
opt_internal_diff,
opt_use_git_diff_format,
- opt_allow_mixed_revisions,
+ opt_allow_mixed_revisions
} svn_cl__longopt_t;
@@ -659,56 +659,47 @@ const svn_opt_subcommand_desc2_t svn_cl_
{'c', N_("the change made in revision ARG")}} },
{ "merge", svn_cl__merge, {0}, N_
- ("Apply the differences between two sources to a working copy path.\n"
- "usage: 1. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
+ ("Merge changes into a working copy.\n"
+ "usage: 0. merge SOURCE[@REV] [TARGET_WCPATH]\n"
+ " (the 'sync' merge)\n"
+ " 1. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
+ " (the 'cherry-pick' merge)\n"
" 2. merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]\n"
+ " (the 'reintegrate' merge)\n"
" 3. merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]\n"
+ " (the '2-URL' merge)\n"
"\n"
- " 1. The first form is called a \"sync\", or \"cherry-pick\", merge:\n"
- " svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
+ " 0. This form is called a 'sync' (aka 'catch-up') merge:\n"
"\n"
- " A sync merge is used to merge into a branch any unmerged changes\n"
- " made on its immediate ancestor branch.\n"
- "\n"
- " A cherry-picking merge is used to merge specific revisions from\n"
- " one branch to another.\n"
- "\n"
- " SOURCE is usually a URL. The source of a cherry-picking merge can\n"
- " also be a working copy path, in which case the corresponding URL\n"
- " of the path is used.\n"
- "\n"
- " If REV is specified, it is used as the peg revision for SOURCE,\n"
- " i.e. SOURCE is looked up in the repository at revision REV.\n"
- " If REV is not specified, the HEAD revision is assumed.\n"
- "\n"
- " TARGET_WCPATH is a working copy of the branch the changes will\n"
- " be applied to.\n"
+ " svn merge SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
- " '-r N:M' specifies a revision range to be merged. The difference\n"
- " between SOURCE@REV as it existed at revision N, and SOURCE@REV at\n"
- " it existed at revision M, is merged into TARGET_WCPATH. If no\n"
- " revision range is specified, the default range of 0:REV is used.\n"
- " \n"
- " If mergeinfo within TARGET_WCPATH indicates that revisions within\n"
- " the range were already merged, changes made in those revisions\n"
- " are not merged again. If needed, the range is broken into multiple\n"
- " sub-ranges, and each sub-range is merged separately.\n"
+ " A sync merge is used to merge into a branch any unmerged changes\n"
+ " made on its immediate ancestor branch. This uses merge tracking\n"
+ " to find which changes need to be merged.\n"
"\n"
- " If N is greater than M, the range is a \"reverse range\".\n"
- " A reverse range can be used to undo changes made to SOURCE\n"
- " between revisions N and M.\n"
+ " SOURCE specifies the branch from where the changes will be pulled,\n"
+ " and TARGET_WCPATH specifies the working copy of the target branch,\n"
+ " into which the changes will be applied. Normally SOURCE and\n"
+ " TARGET_WCPATH should each point to the root of a branch. If changes\n"
+ " need to be merged from and to only a subtree of the branch, then\n"
+ " the path to that subtree must be included in both SOURCE and\n"
+ " TARGET_WCPATH.\n"
+ "\n"
+ " SOURCE is usually a URL. The optional '@REV' specifies both the peg\n"
+ " revision of the URL and the latest revision that will be considered\n"
+ " for merging; the default value is the HEAD revision. If SOURCE is a\n"
+ " working copy path, the corresponding URL of the path is used, and\n"
+ " the default value of 'REV' is the base revision.\n"
"\n"
- " '-c M' is equivalent to the range '-r <M-1>:M'.\n"
- " '-c -M' does the reverse: '-r M:<M-1>'.\n"
- " \n"
- " Multiple '-c' and/or '-r' options may be specified and mixing of\n"
- " forward and reverse ranges is allowed.\n"
+ " TARGET_WCPATH is a working copy path; the default is '.'.\n"
"\n"
" - Sync Merge Example -\n"
"\n"
- " A feature is being developed on a branch called \"feature\".\n"
- " The feature branch is regularly synced with trunk to keep up with\n"
- " changes made there.\n"
+ " A feature is being developed on a branch called 'feature'. The\n"
+ " feature branch is regularly synced with trunk to keep up with the\n"
+ " changes made there. The previous sync merges are not shown on this\n"
+ " diagram, and the last of them was done when HEAD was r100, and now\n"
+ " HEAD is r200.\n"
"\n"
" feature +------------------------o-----\n"
" / ^\n"
@@ -716,19 +707,53 @@ const svn_opt_subcommand_desc2_t svn_cl_
" / .............../\n"
" trunk ------+------------L--------------R------\n"
" r100 r200\n"
- " \n"
- " In the above diagram, L marks the \"left\" side of the merge\n"
- " (trunk@100), and R marks the \"right\" side of the merge (trunk@200).\n"
- " The difference between the left and right side is merged into the target.\n"
"\n"
- " To perform the merge, check out a working copy of the feature\n"
+ " Subversion will locate all the changes on 'trunk' that have not yet\n"
+ " been merged into the target. In this case that is a single range,\n"
+ " r100:200. In the diagram above, L marks the 'left' side of the\n"
+ " range (trunk@100) and R marks the 'right' side of the range\n"
+ " (trunk@200). The difference between L and R will be merged into\n"
+ " the target.\n"
+ "\n"
+ " To perform this sync merge, check out a working copy of the feature\n"
" branch and run the following command in the top-level directory\n"
" of the working copy:\n"
"\n"
" svn merge ^/trunk\n"
"\n"
- " The default revision range is -r0:HEAD, so any unmerged changes\n"
- " will be merged.\n"
+ "\n"
+ " 1. This form is called a 'cherry-pick' merge:\n"
+ "\n"
+ " svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
+ "\n"
+ " A cherry-picking merge is used to merge specific revisions (or\n"
+ " revision ranges) from one branch to another. By default, this form\n"
+ " of merge uses merge tracking to avoid re-merging any of the specified\n"
+ " revisions that have already been merged. If the --ignore-ancestry\n"
+ " option is given then that does not happen.\n"
+ "\n"
+ " The SOURCE and TARGET_WCPATH arguments are the same as for a 'sync'\n"
+ " merge, except that REV acts only as a peg and does not specify the\n"
+ " latest revision that will be considered for merging.\n"
+ "\n"
+ " The revision ranges to be merged are specified by the '-r' and/or\n"
+ " '-c' options. '-r N:M' refers to the difference in the history of\n"
+ " the source branch between revision N and revision M. '-c M' is\n"
+ " equivalent to '-r <M-1>:M'. Each such difference is merged into\n"
+ " TARGET_WCPATH.\n"
+ "\n"
+ " If mergeinfo within TARGET_WCPATH indicates that revisions within\n"
+ " the range were already merged, changes made in those revisions\n"
+ " are not merged again. If needed, the range is broken into multiple\n"
+ " sub-ranges, and each sub-range is merged separately.\n"
+ "\n"
+ " If N is greater than M in '-r N:M', or with '-c -M' which is\n"
+ " equivalent to '-r M:<M-1>', the range is a 'reverse range'.\n"
+ " A reverse range can be used to undo changes made to SOURCE\n"
+ " between revisions N and M.\n"
+ "\n"
+ " Multiple '-c' and/or '-r' options may be specified and mixing of\n"
+ " forward and reverse ranges is allowed.\n"
"\n"
" - Cherry-picking Merge Example -\n"
"\n"
@@ -741,10 +766,10 @@ const svn_opt_subcommand_desc2_t svn_cl_
" / |\n"
" trunk ------+--------------------------LR-----\n"
" r50\n"
- " \n"
+ "\n"
" In the above diagram, L marks the left side of the merge (trunk@49)\n"
- " and R marks the right side of the merge (trunk@50).\n"
- " The difference between the left and right side is merged into the target.\n"
+ " and R marks the right side of the merge (trunk@50). The difference\n"
+ " between the left and right side is merged into the target.\n"
"\n"
" To perform the merge, check out a working copy of the release\n"
" branch and run the following command in the top-level directory\n"
@@ -758,8 +783,9 @@ const svn_opt_subcommand_desc2_t svn_cl_
" svn merge -c50,54,60 ^/trunk\n"
"\n"
"\n"
- " 2. The second form is called a \"reintegrate merge\":\n"
- " svn merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]\n"
+ " 2. This form is called a 'reintegrate merge':\n"
+ "\n"
+ " svn merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
" SOURCE is the URL of a branch to be merged back into (usually) its\n"
" immediate ancestor branch. If REV is specified, it is used a\n"
@@ -772,10 +798,10 @@ const svn_opt_subcommand_desc2_t svn_cl_
"\n"
" - Reintegrate Merge Example -\n"
"\n"
- " A feature has been developed on a branch called \"feature\".\n"
+ " A feature has been developed on a branch called 'feature'.\n"
" The feature branch started as a copy of trunk@W. Work on the\n"
" feature has completed and it should be merged back into the trunk.\n"
- " \n"
+ "\n"
" The feature branch was last synced with its immediate ancestor,\n"
" the trunk, in revision X. So the difference between trunk@X and\n"
" feature@HEAD contains the complete set of changes that implement\n"
@@ -813,8 +839,9 @@ const svn_opt_subcommand_desc2_t svn_cl_
" be done on the feature branch, it should be deleted and then re-created.\n"
"\n"
"\n"
- " 3. The third form is called a \"2-URL merge\":\n"
- " svn merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]\n"
+ " 3. This form is called a '2-URL merge':\n"
+ "\n"
+ " svn merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]\n"
"\n"
" Two source URLs are specified, together with two revisions N and M.\n"
" The two sources to be compared at the specified revisions, and the\n"
@@ -840,9 +867,9 @@ const svn_opt_subcommand_desc2_t svn_cl_
"\n"
" - 2-URL Merge Example -\n"
"\n"
- " A feature has been developed on a branch called \"feature\".\n"
+ " A feature has been developed on a branch called 'feature'.\n"
" Development for the upcoming 3.0 release has happened in parallel on\n"
- " the \"3.x-release\" branch. The work on the feature branch must be\n"
+ " the '3.x-release' branch. The work on the feature branch must be\n"
" merged to the 3.x-release branch. However, the feature branch and\n"
" the 3.x-release branch are not directly related, so a 2-URL merge\n"
" is needed.\n"
@@ -869,7 +896,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
" To perform the merge, check out a working copy of the 3.x-release\n"
" branch and run the following command in the top-level directory\n"
" of the working copy:\n"
- " \n"
+ "\n"
" svn merge ^/trunk@500 ^/feature\n"
"\n"
" Before performing a 2-URL merge, it is a good idea to preview the\n"
@@ -1009,8 +1036,8 @@ const svn_opt_subcommand_desc2_t svn_cl_
"\n"
" Hint: If the patch file was created with Subversion, it will contain\n"
" the number of a revision N the patch will cleanly apply to\n"
- " (look for lines like \"--- foo/bar.txt (revision N)\").\n"
- " To avoid rejects, first update to the revision N using \n"
+ " (look for lines like '--- foo/bar.txt (revision N)').\n"
+ " To avoid rejects, first update to the revision N using\n"
" 'svn update -r N', apply the patch, and then update back to the\n"
" HEAD revision. This way, conflicts can be resolved interactively.\n"
),
Modified: subversion/branches/showing-merge-info/subversion/svn/merge-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/merge-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/merge-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/merge-cmd.c Mon Oct 31 16:51:52 2011
@@ -184,28 +184,21 @@ svn_cl__merge(apr_getopt_t *os,
_("Too many arguments given"));
/* Set the default value for unspecified paths and peg revision. */
- if (targets->nelts == 0)
- {
- peg_revision1.kind = svn_opt_revision_head;
- }
- else
- {
- /* targets->nelts is 1 ("svn merge SOURCE") or 2 ("svn merge
- SOURCE WCPATH") here. */
- sourcepath2 = sourcepath1;
-
- if (peg_revision1.kind == svn_opt_revision_unspecified)
- peg_revision1.kind = svn_path_is_url(sourcepath1)
- ? svn_opt_revision_head : svn_opt_revision_working;
-
- if (targets->nelts == 2)
- {
- targetpath = APR_ARRAY_IDX(targets, 1, const char *);
- if (svn_path_is_url(targetpath))
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
- _("Cannot specify a revision range "
- "with two URLs"));
- }
+ /* targets->nelts is 1 ("svn merge SOURCE") or 2 ("svn merge
+ SOURCE WCPATH") here. */
+ sourcepath2 = sourcepath1;
+
+ if (peg_revision1.kind == svn_opt_revision_unspecified)
+ peg_revision1.kind = svn_path_is_url(sourcepath1)
+ ? svn_opt_revision_head : svn_opt_revision_working;
+
+ if (targets->nelts == 2)
+ {
+ targetpath = APR_ARRAY_IDX(targets, 1, const char *);
+ if (svn_path_is_url(targetpath))
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Cannot specify a revision range "
+ "with two URLs"));
}
}
else /* using @rev syntax */
@@ -309,10 +302,6 @@ svn_cl__merge(apr_getopt_t *os,
if (! two_sources_specified) /* TODO: Switch order of if */
{
- /* If we don't have a source, use the target as the source. */
- if (! sourcepath1)
- sourcepath1 = targetpath;
-
/* If we don't have at least one valid revision range, pick a
good one that spans the entire set of revisions on our
source. */
Modified: subversion/branches/showing-merge-info/subversion/svn/propedit-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/propedit-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/propedit-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/propedit-cmd.c Mon Oct 31 16:51:52 2011
@@ -122,7 +122,7 @@ svn_cl__propedit(apr_getopt_t *os,
if (! propval)
{
- propval = svn_string_create("", pool);
+ propval = svn_string_create_empty(pool);
/* This is how we signify to svn_client_revprop_set2() that
we want it to check that the original value hasn't
changed, but that that original value was non-existent: */
@@ -239,7 +239,7 @@ svn_cl__propedit(apr_getopt_t *os,
/* Get the property value. */
propval = apr_hash_get(props, abspath_or_url, APR_HASH_KEY_STRING);
if (! propval)
- propval = svn_string_create("", subpool);
+ propval = svn_string_create_empty(subpool);
if (svn_path_is_url(target))
{
Modified: subversion/branches/showing-merge-info/subversion/svn/props.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/props.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/props.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/props.c Mon Oct 31 16:51:52 2011
@@ -156,7 +156,7 @@ svn_cl__print_xml_prop_hash(svn_stringbu
apr_hash_index_t *hi;
if (*outstr == NULL)
- *outstr = svn_stringbuf_create("", pool);
+ *outstr = svn_stringbuf_create_empty(pool);
for (hi = apr_hash_first(pool, prop_hash); hi; hi = apr_hash_next(hi))
{
Modified: subversion/branches/showing-merge-info/subversion/svn/status-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/status-cmd.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/status-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/status-cmd.c Mon Oct 31 16:51:52 2011
@@ -106,7 +106,7 @@ print_conflict_stats(struct status_baton
static svn_error_t *
print_start_target_xml(const char *target, apr_pool_t *pool)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "target",
"path", target, NULL);
@@ -122,7 +122,7 @@ static svn_error_t *
print_finish_target_xml(svn_revnum_t repos_rev,
apr_pool_t *pool)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
if (SVN_IS_VALID_REVNUM(repos_rev))
{
@@ -355,7 +355,7 @@ svn_cl__status(apr_getopt_t *os,
svn_stringbuf_t *buf;
if (opt_state->xml)
- buf = svn_stringbuf_create("", scratch_pool);
+ buf = svn_stringbuf_create_empty(scratch_pool);
for (hi = apr_hash_first(scratch_pool, master_cl_hash); hi;
hi = apr_hash_next(hi))
Modified: subversion/branches/showing-merge-info/subversion/svn/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/status.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/status.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/status.c Mon Oct 31 16:51:52 2011
@@ -424,7 +424,7 @@ svn_cl__print_status_xml(const char *pat
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
apr_hash_t *att_hash;
const char *local_abspath = status->local_abspath;
svn_boolean_t tree_conflicted = FALSE;
Modified: subversion/branches/showing-merge-info/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/util.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/util.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/util.c Mon Oct 31 16:51:52 2011
@@ -326,7 +326,7 @@ svn_cl__edit_string_externally(svn_strin
SVN_ERR(svn_subst_translate_cstring2(contents->data, &translated,
APR_EOL_STR, FALSE,
NULL, FALSE, pool));
- translated_contents = svn_string_create("", pool);
+ translated_contents = svn_string_create_empty(pool);
if (encoding)
SVN_ERR(svn_utf_cstring_from_utf8_ex2(&translated_contents->data,
translated, encoding, pool));
@@ -737,7 +737,7 @@ svn_cl__get_log_message(const char **log
int i;
svn_stringbuf_t *tmp_message = svn_stringbuf_dup(default_msg, pool);
svn_error_t *err = SVN_NO_ERROR;
- svn_string_t *msg_string = svn_string_create("", pool);
+ svn_string_t *msg_string = svn_string_create_empty(pool);
for (i = 0; i < commit_items->nelts; i++)
{
@@ -876,7 +876,7 @@ svn_cl__get_log_message(const char **log
{
SVN_ERR(svn_io_remove_file2(lmb->tmpfile_left, FALSE, pool));
*tmp_file = lmb->tmpfile_left = NULL;
- message = svn_stringbuf_create("", pool);
+ message = svn_stringbuf_create_empty(pool);
}
/* If the user chooses anything else, the loop will
@@ -1058,7 +1058,7 @@ svn_error_t *
svn_cl__xml_print_header(const char *tagname,
apr_pool_t *pool)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
/* <?xml version="1.0" encoding="UTF-8"?> */
svn_xml_make_header2(&sb, "UTF-8", pool);
@@ -1074,7 +1074,7 @@ svn_error_t *
svn_cl__xml_print_footer(const char *tagname,
apr_pool_t *pool)
{
- svn_stringbuf_t *sb = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
/* "</TAGNAME>" */
svn_xml_make_close_tag(&sb, pool, tagname);
@@ -1303,7 +1303,7 @@ svn_cl__indent_string(const char *str,
const char *indent,
apr_pool_t *pool)
{
- svn_stringbuf_t *out = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *out = svn_stringbuf_create_empty(pool);
const char *line;
while ((line = next_line(&str, pool)))
Modified: subversion/branches/showing-merge-info/subversion/svnadmin/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svnadmin/main.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svnadmin/main.c (original)
+++ subversion/branches/showing-merge-info/subversion/svnadmin/main.c Mon Oct 31 16:51:52 2011
@@ -1254,7 +1254,7 @@ set_revprop(const char *prop_name, const
struct svnadmin_opt_state *opt_state, apr_pool_t *pool)
{
svn_repos_t *repos;
- svn_string_t *prop_value = svn_string_create("", pool);
+ svn_string_t *prop_value = svn_string_create_empty(pool);
svn_stringbuf_t *file_contents;
SVN_ERR(svn_stringbuf_from_file2(&file_contents, filename, pool));
Modified: subversion/branches/showing-merge-info/subversion/svndumpfilter/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svndumpfilter/main.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svndumpfilter/main.c (original)
+++ subversion/branches/showing-merge-info/subversion/svndumpfilter/main.c Mon Oct 31 16:51:52 2011
@@ -271,7 +271,7 @@ new_revision_record(void **revision_bato
rb->has_props = FALSE;
rb->had_dropped_nodes = FALSE;
rb->writing_begun = FALSE;
- rb->header = svn_stringbuf_create("", pool);
+ rb->header = svn_stringbuf_create_empty(pool);
rb->props = apr_hash_make(pool);
header_stream = svn_stream_from_stringbuf(rb->header, pool);
@@ -322,7 +322,7 @@ output_revision(struct revision_baton_t
char buf[SVN_KEYLINE_MAXLEN];
apr_hash_index_t *hi;
apr_pool_t *hash_pool = apr_hash_pool_get(rb->props);
- svn_stringbuf_t *props = svn_stringbuf_create("", hash_pool);
+ svn_stringbuf_t *props = svn_stringbuf_create_empty(hash_pool);
apr_pool_t *subpool = svn_pool_create(hash_pool);
rb->writing_begun = TRUE;
@@ -551,8 +551,8 @@ new_node_record(void **node_baton,
nb->has_text = FALSE;
nb->writing_begun = FALSE;
nb->tcl = tcl ? svn__atoui64(tcl) : 0;
- nb->header = svn_stringbuf_create("", pool);
- nb->props = svn_stringbuf_create("", pool);
+ nb->header = svn_stringbuf_create_empty(pool);
+ nb->props = svn_stringbuf_create_empty(pool);
/* Now we know for sure that we have a node that will not be
skipped, flush the revision if it has not already been done. */
Modified: subversion/branches/showing-merge-info/subversion/svnlook/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svnlook/main.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svnlook/main.c (original)
+++ subversion/branches/showing-merge-info/subversion/svnlook/main.c Mon Oct 31 16:51:52 2011
@@ -867,11 +867,11 @@ display_prop_diffs(const apr_array_heade
Since the diff is not useful anyway for patching properties an
eol character is appended when needed to remove those pescious
' \ No newline at end of file' lines. */
- tmp = orig_value ? orig_value : svn_string_create("", pool);
+ tmp = orig_value ? orig_value : svn_string_create_empty(pool);
orig = maybe_append_eol(tmp, pool);
tmp = pc->value ? pc->value :
- svn_string_create("", pool);
+ svn_string_create_empty(pool);
val = maybe_append_eol(tmp, pool);
SVN_ERR(svn_diff_mem_string_diff(&diff, orig, val, &options, pool));
@@ -921,7 +921,7 @@ print_diff_tree(svn_fs_root_t *root,
if (! node)
return SVN_NO_ERROR;
- header = svn_stringbuf_create("", pool);
+ header = svn_stringbuf_create_empty(pool);
/* Print copyfrom history for the top node of a copied tree. */
if ((SVN_IS_VALID_REVNUM(node->copyfrom_rev))
Modified: subversion/branches/showing-merge-info/subversion/svnrdump/dump_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svnrdump/dump_editor.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svnrdump/dump_editor.c (original)
+++ subversion/branches/showing-merge-info/subversion/svnrdump/dump_editor.c Mon Oct 31 16:51:52 2011
@@ -383,7 +383,7 @@ open_root(void *edit_baton,
eb->props = apr_hash_make(eb->pool);
eb->deleted_props = apr_hash_make(eb->pool);
- eb->propstring = svn_stringbuf_create("", eb->pool);
+ eb->propstring = svn_stringbuf_create_empty(eb->pool);
*root_baton = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
edit_baton, NULL, FALSE, eb->pool);
Modified: subversion/branches/showing-merge-info/subversion/svnrdump/svnrdump.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svnrdump/svnrdump.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svnrdump/svnrdump.c (original)
+++ subversion/branches/showing-merge-info/subversion/svnrdump/svnrdump.c Mon Oct 31 16:51:52 2011
@@ -80,7 +80,7 @@ enum svn_svnrdump__longopt_t
opt_non_interactive,
opt_incremental,
opt_trust_server_cert,
- opt_version,
+ opt_version
};
#define SVN_SVNRDUMP__BASE_OPTIONS opt_config_dir, \
@@ -311,7 +311,7 @@ dump_revision_header(svn_ra_session_t *s
": %ld\n", revision));
prophash = apr_hash_make(pool);
- propstring = svn_stringbuf_create("", pool);
+ propstring = svn_stringbuf_create_empty(pool);
SVN_ERR(svn_ra_rev_proplist(session, revision, &prophash, pool));
propstream = svn_stream_from_stringbuf(propstring, pool);
Modified: subversion/branches/showing-merge-info/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svnserve/serve.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svnserve/serve.c (original)
+++ subversion/branches/showing-merge-info/subversion/svnserve/serve.c Mon Oct 31 16:51:52 2011
@@ -3072,7 +3072,7 @@ svn_error_t *serve(svn_ra_svn_conn_t *co
apr_array_header_t *caplist, *cap_words;
server_baton_t b;
fs_warning_baton_t warn_baton;
- svn_stringbuf_t *cap_log = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *cap_log = svn_stringbuf_create_empty(pool);
b.tunnel = params->tunnel;
b.tunnel_user = get_tunnel_user(params, pool);
Modified: subversion/branches/showing-merge-info/subversion/svnsync/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svnsync/main.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svnsync/main.c (original)
+++ subversion/branches/showing-merge-info/subversion/svnsync/main.c Mon Oct 31 16:51:52 2011
@@ -67,7 +67,7 @@ enum svnsync__opt {
svnsync_opt_version,
svnsync_opt_trust_server_cert,
svnsync_opt_allow_non_empty,
- svnsync_opt_steal_lock,
+ svnsync_opt_steal_lock
};
#define SVNSYNC_OPTS_DEFAULT svnsync_opt_non_interactive, \
@@ -1089,7 +1089,7 @@ replay_rev_started(svn_revnum_t revision
replay_rev_finished callback. */
if (! apr_hash_get(filtered, SVN_PROP_REVISION_LOG, APR_HASH_KEY_STRING))
apr_hash_set(filtered, SVN_PROP_REVISION_LOG, APR_HASH_KEY_STRING,
- svn_string_create("", pool));
+ svn_string_create_empty(pool));
/* If necessary, normalize encoding and line ending style. Add the number
of properties that required EOL normalization to the overall count
Modified: subversion/branches/showing-merge-info/subversion/svnsync/sync.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svnsync/sync.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svnsync/sync.c (original)
+++ subversion/branches/showing-merge-info/subversion/svnsync/sync.c Mon Oct 31 16:51:52 2011
@@ -461,7 +461,7 @@ change_dir_prop(void *dir_baton,
are relative URLs, whereas svn:mergeinfo uses relative
paths (not URI-encoded). */
svn_error_t *err;
- svn_stringbuf_t *mergeinfo_buf = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *mergeinfo_buf = svn_stringbuf_create_empty(pool);
svn_mergeinfo_t mergeinfo;
int i;
apr_array_header_t *sources =
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_delta/editor-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_delta/editor-test.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_delta/editor-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_delta/editor-test.c Mon Oct 31 16:51:52 2011
@@ -275,7 +275,7 @@ editor_from_delta_editor_test(const svn_
/* Construct our editor, and from it a delta editor. */
SVN_ERR(get_noop_editor(&editor, NULL, NULL, NULL, iterpool, iterpool));
SVN_ERR(delta_from_editor(&deditor, &dedit_baton, editor,
- NULL, NULL, iterpool));
+ NULL, NULL, NULL, NULL, iterpool));
SVN_ERR(svn_repos_replay2(revision_root, "", SVN_INVALID_REVNUM, TRUE,
deditor, dedit_baton, NULL, NULL, iterpool));
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_diff/diff-diff3-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_diff/diff-diff3-test.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_diff/diff-diff3-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_diff/diff-diff3-test.c Mon Oct 31 16:51:52 2011
@@ -175,7 +175,7 @@ three_way_merge(const char *filename1,
SVN_ERR(svn_diff_mem_string_diff3(&diff,
original, modified, latest, options, pool));
- actual = svn_stringbuf_create("", pool);
+ actual = svn_stringbuf_create_empty(pool);
ostream = svn_stream_from_stringbuf(actual, pool);
SVN_ERR(svn_diff_mem_string_output_merge2
@@ -265,7 +265,7 @@ two_way_diff(const char *filename1,
SVN_ERR(svn_diff_mem_string_diff(&diff, original, modified, options, pool));
- actual = svn_stringbuf_create("", pool);
+ actual = svn_stringbuf_create_empty(pool);
ostream = svn_stream_from_stringbuf(actual, pool);
SVN_ERR(svn_diff_mem_string_output_unified(ostream, diff,
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_fs_base/strings-reps-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_fs_base/strings-reps-test.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_fs_base/strings-reps-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_fs_base/strings-reps-test.c Mon Oct 31 16:51:52 2011
@@ -360,7 +360,7 @@ verify_expected_record(svn_fs_t *fs,
size, expected_len);
/* Read the string back in 100-byte chunks. */
- text = svn_stringbuf_create("", trail->pool);
+ text = svn_stringbuf_create_empty(trail->pool);
while (1)
{
size = sizeof(buf);
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/path-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/path-test.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/path-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/path-test.c Mon Oct 31 16:51:52 2011
@@ -871,7 +871,7 @@ test_path_remove_component(apr_pool_t *p
int i;
svn_stringbuf_t *buf;
- buf = svn_stringbuf_create("", pool);
+ buf = svn_stringbuf_create_empty(pool);
i = 0;
while (tests[i].path)
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/stream-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/stream-test.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/stream-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/stream-test.c Mon Oct 31 16:51:52 2011
@@ -67,7 +67,7 @@ test_stream_from_string(apr_pool_t *pool
apr_size_t len;
inbuf = svn_stringbuf_create(strings[i], subpool);
- outbuf = svn_stringbuf_create("", subpool);
+ outbuf = svn_stringbuf_create_empty(subpool);
stream = svn_stream_from_stringbuf(inbuf, subpool);
len = TEST_BUF_SIZE;
while (len == TEST_BUF_SIZE)
@@ -94,7 +94,7 @@ test_stream_from_string(apr_pool_t *pool
apr_size_t amt_read, len;
inbuf = svn_stringbuf_create(strings[i], subpool);
- outbuf = svn_stringbuf_create("", subpool);
+ outbuf = svn_stringbuf_create_empty(subpool);
stream = svn_stream_from_stringbuf(outbuf, subpool);
amt_read = 0;
while (amt_read < inbuf->len)
@@ -125,7 +125,7 @@ test_stream_from_string(apr_pool_t *pool
static svn_stringbuf_t *
generate_test_bytes(int num_bytes, apr_pool_t *pool)
{
- svn_stringbuf_t *buffer = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *buffer = svn_stringbuf_create_empty(pool);
int total, repeat, repeat_iter;
char c;
@@ -189,8 +189,8 @@ test_stream_compressed(apr_pool_t *pool)
apr_size_t len;
origbuf = bufs[i];
- inbuf = svn_stringbuf_create("", subpool);
- outbuf = svn_stringbuf_create("", subpool);
+ inbuf = svn_stringbuf_create_empty(subpool);
+ outbuf = svn_stringbuf_create_empty(subpool);
stream = svn_stream_compressed(svn_stream_from_stringbuf(outbuf,
subpool),
@@ -232,8 +232,8 @@ static svn_error_t *
test_stream_tee(apr_pool_t *pool)
{
svn_stringbuf_t *test_bytes = generate_test_bytes(100, pool);
- svn_stringbuf_t *output_buf1 = svn_stringbuf_create("", pool);
- svn_stringbuf_t *output_buf2 = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *output_buf1 = svn_stringbuf_create_empty(pool);
+ svn_stringbuf_t *output_buf2 = svn_stringbuf_create_empty(pool);
svn_stream_t *source_stream = svn_stream_from_stringbuf(test_bytes, pool);
svn_stream_t *output_stream1 = svn_stream_from_stringbuf(output_buf1, pool);
svn_stream_t *output_stream2 = svn_stream_from_stringbuf(output_buf2, pool);
@@ -538,8 +538,8 @@ static svn_error_t *
test_stream_base64(apr_pool_t *pool)
{
svn_stream_t *stream;
- svn_stringbuf_t *actual = svn_stringbuf_create("", pool);
- svn_stringbuf_t *expected = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *actual = svn_stringbuf_create_empty(pool);
+ svn_stringbuf_t *expected = svn_stringbuf_create_empty(pool);
int i;
static const char *strings[] = {
"fairly boring test data... blah blah",
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/string-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/string-test.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/string-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/string-test.c Mon Oct 31 16:51:52 2011
@@ -419,7 +419,7 @@ test15(apr_pool_t *pool)
static svn_error_t *
test16(apr_pool_t *pool)
{
- a = svn_stringbuf_create("", pool);
+ a = svn_stringbuf_create_empty(pool);
return test_find_char_backward(a->data, a->len, ',', 0, pool);
}
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/subst_translate-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/subst_translate-test.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/subst_translate-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/subst_translate-test.c Mon Oct 31 16:51:52 2011
@@ -115,7 +115,7 @@ test_svn_subst_translate_string2_null_en
svn_string_t *new_value = NULL;
svn_boolean_t translated_to_utf8 = FALSE;
svn_boolean_t translated_line_endings = TRUE;
- /* 'Ã', which is 0xc6 in both ISO-8859-1 and Windows-1252 */
+ /* 'Æ', which is 0xc6 in both ISO-8859-1 and Windows-1252 */
svn_string_t *source_string = svn_string_create("\xc6", pool);
SVN_ERR(svn_subst_translate_string2(&new_value, &translated_to_utf8,
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/wc-incomplete-tester.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/wc-incomplete-tester.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/wc-incomplete-tester.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/wc-incomplete-tester.c Mon Oct 31 16:51:52 2011
@@ -29,15 +29,15 @@
#include <stdio.h>
#include <stdlib.h>
-static
-svn_error_t *incomplete(const char *wc_path,
- const char *rev_str,
- const char *repos_relpath,
- apr_pool_t *pool)
+static svn_error_t *
+incomplete(const char *wc_path,
+ const char *rev_str,
+ const char *repos_relpath,
+ apr_pool_t *pool)
{
svn_wc_context_t *wc_ctx;
const char *local_abspath;
- svn_revnum_t revnum;
+ apr_int64_t revnum;
SVN_ERR(svn_wc_context_create(&wc_ctx, NULL, pool, pool));
@@ -60,7 +60,7 @@ svn_error_t *incomplete(const char *wc_p
SVN_ERR(svn_wc__db_temp_op_start_directory_update(wc_ctx->db,
local_abspath,
repos_relpath,
- revnum,
+ (svn_revnum_t)revnum,
pool));
return SVN_NO_ERROR;
Modified: subversion/branches/showing-merge-info/subversion/tests/svn_test_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/svn_test_fs.c?rev=1195565&r1=1195564&r2=1195565&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/svn_test_fs.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/svn_test_fs.c Mon Oct 31 16:51:52 2011
@@ -251,7 +251,7 @@ svn_test__stream_to_string(svn_stringbuf
of priorities today, though. */
apr_size_t len;
- svn_stringbuf_t *str = svn_stringbuf_create("", pool);
+ svn_stringbuf_t *str = svn_stringbuf_create_empty(pool);
do
{
@@ -442,7 +442,7 @@ svn_test__validate_tree(svn_fs_root_t *r
{
/* If we don't have a corrupt entries string, make one. */
if (! corrupt_entries)
- corrupt_entries = svn_stringbuf_create("", subpool);
+ corrupt_entries = svn_stringbuf_create_empty(subpool);
/* Append this entry name to the list of corrupt entries. */
svn_stringbuf_appendcstr(corrupt_entries, " ");
@@ -458,7 +458,7 @@ svn_test__validate_tree(svn_fs_root_t *r
{
/* If we don't have a missing entries string, make one. */
if (! missing_entries)
- missing_entries = svn_stringbuf_create("", subpool);
+ missing_entries = svn_stringbuf_create_empty(subpool);
/* Append this entry name to the list of missing entries. */
svn_stringbuf_appendcstr(missing_entries, " ");
@@ -481,7 +481,7 @@ svn_test__validate_tree(svn_fs_root_t *r
/* If we don't have an extra entries string, make one. */
if (! extra_entries)
- extra_entries = svn_stringbuf_create("", subpool);
+ extra_entries = svn_stringbuf_create_empty(subpool);
/* Append this entry name to the list of missing entries. */
svn_stringbuf_appendcstr(extra_entries, " ");