As promised, here is the second of two patches to implement keywords as
hashes. Both commit log message and patch are attached (log is also
below, probably wrapped horribly ;). NOTE: I have excised properties as
keywords from this version.
This patch changes all internal consumers to use the new function
signatures. NOTE: I have not added any tests for the new UUID keyword,
because I don't know what to compare against (since the UUID is assigned
when the test repos is created). If the tests can be changed to set a
known UUID for the test repository, then additional tests can be added.
John
===================
Change all libraries to use new keyword hash functions from libsvn_subst
See issue #890 for details.
* subversion/libsvn_wc/merge.c
(svn_wc_merge): use key hashes, new svn_wc__get_keywords() parameters,
and svn_subst_copy_and_translate2()
* subversion/libsvn_wc/translate.h
(svn_wc__get_keywords): change signature to use keyword hash
* subversion/libsvn_wc/props.c
(validate_eol_prop_against_file):
(svn_wc_prop_set): use svn_subst_translate_stream2(), keyword hashes,
and new svn_wc__get_keywords()
* subversion/libsvn_wc/adm_crawler.c
(restore_file): use keyword hashes, svn_subst_copy_and_translate3(),
and new svn_wc__get_keywords()
* subversion/libsvn_wc/log.c
(file_xfer_under_path):
(install_committed_file): use keyword hashes, new
svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
* subversion/libsvn_wc/adm_ops.c
(revert_admin_things): use keyword hashes, new svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
* subversion/libsvn_wc/translate.c
(svn_wc_translated_file): use keyword hashes, new
svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
(svn_wc__get_keywords): change signature to use keyword hashes and
svn_subst_build_keywords2()
* subversion/libsvn_client/export.c
(copy_versioned_files): use keyword hashes, new svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
(struct edit_baton): add uuid
(struct file_baton): add uuid
(add_file): copy uuid from edit baton to file baton during
initialization
(close_file): initialize keyword hash, populate it with
svn_subst_build_keywords2(), and call svn_subst_copy_and_translate3()
(svn_client_export3): retrieve uuid and store in edit baton
* subversion/libsvn_client/cat.c
(svn_client_cat2): use keyword hashes, svn_subst_build_keywords2(),
and svn_subst_translate_stream2()
* subversion/libsvn_client/commit.c
(send_file_contents): use keyword hashes, svn_subst_build_keywords2(),
and svn_subst_translate_stream2()
* subversion/clients/cmdline/util.c
(svn_cl__edit_externally): use new svn_subst_translate_cstring2()
* subversion/tests/libsvn_wc/translate-test.c
(substitute_and_verify): use keyword hashes and add uuid parameter
(multiple test cases): reformat parameters and add uuid (NULL)
--
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD 20706
301-459-3366 x.5010
fax 301-429-5748
Change all libraries to use new keyword hash functions from libsvn_subst
See issue #890 for details.
* subversion/libsvn_wc/merge.c
(svn_wc_merge): use key hashes, new svn_wc__get_keywords() parameters,
and svn_subst_copy_and_translate2()
* subversion/libsvn_wc/translate.h
(svn_wc__get_keywords): change signature to use keyword hash
* subversion/libsvn_wc/props.c
(validate_eol_prop_against_file):
(svn_wc_prop_set): use svn_subst_translate_stream2(), keyword hashes,
and new svn_wc__get_keywords()
* subversion/libsvn_wc/adm_crawler.c
(restore_file): use keyword hashes, svn_subst_copy_and_translate3(),
and new svn_wc__get_keywords()
* subversion/libsvn_wc/log.c
(file_xfer_under_path):
(install_committed_file): use keyword hashes, new svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
* subversion/libsvn_wc/adm_ops.c
(revert_admin_things): use keyword hashes, new svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
* subversion/libsvn_wc/translate.c
(svn_wc_translated_file): use keyword hashes, new svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
(svn_wc__get_keywords): change signature to use keyword hashes and
svn_subst_build_keywords2()
* subversion/libsvn_client/export.c
(copy_versioned_files): use keyword hashes, new svn_wc__get_keywords(),
and svn_subst_copy_and_translate3()
(struct edit_baton): add uuid
(struct file_baton): add uuid
(add_file): copy uuid from edit baton to file baton during initialization
(close_file): initialize keyword hash, populate it with
svn_subst_build_keywords2(), and call svn_subst_copy_and_translate3()
(svn_client_export3): retrieve uuid and store in edit baton
* subversion/libsvn_client/cat.c
(svn_client_cat2): use keyword hashes, svn_subst_build_keywords2(),
and svn_subst_translate_stream2()
* subversion/libsvn_client/commit.c
(send_file_contents): use keyword hashes, svn_subst_build_keywords2(),
and svn_subst_translate_stream2()
* subversion/clients/cmdline/util.c
(svn_cl__edit_externally): use new svn_subst_translate_cstring2()
* subversion/tests/libsvn_wc/translate-test.c
(substitute_and_verify): use keyword hashes and add uuid parameter
(multiple test cases): reformat parameters and add uuid (NULL)
=== subversion/libsvn_wc/merge.c
==================================================================
--- subversion/libsvn_wc/merge.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_wc/merge.c (/local/keywords) (revision 12216)
@@ -48,7 +48,7 @@
const char *mt_pt, *mt_bn;
apr_file_t *tmp_f, *result_f;
svn_boolean_t is_binary;
- svn_subst_keywords_t *keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
const char *eol;
const svn_wc_entry_t *entry;
svn_boolean_t contains_conflicts, special;
@@ -229,18 +229,18 @@
/* Create LEFT and RIGHT backup files, in expanded form.
We use merge_target's current properties to do the translation. */
- SVN_ERR (svn_wc__get_keywords (&keywords, merge_target, adm_access,
+ SVN_ERR (svn_wc__get_keywords (keywords, merge_target, adm_access,
NULL, pool));
SVN_ERR (svn_wc__get_eol_style (NULL, &eol, merge_target, adm_access,
pool));
SVN_ERR (svn_wc__get_special (&special, merge_target, adm_access,
pool));
- SVN_ERR (svn_subst_copy_and_translate2 (left,
+ SVN_ERR (svn_subst_copy_and_translate3 (left,
left_copy,
eol, eol ? TRUE : FALSE,
keywords, TRUE, special,
pool));
- SVN_ERR (svn_subst_copy_and_translate2 (right,
+ SVN_ERR (svn_subst_copy_and_translate3 (right,
right_copy,
eol, eol ? TRUE : FALSE,
keywords, TRUE, special,
@@ -288,13 +288,13 @@
if (*merge_outcome != svn_wc_merge_unchanged && ! dry_run)
{
/* replace MERGE_TARGET with the new merged file, expanding. */
- SVN_ERR (svn_wc__get_keywords (&keywords, merge_target, adm_access,
+ SVN_ERR (svn_wc__get_keywords (keywords, merge_target, adm_access,
NULL, pool));
SVN_ERR (svn_wc__get_eol_style (NULL, &eol, merge_target, adm_access,
pool));
SVN_ERR (svn_wc__get_special (&special, merge_target, adm_access,
pool));
- SVN_ERR (svn_subst_copy_and_translate2 (result_target, merge_target,
+ SVN_ERR (svn_subst_copy_and_translate3 (result_target, merge_target,
eol, eol ? TRUE : FALSE,
keywords, TRUE, special,
pool));
=== subversion/libsvn_wc/translate.h
==================================================================
--- subversion/libsvn_wc/translate.h (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_wc/translate.h (/local/keywords) (revision 12216)
@@ -67,19 +67,20 @@
const char *eol);
/* Expand keywords for the file at PATH, by parsing a
- whitespace-delimited list of keywords. If any keywords are found
- in the list, allocate *KEYWORDS from POOL, and then populate its
- entries with the related keyword values (also allocated in POOL).
- If no keywords are found in the list, or if there is no list, set
- *KEYWORDS to NULL. ADM_ACCESS must be an access baton for PATH.
+ whitespace-delimited list of keywords. Calling function must have
+ already allocated KEYWORDS from POOL. If any keywords are found
+ in the list, then populate the KEYWORDS hash entries with the related
+ keyword values (also allocated in POOL). If no keywords are found in
+ the list, or if there is no list, leave KEYWORDS hash empty. ADM_ACCESS
+ must be an access baton for PATH.
If FORCE_LIST is non-null, use it as the list; else use the
SVN_PROP_KEYWORDS property for PATH. In either case, use PATH to
expand keyword values. If a keyword is in the list, but no
- corresponding value is available, set that element of *KEYWORDS to
+ corresponding value is available, set that hash element of KEYWORDS to
the empty string ("").
*/
-svn_error_t *svn_wc__get_keywords (svn_subst_keywords_t **keywords,
+svn_error_t *svn_wc__get_keywords (apr_hash_t *keywords,
const char *path,
svn_wc_adm_access_t *adm_access,
const char *force_list,
=== subversion/libsvn_wc/props.c
==================================================================
--- subversion/libsvn_wc/props.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_wc/props.c (/local/keywords) (revision 12216)
@@ -973,8 +973,8 @@
here is whether or not the function fails on inconsistent line
endings. The function is "translating" to an empty stream. This
is sneeeeeeeeeeeaky. */
- err = svn_subst_translate_stream (read_stream, write_stream,
- "", FALSE, NULL, FALSE);
+ err = svn_subst_translate_stream2 (read_stream, write_stream,
+ "", FALSE, NULL, FALSE);
if (err && err->apr_err == SVN_ERR_IO_INCONSISTENT_EOL)
return svn_error_createf (SVN_ERR_ILLEGAL_TARGET, err,
_("File '%s' has inconsistent newlines"),
@@ -998,7 +998,7 @@
svn_error_t *err;
apr_hash_t *prophash;
apr_file_t *fp = NULL;
- svn_subst_keywords_t *old_keywords;
+ apr_hash_t *old_keywords = apr_hash_make(pool);
svn_stringbuf_t *new_value = NULL;
svn_node_kind_t kind;
enum svn_prop_kind prop_kind = svn_property_kind (NULL, name);
@@ -1105,7 +1105,7 @@
* from the old one.
*/
if (kind == svn_node_file && strcmp (name, SVN_PROP_KEYWORDS) == 0)
- SVN_ERR (svn_wc__get_keywords (&old_keywords, path, adm_access, NULL,
+ SVN_ERR (svn_wc__get_keywords (old_keywords, path, adm_access, NULL,
pool));
/* Now we have all the properties in our hash. Simply merge the new
@@ -1134,11 +1134,11 @@
if (kind == svn_node_file && strcmp (name, SVN_PROP_KEYWORDS) == 0)
{
- svn_subst_keywords_t *new_keywords;
- SVN_ERR (svn_wc__get_keywords (&new_keywords, path, adm_access, NULL,
+ apr_hash_t *new_keywords = apr_hash_make(pool);
+ SVN_ERR (svn_wc__get_keywords (new_keywords, path, adm_access, NULL,
pool));
- if (svn_subst_keywords_differ (old_keywords, new_keywords, FALSE))
+ if (svn_subst_keywords_differ2 (old_keywords, new_keywords, FALSE, pool))
{
const char *base_name;
svn_wc_entry_t tmp_entry;
=== subversion/libsvn_wc/adm_crawler.c
==================================================================
--- subversion/libsvn_wc/adm_crawler.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_wc/adm_crawler.c (/local/keywords) (revision 12216)
@@ -61,7 +61,7 @@
apr_pool_t *pool)
{
const char *text_base_path, *tmp_text_base_path;
- svn_subst_keywords_t *keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
const char *eol;
const svn_wc_entry_t *entry;
svn_wc_entry_t newentry;
@@ -78,7 +78,7 @@
FALSE, pool));
SVN_ERR (svn_wc__get_eol_style (NULL, &eol, file_path, adm_access, pool));
- SVN_ERR (svn_wc__get_keywords (&keywords,
+ SVN_ERR (svn_wc__get_keywords (keywords,
file_path, adm_access, NULL, pool));
SVN_ERR (svn_wc__get_special (&special, file_path, adm_access, pool));
@@ -87,7 +87,7 @@
sure to do any eol translations or keyword substitutions,
as dictated by the property values. If these properties
are turned off, then this is just a normal copy. */
- SVN_ERR (svn_subst_copy_and_translate2 (tmp_text_base_path,
+ SVN_ERR (svn_subst_copy_and_translate3 (tmp_text_base_path,
file_path,
eol, FALSE, /* don't repair */
keywords,
=== subversion/libsvn_wc/log.c
==================================================================
--- subversion/libsvn_wc/log.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_wc/log.c (/local/keywords) (revision 12216)
@@ -112,19 +112,19 @@
case svn_wc__xfer_cp_and_translate:
{
- svn_subst_keywords_t *keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
const char *eol_str;
svn_boolean_t special;
/* Note that this action takes properties from dest, not source. */
- SVN_ERR (svn_wc__get_keywords (&keywords, full_dest_path, adm_access,
+ SVN_ERR (svn_wc__get_keywords (keywords, full_dest_path, adm_access,
NULL, pool));
SVN_ERR (svn_wc__get_eol_style (NULL, &eol_str, full_dest_path,
adm_access, pool));
SVN_ERR (svn_wc__get_special (&special, full_dest_path, adm_access,
pool));
- SVN_ERR (svn_subst_copy_and_translate2 (full_from_path,
+ SVN_ERR (svn_subst_copy_and_translate3 (full_from_path,
full_dest_path,
eol_str,
TRUE,
@@ -140,12 +140,12 @@
case svn_wc__xfer_cp_and_detranslate:
{
- svn_subst_keywords_t *keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
const char *eol_str;
svn_boolean_t special;
/* Note that this action takes properties from source, not dest. */
- SVN_ERR (svn_wc__get_keywords (&keywords, full_from_path, adm_access,
+ SVN_ERR (svn_wc__get_keywords (keywords, full_from_path, adm_access,
NULL, pool));
SVN_ERR (svn_wc__get_eol_style (NULL, &eol_str, full_from_path,
adm_access, pool));
@@ -155,7 +155,7 @@
/* If any specific eol style was indicated, then detranslate
back to repository normal form ("\n"), repairingly. But if
no style indicated, don't touch line endings at all. */
- return svn_subst_copy_and_translate2 (full_from_path,
+ return svn_subst_copy_and_translate3 (full_from_path,
full_dest_path,
(eol_str ? "\n" : NULL),
(eol_str ? TRUE : FALSE),
@@ -214,7 +214,7 @@
const char *filepath;
const char *tmp_text_base;
svn_node_kind_t kind;
- svn_subst_keywords_t *keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
apr_file_t *ignored;
svn_boolean_t same, did_set;
const char *tmp_wfile, *pdir, *bname;
@@ -245,7 +245,7 @@
/* start off getting the latest translation prop values. */
SVN_ERR (svn_wc__get_eol_style (NULL, &eol_str, filepath, adm_access, pool));
- SVN_ERR (svn_wc__get_keywords (&keywords, filepath, adm_access, NULL, pool));
+ SVN_ERR (svn_wc__get_keywords (keywords, filepath, adm_access, NULL, pool));
SVN_ERR (svn_wc__get_special (&special, filepath, adm_access, pool));
svn_path_split (filepath, &pdir, &bname, pool);
@@ -261,7 +261,7 @@
SVN_ERR (svn_io_check_path (tmp_text_base, &kind, pool));
if (kind == svn_node_file)
- SVN_ERR (svn_subst_copy_and_translate2 (tmp_text_base,
+ SVN_ERR (svn_subst_copy_and_translate3 (tmp_text_base,
tmp_wfile,
eol_str,
FALSE, /* don't repair eol */
@@ -270,7 +270,7 @@
special,
pool));
else
- SVN_ERR (svn_subst_copy_and_translate2 (filepath,
+ SVN_ERR (svn_subst_copy_and_translate3 (filepath,
tmp_wfile,
eol_str,
FALSE, /* don't repair eol */
=== subversion/libsvn_wc/adm_ops.c
==================================================================
--- subversion/libsvn_wc/adm_ops.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_wc/adm_ops.c (/local/keywords) (revision 12216)
@@ -1275,13 +1275,13 @@
missing altogether), copy the text-base out into
the working copy, and update the timestamp in the entries
file. */
- svn_subst_keywords_t *keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
const char *eol;
svn_boolean_t special;
SVN_ERR (svn_wc__get_eol_style (NULL, &eol, fullpath, adm_access,
pool));
- SVN_ERR (svn_wc__get_keywords (&keywords, fullpath, adm_access, NULL,
+ SVN_ERR (svn_wc__get_keywords (keywords, fullpath, adm_access, NULL,
pool));
SVN_ERR (svn_wc__get_special (&special, fullpath, adm_access, pool));
@@ -1289,7 +1289,7 @@
sure to do any eol translations or keyword substitutions,
as dictated by the property values. If these properties
are turned off, then this is just a normal copy. */
- if ((err = svn_subst_copy_and_translate2 (base_thing,
+ if ((err = svn_subst_copy_and_translate3 (base_thing,
fullpath,
eol,
FALSE, /* don't repair */
=== subversion/libsvn_wc/translate.c
==================================================================
--- subversion/libsvn_wc/translate.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_wc/translate.c (/local/keywords) (revision 12216)
@@ -49,11 +49,11 @@
{
svn_subst_eol_style_t style;
const char *eol;
- svn_subst_keywords_t *keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
svn_boolean_t special;
SVN_ERR (svn_wc__get_eol_style (&style, &eol, vfile, adm_access, pool));
- SVN_ERR (svn_wc__get_keywords (&keywords, vfile, adm_access, NULL, pool));
+ SVN_ERR (svn_wc__get_keywords (keywords, vfile, adm_access, NULL, pool));
SVN_ERR (svn_wc__get_special (&special, vfile, adm_access, pool));
if ((style == svn_subst_eol_style_none) && (! keywords) && (! special))
@@ -86,7 +86,7 @@
if (style == svn_subst_eol_style_fixed)
{
- SVN_ERR (svn_subst_copy_and_translate2 (vfile,
+ SVN_ERR (svn_subst_copy_and_translate3 (vfile,
tmp_vfile,
eol,
TRUE,
@@ -97,7 +97,7 @@
}
else if (style == svn_subst_eol_style_native)
{
- SVN_ERR (svn_subst_copy_and_translate2 (vfile,
+ SVN_ERR (svn_subst_copy_and_translate3 (vfile,
tmp_vfile,
SVN_WC__DEFAULT_EOL_MARKER,
force_repair,
@@ -108,7 +108,7 @@
}
else if (style == svn_subst_eol_style_none)
{
- SVN_ERR (svn_subst_copy_and_translate2 (vfile,
+ SVN_ERR (svn_subst_copy_and_translate3 (vfile,
tmp_vfile,
NULL,
force_repair,
@@ -169,19 +169,15 @@
svn_error_t *
-svn_wc__get_keywords (svn_subst_keywords_t **keywords,
+svn_wc__get_keywords (apr_hash_t *keywords,
const char *path,
svn_wc_adm_access_t *adm_access,
const char *force_list,
apr_pool_t *pool)
{
const char *list;
- svn_subst_keywords_t tmp_keywords = { 0 };
const svn_wc_entry_t *entry = NULL;
- /* Start by assuming no keywords. */
- *keywords = NULL;
-
/* Choose a property list to parse: either the one that came into
this function, or the one attached to PATH. */
if (force_list == NULL)
@@ -202,17 +198,16 @@
SVN_ERR (svn_wc_entry (&entry, path, adm_access, FALSE, pool));
- SVN_ERR (svn_subst_build_keywords (&tmp_keywords,
- list,
- apr_psprintf (pool, "%ld",
- entry->cmt_rev),
- entry->url,
- entry->cmt_date,
- entry->cmt_author,
- pool));
+ SVN_ERR (svn_subst_build_keywords2 (keywords,
+ list,
+ apr_psprintf (pool, "%ld",
+ entry->cmt_rev),
+ entry->url,
+ entry->cmt_date,
+ entry->cmt_author,
+ entry->uuid,
+ pool));
- *keywords = apr_pmemdup (pool, &tmp_keywords, sizeof (tmp_keywords));
-
return SVN_NO_ERROR;
}
=== subversion/libsvn_client/export.c
==================================================================
--- subversion/libsvn_client/export.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_client/export.c (/local/keywords) (revision 12216)
@@ -191,7 +191,7 @@
{
const char *copy_from = svn_path_join (from, item, iterpool);
const char *copy_to = svn_path_join (to, item, iterpool);
- svn_subst_keywords_t kw = { 0 };
+ apr_hash_t *kw = apr_hash_make(pool);
svn_subst_eol_style_t style;
apr_hash_t *props;
const char *base;
@@ -264,7 +264,11 @@
{
const char *fmt;
const char *author;
+ const char *uuid;
+ SVN_ERR (svn_client_uuid_from_url
+ (&uuid, entry->url, ctx, pool));
+
if (local_mod)
{
/* For locally modified files, we'll append an 'M'
@@ -280,14 +284,14 @@
author = entry->cmt_author;
}
- SVN_ERR (svn_subst_build_keywords
- (&kw, keywords->data,
+ SVN_ERR (svn_subst_build_keywords2
+ (kw, keywords->data,
apr_psprintf (iterpool, fmt, entry->cmt_rev),
- entry->url, tm, author, iterpool));
+ entry->url, tm, author, uuid, iterpool));
}
- SVN_ERR (svn_subst_copy_and_translate2 (base, copy_to, eol, FALSE,
- &kw, TRUE,
+ SVN_ERR (svn_subst_copy_and_translate3 (base, copy_to, eol, FALSE,
+ kw, TRUE,
special ? TRUE : FALSE,
iterpool));
if (executable)
@@ -360,6 +364,7 @@
{
const char *root_path;
const char *root_url;
+ const char *uuid;
svn_boolean_t force;
svn_revnum_t *target_revision;
apr_hash_t *externals;
@@ -403,6 +408,7 @@
const char *url;
const char *author;
apr_time_t date;
+ const char *uuid;
/* Pool associated with this baton. */
apr_pool_t *pool;
@@ -519,6 +525,7 @@
fb->edit_baton = eb;
fb->path = full_path;
fb->url = full_url;
+ fb->uuid = eb->uuid;
fb->pool = pool;
*baton = fb;
@@ -664,22 +671,22 @@
{
svn_subst_eol_style_t style;
const char *eol;
- svn_subst_keywords_t final_kw = {0};
+ apr_hash_t *final_kw = apr_hash_make(pool);
if (fb->eol_style_val)
SVN_ERR (get_eol_style (&style, &eol, fb->eol_style_val->data,
eb->native_eol));
if (fb->keywords_val)
- SVN_ERR (svn_subst_build_keywords (&final_kw, fb->keywords_val->data,
- fb->revision, fb->url, fb->date,
- fb->author, pool));
+ SVN_ERR (svn_subst_build_keywords2 (final_kw, fb->keywords_val->data,
+ fb->revision, fb->url, fb->date,
+ fb->author, fb->uuid, pool));
- SVN_ERR (svn_subst_copy_and_translate2
+ SVN_ERR (svn_subst_copy_and_translate3
(fb->tmppath, fb->path,
fb->eol_style_val ? eol : NULL,
fb->eol_style_val ? TRUE : FALSE, /* repair */
- fb->keywords_val ? &final_kw : NULL,
+ fb->keywords_val ? final_kw : NULL,
TRUE, /* expand */
fb->special,
pool));
@@ -723,6 +730,7 @@
{
svn_revnum_t edit_revision = SVN_INVALID_REVNUM;
const char *url;
+ const char *uuid;
if (svn_path_is_url (from) ||
! (revision->kind == svn_opt_revision_base ||
@@ -773,6 +781,10 @@
revision, ctx, pool));
eb->root_url = url;
+
+ /* Get the UUID to later populate the file_baton */
+ SVN_ERR (svn_client_uuid_from_url (&uuid, url, ctx, pool));
+ eb->uuid = uuid;
/* Manufacture a basic 'report' to the update reporter. */
SVN_ERR (ra_lib->do_update (session,
=== subversion/libsvn_client/cat.c
==================================================================
--- subversion/libsvn_client/cat.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_client/cat.c (/local/keywords) (revision 12216)
@@ -79,7 +79,7 @@
}
else
{
- svn_subst_keywords_t kw = { 0 };
+ apr_hash_t *kw = apr_hash_make(pool);
svn_subst_eol_style_t style;
const char *temp_dir;
const char *tmp_filename;
@@ -111,6 +111,7 @@
if (keywords)
{
+ const char *uuid;
svn_string_t *cmt_rev, *cmt_date, *cmt_author;
apr_time_t when = 0;
@@ -120,20 +121,23 @@
APR_HASH_KEY_STRING);
cmt_author = apr_hash_get (props, SVN_PROP_ENTRY_LAST_AUTHOR,
APR_HASH_KEY_STRING);
+ SVN_ERR (svn_client_uuid_from_url (&uuid, url, ctx, pool));
+
if (cmt_date)
SVN_ERR (svn_time_from_cstring (&when, cmt_date->data, pool));
- SVN_ERR (svn_subst_build_keywords
- (&kw, keywords->data,
+ SVN_ERR (svn_subst_build_keywords2
+ (kw, keywords->data,
cmt_rev->data,
url,
when,
cmt_author ? cmt_author->data : NULL,
+ uuid,
pool));
}
- SVN_ERR (svn_subst_translate_stream (tmp_stream, out, eol, FALSE, &kw,
- TRUE));
+ SVN_ERR (svn_subst_translate_stream2 (tmp_stream, out, eol, FALSE, kw,
+ TRUE));
SVN_ERR (svn_stream_close (tmp_stream));
}
=== subversion/libsvn_client/commit.c
==================================================================
--- subversion/libsvn_client/commit.c (/local/keywords-phase1) (revision 12216)
+++ subversion/libsvn_client/commit.c (/local/keywords) (revision 12216)
@@ -89,7 +89,7 @@
Keywords get unexpanded. */
if (eol_style_val || keywords_val || special)
{
- svn_subst_keywords_t keywords = {0};
+ apr_hash_t *keywords = apr_hash_make(pool);
const char *temp_dir;
apr_file_t *tmp_f;
@@ -103,14 +103,14 @@
/* Generate a keyword structure. */
if (keywords_val)
- SVN_ERR (svn_subst_build_keywords (&keywords, keywords_val->data,
- APR_STRINGIFY(SVN_INVALID_REVNUM),
- "", 0, "", pool));
+ SVN_ERR (svn_subst_build_keywords2 (keywords, keywords_val->data,
+ APR_STRINGIFY(SVN_INVALID_REVNUM),
+ "", 0, "", "", pool));
- if ((err = svn_subst_copy_and_translate2 (path, tmpfile_path,
+ if ((err = svn_subst_copy_and_translate3 (path, tmpfile_path,
eol_style_val ? "\n" : NULL,
FALSE,
- keywords_val ? &keywords : NULL,
+ keywords_val ? keywords : NULL,
FALSE,
special,
pool)))
=== subversion/clients/cmdline/util.c
==================================================================
--- subversion/clients/cmdline/util.c (/local/keywords-phase1) (revision 12216)
+++ subversion/clients/cmdline/util.c (/local/keywords) (revision 12216)
@@ -129,9 +129,9 @@
if (as_text)
{
const char *translated;
- SVN_ERR (svn_subst_translate_cstring (contents->data, &translated,
- APR_EOL_STR, FALSE,
- NULL, FALSE, pool));
+ SVN_ERR (svn_subst_translate_cstring2 (contents->data, &translated,
+ APR_EOL_STR, FALSE,
+ NULL, FALSE, pool));
translated_contents = svn_string_create ("", pool);
if (encoding)
SVN_ERR (svn_utf_cstring_from_utf8_ex (&translated_contents->data,
=== subversion/tests/libsvn_wc/translate-test.c
==================================================================
--- subversion/tests/libsvn_wc/translate-test.c (/local/keywords-phase1) (revision 12216)
+++ subversion/tests/libsvn_wc/translate-test.c (/local/keywords) (revision 12216)
@@ -258,31 +258,68 @@
const char *date,
const char *author,
const char *url,
+ const char *uuid,
svn_boolean_t expand,
apr_pool_t *pool)
{
svn_error_t *err;
svn_stringbuf_t *contents;
- svn_subst_keywords_t keywords;
+ apr_hash_t *keywords = apr_hash_make(pool);
apr_size_t idx = 0;
apr_size_t i;
const char *expect[(sizeof (lines) / sizeof (*lines))];
const char *src_fname = apr_pstrcat (pool, test_name, ".src", NULL);
const char *dst_fname = apr_pstrcat (pool, test_name, ".dst", NULL);
+ svn_string_t *val;
/** Clean up from previous tests, set up src data, and convert. **/
SVN_ERR (remove_file (src_fname, pool));
SVN_ERR (remove_file (dst_fname, pool));
SVN_ERR (create_file (src_fname, src_eol, pool));
- keywords.revision = rev ? svn_string_create (rev, pool) : NULL;
- keywords.date = date ? svn_string_create (date, pool) : NULL;
- keywords.author = author ? svn_string_create (author, pool) : NULL;
- keywords.url = url ? svn_string_create (url, pool) : NULL;
- keywords.id = NULL;
- err = svn_subst_copy_and_translate (src_fname, dst_fname, dst_eol, repair,
- &keywords, expand, pool);
+ if (rev)
+ {
+ val = svn_string_create (rev, pool);
+ apr_hash_set(keywords, SVN_KEYWORD_REVISION_LONG,
+ APR_HASH_KEY_STRING, val);
+ apr_hash_set(keywords, SVN_KEYWORD_REVISION_SHORT,
+ APR_HASH_KEY_STRING, val);
+ }
+ if (date)
+ {
+ val = svn_string_create (date, pool);
+ apr_hash_set(keywords, SVN_KEYWORD_DATE_LONG,
+ APR_HASH_KEY_STRING, val);
+ apr_hash_set(keywords, SVN_KEYWORD_DATE_SHORT,
+ APR_HASH_KEY_STRING, val);
+ }
+ if (author)
+ {
+ val = svn_string_create (author, pool);
+ apr_hash_set(keywords, SVN_KEYWORD_AUTHOR_LONG,
+ APR_HASH_KEY_STRING, val);
+ apr_hash_set(keywords, SVN_KEYWORD_AUTHOR_SHORT,
+ APR_HASH_KEY_STRING, val);
+ }
+ if (url)
+ {
+ val = svn_string_create (url, pool);
+ apr_hash_set(keywords, SVN_KEYWORD_URL_LONG,
+ APR_HASH_KEY_STRING, val);
+ apr_hash_set(keywords, SVN_KEYWORD_URL_SHORT,
+ APR_HASH_KEY_STRING, val);
+ }
+ if (uuid)
+ {
+ val = svn_string_create (uuid, pool);
+ apr_hash_set(keywords, SVN_KEYWORD_UUID_LONG,
+ APR_HASH_KEY_STRING, val);
+ apr_hash_set(keywords, SVN_KEYWORD_UUID_SHORT,
+ APR_HASH_KEY_STRING, val);
+ }
+ err = svn_subst_copy_and_translate3 (src_fname, dst_fname, dst_eol, repair,
+ keywords, expand, FALSE, pool);
/* Conversion should have failed, if src has mixed eol, and the
@@ -669,16 +706,20 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("noop", NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("noop", NULL, NULL, 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
- ("noop", "\r", NULL, 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("noop", "\r", NULL, 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
- ("noop", "\n", NULL, 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("noop", "\n", NULL, 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
- ("noop", "\r\n", NULL, 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("noop", "\r\n", NULL, 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -700,7 +741,7 @@
SVN_ERR (substitute_and_verify
("crlf_to_crlf", "\r\n", "\r\n", 0,
- NULL, NULL, NULL, NULL, 1, pool));
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -717,7 +758,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("lf_to_crlf", "\n", "\r\n", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("lf_to_crlf", "\n", "\r\n", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -734,7 +776,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("cr_to_crlf", "\r", "\r\n", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("cr_to_crlf", "\r", "\r\n", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -752,7 +795,7 @@
SVN_ERR (substitute_and_verify
("mixed_to_crlf", NULL, "\r\n", 1,
- NULL, NULL, NULL, NULL, 1, pool));
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -769,7 +812,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("lf_to_lf", "\n", "\n", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("lf_to_lf", "\n", "\n", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -786,7 +830,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("crlf_to_lf", "\r\n", "\n", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("crlf_to_lf", "\r\n", "\n", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -803,7 +848,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("cr_to_lf", "\r", "\n", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("cr_to_lf", "\r", "\n", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -820,7 +866,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("cr_to_lf", NULL, "\n", 1, NULL, NULL, NULL, NULL, 1, pool));
+ ("cr_to_lf", NULL, "\n", 1,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -837,7 +884,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("crlf_to_cr", "\r\n", "\r", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("crlf_to_cr", "\r\n", "\r", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -854,7 +902,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("lf_to_cr", "\n", "\r", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("lf_to_cr", "\n", "\r", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -871,7 +920,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("cr_to_cr", "\r", "\r", 0, NULL, NULL, NULL, NULL, 1, pool));
+ ("cr_to_cr", "\r", "\r", 0,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -888,7 +938,8 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("mixed_to_cr", NULL, "\r", 1, NULL, NULL, NULL, NULL, 1, pool));
+ ("mixed_to_cr", NULL, "\r", 1,
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -906,11 +957,11 @@
SVN_ERR (substitute_and_verify
("mixed_no_repair", NULL, "\n", 0,
- NULL, NULL, NULL, NULL, 1, pool));
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
("mixed_no_repair", NULL, "\r\n", 0,
- NULL, NULL, NULL, NULL, 1, pool));
+ NULL, NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -930,10 +981,12 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("author", "\n", NULL, 0, NULL, NULL, "jrandom", NULL, 1, pool));
+ ("author", "\n", NULL, 0,
+ NULL, NULL, "jrandom", NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
- ("author", "\r\n", NULL, 0, NULL, NULL, "jrandom", NULL, 1, pool));
+ ("author", "\r\n", NULL, 0,
+ NULL, NULL, "jrandom", NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -951,11 +1004,11 @@
SVN_ERR (substitute_and_verify
("date", "\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, 1, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
("date", "\r\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, 1, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -973,11 +1026,11 @@
SVN_ERR (substitute_and_verify
("author_date", "\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, 1, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
("author_date", "\r\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, 1, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -995,11 +1048,11 @@
SVN_ERR (substitute_and_verify
("author_rev", "\n", NULL, 0,
- "1729", NULL, "jrandom", NULL, 1, pool));
+ "1729", NULL, "jrandom", NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
("author_rev", "\r\n", NULL, 0,
- "1729", NULL, "jrandom", NULL, 1, pool));
+ "1729", NULL, "jrandom", NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1017,11 +1070,11 @@
SVN_ERR (substitute_and_verify
("rev", "\n", NULL, 0,
- "1729", NULL, NULL, NULL, 1, pool));
+ "1729", NULL, NULL, NULL, NULL, 1, pool));
SVN_ERR (substitute_and_verify
("rev", "\r\n", NULL, 0,
- "1729", NULL, NULL, NULL, 1, pool));
+ "1729", NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1039,11 +1092,13 @@
SVN_ERR (substitute_and_verify
("rev_url", "\n", NULL, 0,
- "1729", NULL, NULL, "http://subversion.tigris.org", 1, pool));
+ "1729", NULL, NULL, "http://subversion.tigris.org",
+ NULL, 1, pool));
SVN_ERR (substitute_and_verify
("rev_url", "\r\n", NULL, 0,
- "1729", NULL, NULL, "http://subversion.tigris.org", 1, pool));
+ "1729", NULL, NULL, "http://subversion.tigris.org",
+ NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1065,6 +1120,7 @@
"Wed Jan 9 07:49:05 2002",
"jrandom",
"http://subversion.tigris.org",
+ NULL,
1, pool));
SVN_ERR (substitute_and_verify
@@ -1073,6 +1129,7 @@
"Wed Jan 9 07:49:05 2002",
"jrandom",
"http://subversion.tigris.org",
+ NULL,
1, pool));
return SVN_NO_ERROR;
@@ -1094,7 +1151,7 @@
SVN_ERR (substitute_and_verify
("lf_to_crlf_author", "\n", "\r\n", 0,
- NULL, NULL, "jrandom", NULL, 1, pool));
+ NULL, NULL, "jrandom", NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1112,7 +1169,7 @@
SVN_ERR (substitute_and_verify
("mixed_to_lf_author_date", NULL, "\n", 1,
- NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, 1, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1130,7 +1187,7 @@
SVN_ERR (substitute_and_verify
("crlf_to_cr_author_rev", "\r\n", "\r", 0,
- "1729", NULL, "jrandom", NULL, 1, pool));
+ "1729", NULL, "jrandom", NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1148,7 +1205,7 @@
SVN_ERR (substitute_and_verify
("cr_to_crlf_rev", "\r", "\r\n", 0,
- "1729", NULL, NULL, NULL, 1, pool));
+ "1729", NULL, NULL, NULL, NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1166,7 +1223,7 @@
SVN_ERR (substitute_and_verify
("cr_to_crlf_rev_url", "\r", "\r\n", 0,
- "1729", NULL, NULL, "http://subversion.tigris.org", 1, pool));
+ "1729", NULL, NULL, "http://subversion.tigris.org", NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1188,7 +1245,7 @@
"Wed Jan 9 07:49:05 2002",
"jrandom",
"http://subversion.tigris.org",
- 1,
+ NULL, 1,
pool));
return SVN_NO_ERROR;
@@ -1209,10 +1266,12 @@
return SVN_NO_ERROR;
SVN_ERR (substitute_and_verify
- ("author", "\n", NULL, 0, NULL, NULL, "jrandom", NULL, 0, pool));
+ ("author", "\n", NULL, 0,
+ NULL, NULL, "jrandom", NULL, NULL, 0, pool));
SVN_ERR (substitute_and_verify
- ("author", "\r\n", NULL, 0, NULL, NULL, "jrandom", NULL, 0, pool));
+ ("author", "\r\n", NULL, 0,
+ NULL, NULL, "jrandom", NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1230,11 +1289,11 @@
SVN_ERR (substitute_and_verify
("date", "\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, 0, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, NULL, 0, pool));
SVN_ERR (substitute_and_verify
("date", "\r\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, 0, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", NULL, NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1252,11 +1311,11 @@
SVN_ERR (substitute_and_verify
("author_date", "\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, 0, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, NULL, 0, pool));
SVN_ERR (substitute_and_verify
("author_date", "\r\n", NULL, 0,
- NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, 0, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1274,11 +1333,11 @@
SVN_ERR (substitute_and_verify
("author_rev", "\n", NULL, 0,
- "1729", NULL, "jrandom", NULL, 0, pool));
+ "1729", NULL, "jrandom", NULL, NULL, 0, pool));
SVN_ERR (substitute_and_verify
("author_rev", "\r\n", NULL, 0,
- "1729", NULL, "jrandom", NULL, 0, pool));
+ "1729", NULL, "jrandom", NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1296,11 +1355,11 @@
SVN_ERR (substitute_and_verify
("rev", "\n", NULL, 0,
- "1729", NULL, NULL, NULL, 0, pool));
+ "1729", NULL, NULL, NULL, NULL, 0, pool));
SVN_ERR (substitute_and_verify
("rev", "\r\n", NULL, 0,
- "1729", NULL, NULL, NULL, 0, pool));
+ "1729", NULL, NULL, NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1318,11 +1377,11 @@
SVN_ERR (substitute_and_verify
("rev_url", "\n", NULL, 0,
- "1729", NULL, NULL, "http://subversion.tigris.org", 0, pool));
+ "1729", NULL, NULL, "http://subversion.tigris.org", NULL, 0, pool));
SVN_ERR (substitute_and_verify
("rev_url", "\r\n", NULL, 0,
- "1729", NULL, NULL, "http://subversion.tigris.org", 0, pool));
+ "1729", NULL, NULL, "http://subversion.tigris.org", NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1344,7 +1403,7 @@
"Wed Jan 9 07:49:05 2002",
"jrandom",
"http://subversion.tigris.org",
- 1, pool));
+ NULL, 1, pool));
SVN_ERR (substitute_and_verify
("author_date_rev_url", "\r\n", NULL, 0,
@@ -1352,7 +1411,7 @@
"Wed Jan 9 07:49:05 2002",
"jrandom",
"http://subversion.tigris.org",
- 1, pool));
+ NULL, 1, pool));
return SVN_NO_ERROR;
}
@@ -1373,7 +1432,7 @@
SVN_ERR (substitute_and_verify
("lf_to_crlf_author", "\n", "\r\n", 0,
- NULL, NULL, "jrandom", NULL, 0, pool));
+ NULL, NULL, "jrandom", NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1391,7 +1450,7 @@
SVN_ERR (substitute_and_verify
("mixed_to_lf_author_date", NULL, "\n", 1,
- NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, 0, pool));
+ NULL, "Wed Jan 9 07:49:05 2002", "jrandom", NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1409,7 +1468,7 @@
SVN_ERR (substitute_and_verify
("crlf_to_cr_author_rev", "\r\n", "\r", 0,
- "1729", NULL, "jrandom", NULL, 0, pool));
+ "1729", NULL, "jrandom", NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1427,7 +1486,7 @@
SVN_ERR (substitute_and_verify
("cr_to_crlf_rev", "\r", "\r\n", 0,
- "1729", NULL, NULL, NULL, 0, pool));
+ "1729", NULL, NULL, NULL, NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1445,7 +1504,7 @@
SVN_ERR (substitute_and_verify
("cr_to_crlf_rev_url", "\r", "\r\n", 0,
- "1729", NULL, NULL, "http://subversion.tigris.org", 0, pool));
+ "1729", NULL, NULL, "http://subversion.tigris.org", NULL, 0, pool));
return SVN_NO_ERROR;
}
@@ -1467,7 +1526,7 @@
"Wed Jan 9 07:49:05 2002",
"jrandom",
"http://subversion.tigris.org",
- 0,
+ NULL, 0,
pool));
return SVN_NO_ERROR;
Property changes on:
___________________________________________________________________
Name: svk:merge
65390229-12b7-0310-b90b-f21a5aa7ec8e:/trunk:12680
-65fbbcb0-2eec-0310-814e-ef69edb84eb1:/local/keywords:12026
+65fbbcb0-2eec-0310-814e-ef69edb84eb1:/local/keywords-phase1:12041
ae6c956b-9dc6-0310-97b2-e73af4192982:/svn/local:8265
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Jan 12 23:08:57 2005