Checkout Tools
  • last updated 3 hours ago
Constraints: committers
Constraints: files
Constraints: dates
* subversion/include/svn_time.h

(svn_time_to_cstring): Use Doxygen mark-up for the cross-reference.

(svn_time_from_cstring): Add cross-reference. Document the support for a

deprecated format.

Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.


Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.



subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.
Adjust a bunch of our public header files:

- make sure everything the header needs is included

- make sure nothing is included which is NOT needed

Added an exception to svn_types.h: it now explicitly includes svn_error.h

since Everybody needs that thing. We go ahead and make it easy for them,

even though that is counter-philosophy.

After altering the header files, some .c files in our codebase would not

compile -- they used stuff that they did not explicitly include. Thus, a

goodly number of .c files were updated, too.

* subversion/libsvn_ra/wrapper_template.h:

* subversion/libsvn_ra/deprecated.c:

* subversion/libsvn_ra/compat.c:

* subversion/libsvn_subr/iter.c:

* subversion/libsvn_subr/cmdline.c:

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c:

* subversion/libsvn_subr/error.c:

* subversion/libsvn_subr/auth.c:

* subversion/libsvn_subr/opt.c:

* subversion/libsvn_subr/checksum.c:

* subversion/libsvn_subr/compat.c:

* subversion/libsvn_subr/sha1.c:

* subversion/libsvn_subr/deprecated.c:

* subversion/libsvn_subr/ssl_server_trust_providers.c:

* subversion/mod_dav_svn/activity.c:

* subversion/mod_dav_svn/reports/log.c:

* subversion/tests/libsvn_fs/fs-test.c:

* subversion/tests/libsvn_repos/repos-test.c:

* subversion/svn/list-cmd.c:

* subversion/svn/changelist-cmd.c:

* subversion/svn/log-cmd.c:

* subversion/svn/conflict-callbacks.c:

* subversion/libsvn_fs_base/dag.c:

* subversion/libsvn_fs_base/util/fs_skels.c:

* subversion/include/svn_dirent_uri.h:

* subversion/include/svn_error_codes.h:

* subversion/include/svn_fs.h:

* subversion/include/svn_diff.h:

* subversion/include/svn_sorts.h:

* subversion/include/svn_mergeinfo.h:

* subversion/include/svn_base64.h:

* subversion/include/svn_dso.h:

* subversion/include/svn_ra_svn.h:

* subversion/include/svn_repos.h:

* subversion/include/svn_delta.h:

* subversion/include/svn_path.h:

* subversion/include/svn_subst.h:

* subversion/include/svn_xml.h:

* subversion/include/svn_props.h:

* subversion/include/svn_iter.h:

* subversion/include/svn_types.h:

* subversion/include/svn_config.h:

* subversion/include/svn_string.h:

* subversion/include/svn_io.h:

* subversion/include/svn_wc.h:

* subversion/include/svn_cmdline.h:

* subversion/include/svn_client.h:

* subversion/include/svn_user.h:

* subversion/include/svn_hash.h:

* subversion/include/svn_md5.h:

* subversion/include/svn_error.h:

* subversion/include/svn_pools.h:

* subversion/include/private/svn_log.h:

* subversion/include/svn_time.h:

* subversion/include/svn_utf.h:

* subversion/include/svn_auth.h:

* subversion/include/svn_ra.h:

* subversion/include/svn_opt.h:

* subversion/include/svn_checksum.h:

* subversion/libsvn_wc/deprecated.c:

* subversion/libsvn_wc/util.c:

* subversion/libsvn_wc/merge.c:

* subversion/libsvn_wc/tree_conflicts.c:

* subversion/libsvn_client/list.c:

* subversion/libsvn_client/log.c:

* subversion/libsvn_ra_neon/util.c:

* subversion/libsvn_ra_neon/log.c:

* subversion/libsvn_repos/deprecated.c:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_fs_fs/fs_fs.c:

(): adjust #include statements appropriately

  1. … 69 more files in changeset.
* subversion/bindings/javahl/native/SVNClient.cpp

(analyze_status): Fix typo in doc string.

* subversion/include/svn_time.h: Place SVN_DEPRECATED on separate lines and

directly include "svn_types.h".

* subversion/svnserve/main.c

(main): Fix indentation.

  1. … 2 more files in changeset.
Add new svn_io_sleep_for_timestamps() that sleeps until the timestamp for a

filesystem has changed. This is implemented by using the original sleep time

to determine if the filesystem has subsecond precision and if it has delay

for a shorter time.

Callers of svn_sleep_for_timestamps will have to be changed to take advantage

of this speedup.

* subversion/include/svn_io.h

* subversion/libsvn_subr/io.c

(svn_io_sleep_for_timestamps): New function that sleeps until the filesystem

containing path gives a newer timestamp than the current one. If we can't

determine the timestamp resolution or encounter an error wait until the

next second.

(SVN_SLEEP_ENV_VAR): Moved here from time.c

* subversion/include/svn_time.h

* subversion/libsvn_subr/time.c

(svn_sleep_for_timestamps): Deprecate function. Reimplement by calling

svn_io_sleep_for_timestamps with path and pool NULL.

(SVN_SLEEP_ENV_VAR): Moved define to io.c

  1. … 3 more files in changeset.
Fix code formatting in some headers.

* subversion/include/svn_cmdline.h:

* subversion/include/svn_compat.h:

* subversion/include/svn_ctype.h:

* subversion/include/svn_diff.h:

* subversion/include/svn_md5.h:

* subversion/include/svn_nls.h:

* subversion/include/svn_pools.h:

* subversion/include/svn_props.h:

* subversion/include/svn_quoprint.h:

* subversion/include/svn_sorts.h:

* subversion/include/svn_time.h:

* subversion/include/svn_types.h:

* subversion/include/svn_version.h:

* subversion/include/svn_xml.h: Place function types on separate lines.

  1. … 13 more files in changeset.
Reformat the code to use a consistent no-space-before-param-list-paren style.

See here for the vote that decided this:

From: "Peter N. Lundblad" <>

To: "Peter N. Lundblad" <>


Subject: Results of: [VOTE] New space-before-parens style

Date: Wed, 8 Feb 2006 12:00:35 +0100 (CET)

Message-ID: <Pine.LNX.4.55.0602080918350.10805@localhost.localdomain>

I took the opportunity to make spacing among all parens in SVN_ERR

macro calls consistent. But I did not address consistency of casts,

nor whether a function name should always appear below its return type

in declarations and definitions, nor whether there should be a space

before/after the "*" when declaring pointer return types.

* www/hacking.html

(coding-style): Document that we are no-space-before-paren now.

* everywhere: Reformat.

  1. … 365 more files in changeset.
Tidy up some code.

* subversion/include/svn_time.h

Do not include unnecessary headers.

Fix a doc string.

* subversion/libsvn_subr/time.c

Fix white space.

(svn_time_to_cstring, svn_time_to_human_cstring):

Make parameter names match the prototype.

  1. … 1 more file in changeset.
Remove the getdate.y-based date-parser, replacing it with a simpler

though less powerful one. This change includes improvements based on

suggestions from Branko Čibej, Karl Fogel, and Philip Martin. The

original patch was provided by C. Scott Ananian <>,

the final change is the result of collaboration between Greg Hudson

and Mark Benedetto King. See 1.0-cand issue #408.

Patch by: C. Scott Ananian <>

(See above for details.)

[Note: The three file adds/deletes immediately below should have

happened in this revision, but were committed in r8328 instead,

because I forgot that 'patch', unlike 'svn merge', doesn't do tree


* subversion/libsvn_subr/date.c: New file.

* subversion/libsvn_subr/getdate.y: Deleted.

* subversion/libsvn_subr/ Deleted.

* subversion/include/svn_time.h:

(struct getdate_time): Removed.

(svn_parse_date): Update prototype and documentation comment to reflect

the new interface.

* subversion/tests/libsvn_subr/time-test.c (test_parse_date):

Date-parsing tests added.

* subversion/libsvn_subr/opt.c

(parse_one_rev): Add pool parameter, and use the new svn_parse_date


(svn_opt_parse_revision): Pass pool into parse_one_rev().


Remove generation of getdate.c from getdate.y.

* doc/book/REVIEW: Add notes for fitz on updating ch03 and ch09.


Remove bison/yacc dependency, renumber subsequent dependencies.

* build/win32/svn_config.dsp, build/win32/svn_config.vcproj:

build/generator/ (__init__):

Remove special-case handling of getdate.c.

* subversion/bindings/swig/core.i:

Remove "struct getdate_time" verbiage.

* packages/rpm/mandrake-9.0/subversion.spec,



Remove dependency on bison and flex. (We've never depended on flex.)

  1. … 12 more files in changeset.
Update copyright notices for 2004, resolving issue #1651.

(See also revision 8019, which fixed a couple of missed spots.)

  1. … 361 more files in changeset.
(Mostly) fix issue #1534: Callers of svn_time_to_human_cstring should

expect a UTF8 encoded string. This does not handle the need to

localize the date when substituting keywords into working copy files.

Patch by: Josh Pieper <>

What's not finished: the case where the date is substituted into a

translation stream (generally, a working copy file) via the

svn:keywords mechanism. It doesn't appear that other substitutions

are translated from UTF8 before getting stuck into working copy files,

and because the encoding of those WC files is not tracked, this

problem may be too difficult to handle right away.

* subversion/include/svn_time.h (svn_time_to_human_cstring)

* subversion/libsvn_subr/subst.c (date_prop_to_human)

Note that these return a UTF8 encoded string.

* subversion/svnlook/main.c (do_date)

* subversion/clients/cmdline/log-cmd.c (log_message_receiver)

* subversion/clients/cmdline/info-cmd.c (svn_cl__info_print_time)

Add call to svn_utf_cstring_from_utf8 after every invocation of

svn_time_to_human_cstring, and before printing to the stdout.

  1. … 4 more files in changeset.
doxygen police cleanup sweep. this corrects the doubled up first sentences

we still had in many comments from when REPEAT_BRIEF was set to NO in our

doxygen config, and fixes a bunch of markup errors i found at the same time.

* subversion/include/svn_fs.h

* subversion/include/svn_diff.h

* subversion/include/svn_sorts.h

* subversion/include/svn_test.h

* subversion/include/svn_base64.h

* subversion/include/svn_ra_svn.h

* subversion/include/svn_repos.h

* subversion/include/svn_delta.h

* subversion/include/svn_path.h

* subversion/include/svn_subst.h

* subversion/include/svn_props.h

* subversion/include/svn_types.h

* subversion/include/svn_config.h

* subversion/include/svn_string.h

* subversion/include/svn_io.h

* subversion/include/svn_wc.h

* subversion/include/svn_client.h

* subversion/include/svn_quoprint.h

* subversion/include/svn_hash.h

* subversion/include/svn_md5.h

* subversion/include/svn_error.h

* subversion/include/svn_pools.h

* subversion/include/svn_time.h

* subversion/include/svn_utf.h

* subversion/include/svn_ra.h

clean up doxygen comments.

  1. … 24 more files in changeset.
Don't sleep for a full second for timestamps if we can sleep for less

to get to the next second. This shaves 200 seconds off the current

test suite by my measurements.

* include/svn_time.h, libsvn_subr/time.c

(svn_sleep_for_timestamps): New function to sleep until the next

second, instead of sleeping for one full second.

* libsvn_client/switch.c (svn_client_switch),

libsvn_client/checkout.c (svn_client_checkout),

libsvn_client/revert.c (svn_client_revert),

libsvn_client/copy.c (svn_client_copy),

libsvn_client/update.c (svn_client_update),

libsvn_client/commit.c (svn_client_commit): Use svn_sleep_for_timestamps.

  1. … 7 more files in changeset.
* Just about everything else that wasn't test output, a binary file,

or already to set to CRLF: Set svn:eol-style to native.

  1. … 658 more files in changeset.
Touch every file in the repository :) 2003 is here, update all the

copyright statements. Also, update the sample `svn --version' output

to be consistent with the current client.

  1. … 443 more files in changeset.
* subversion/include/svn_version.h

add doxygen markup to the comments.

* subversion/include/svn_types.h

* subversion/include/svn_config.h

* subversion/include/svn_string.h

* subversion/include/svn_io.h

* subversion/include/svn_sorts.h

* subversion/include/svn_dav.h

* subversion/include/svn_client.h

* subversion/include/svn_quoprint.h

* subversion/include/svn_hash.h

* subversion/include/svn_base64.h

* subversion/include/svn_delta.h

* subversion/include/svn_error.h

* subversion/include/svn_pools.h

* subversion/include/svn_utf.h

* subversion/include/svn_time.h

* subversion/include/svn_auth.h

clean up the doxygen markup a bit. we were adding group begin and end

markers (@{ and @}) at the beginning and end of each file without defining

any actual group, which was just causing doxygen to spout warnings.

  1. … 16 more files in changeset.
A bit of doxygen configuration goes a long way.

* subversion/include/svn_time.h: Move @file info after the copyright

notice, which hide by enclosing it in a @copyright/@endcopyright pair.

* doc/doxygen.conf: Define @copyright and @endcopyright aliases.

  1. … 1 more file in changeset.
Set up things to generate Doxygen documentation.

* doc/doxygen.conf: Doxygen configuration file for the public APIs

* subversion/include/svn_time.h: Add markup for Doxygen.

* doc: Ignore the doxygen subdir where the Doxygen files are generated.

  1. … 1 more file in changeset.
Rename _nts to _cstring, to make our API terminology consistent.

* include/svn_time.h, libsvn_subr/time.c

(svn_time_to_nts, svn_time_from_nts, svn_time_to_human_nts): Rename.

* include/svn_xml.h, libsvn_subr/xml.c

(svn_xml_escape_cstring, svn_xml_unescape_cstring): Rename.

All call sites changed for above renames.

  1. … 24 more files in changeset.
Just be glad you're not updating over libsvn_ra_pigeons...

* everywhere: Remove "local variables:" eval blocks.

* subversion/libsvn_repos/hooks.c: But leave the vim stuff here.

* tools/dev/svn-dev.el, doc/book/tools/svnbook.el:

Get rid of obsolete loading instructions.

* HACKING: Describe how to load the elisp files from .emacs.

* doc/book/HACKING: Add querulous comment.

  1. … 338 more files in changeset.
Added a new function, svn_time_to_human_nts, that handles converting

apr_time_t into a human representable time format. Then made 'svn log',

'svn info' and 'svnlook' use it.

* subversion/include/svn_time.h

(svn_time_to_human_nts): New prototype.

* subversion/libsvn_subr/time.c

(human_timestamp_format): New variable.

(svn_time_to_human_nts): New function.

* subversion/svnlook/main.c

(do_date): Use svn_time_to_human_nts.

* subversion/clients/cmdline/log-cmd.c: Include svn_time.h.

(humanize_date): Remove function.

(log_message_receiver): Use svn_time_to_human_nts.

* subversion/clients/cmdline/info-cmd.c: Include svn_time.h.

(svn_cl__info_print_time): Add pool argument.

(svn_cl__info_print_time): Use svn_time_to_human_nts.

(svn_cl__info): Give pool to svn_cl__info_print_time.

  1. … 4 more files in changeset.
Make svn_time_from_nts return an error instead of the value

directly. Also a minor fix to keep svn_time_from_nts from crashing if

bad dates are given in.

* subversion/include/svn_time.h

(svn_time_from_nts): Changed interface to return an error.

* subversion/include/svn_error_codes.h

(SVN_ERR_BAD_DATE): New error code.

* subversion/libsvn_subr/time.c

(svn_time_from_nts): Adapted to return an error.

(find_matching_string): Added size argument for max size. No longer

crashes if a string cannot be found.

* subversion/libsvn_repos/rev_hunt.c

(get_time): Adapt for svn_time_from_nts returning an error.

* subversion/tests/libsvn_subr/time-test.c (test_time_from_nts): Ditto.

(test_time_from_nts_old): Ditto.

(test_time_invariant): Ditto.

* subversion/tests/libsvn_fs/fs-test.c (commit_date): Ditto.

* subversion/svnlook/main.c (do_date): Ditto.

* subversion/libsvn_wc/update_editor.c (change_dir_prop): Ditto.

* subversion/libsvn_wc/entries.c (svn_wc__atts_to_entry): Ditto.

* subversion/libsvn_wc/questions.c (svn_wc__timestamps_equal_p): Ditto.

(svn_wc__timestamps_equal_p): Commented out time to string and back


  1. … 9 more files in changeset.
* svn_base64.h:

* svn_fs.h:

* svn_hash.h:

* svn_path.h:

* svn_quoprint.h:

* svn_repos.h:

* svn_sorts.h:

* svn_test.h:

* svn_time.h:

Fix the placement of the C++ namespace wrappers.

  1. … 8 more files in changeset.
Fixed a bunch of spurious whitespace in copyright notices.

Revert change to that attempted to compensate for the

slightly different style in the Ruby bindings licenses.

Change all the Ruby binding file licences to be the same as the rest

of Subversion.

  1. … 333 more files in changeset.
Sigh. Hadn't updated the new license in for the

previous commit. Here we go again...

  1. … 334 more files in changeset.
Move svn-dev.el to tools/dev/, then update copyright notice and

svn-dev.el loader for all files.

[Note: see next commit. I'd forgotten to update the license in, so not all copyright notices were updated in

the way they should have been.]

  1. … 339 more files in changeset.
This is the second in the series of patches from by Matt Kraai

<> to fix issue #406. It converts the

argument types of svn_fs_{node,txn,revision}_prop. I made some minor

changes/additions to this patch in order to accommodate the moving

target known as our source codebase :-)

Patch by: Matt Kraai <>

(Tweaked by me.)

* subversion/svnadmin/main.c

(main): Use svn_string_t instead of svn_stringbuf_t for properties.

* subversion/include/svn_fs.h

(svn_fs_txn_prop, svn_fs_node_prop, svn_fs_revision_prop):

Convert "propname" to const char * and "value_p" to svn_string_t **.

* subversion/include/svn_time.h

(svn_time_to_nts): Renamed from svn_time_to_string(), and returns

const char * now instead of svn_stringbuf_t *. Callers changed.

(svn_time_from_nts): New.

(svn_time_from_string): Removed.

* subversion/include/svn_xml.h

(svn_xml_escape_string, svn_xml_unescape_string): New.

* subversion/libsvn_fs/proplist.c

(svn_fs__get_prop): Convert "name" to const char * and "value_p" to

svn_string_t **.

* subversion/libsvn_fs/proplist.h

(svn_fs__get_prop): Convert "name" to const char * and "value_p" to

svn_string_t **.

* subversion/libsvn_fs/txn-table.c

(struct txn_prop_args, svn_fs_txn_prop): Convert "propname" to

const char * and "value_p" to svn_string_t **, and update call to


* subversion/libsvn_fs/tree.c

(struct node_prop_args, svn_fs_node_prop): Convert "propname" to

const char * and "value_p" to svn_string_t **, and update call to


* subversion/libsvn_fs/rev-table.c

(struct revision_prop_args, svn_fs_revision_prop): Convert propname to

const char * and value_p to svn_string_t ** and update call to


* subversion/libsvn_subr/time.c

(svn_time_to_nts): Renamed from svn_time_to_string(), and now

returns const char * instead of svn_stringbuf_t *.

(svn_time_from_nts): Was svn_time_from_string(), now accepts const

char *, and is public. Callers changed.

* subversion/libsvn_wc/entries.c

(svn_wc__atts_to_entry): Use svn_time_from_nts().

(normalize_entry): Update call to svn_time_to_nts().

* subversion/libsvn_wc/questions.c

(timestamps_equal_p): Update calls to svn_time_to_nts() and


* subversion/libsvn_subr/xml.c

(svn_xml_escape_data_and_len): New.

(svn_xml_escape_string): Accept svn_string_t and call


(svn_xml_escape_stringbuf, svn_xml_unescape_string): New.

(svn_xml_make_open_tag_hash): Call svn_xml_escape_stringbuf().

* subversion/svnlook/main.c

(get_property): Change "prop_value" to an svn_string_t * and "prop_name" to

a const char *.

(do_log): Update call to get_property().

(do_date): Update call to get_property().

(do_author): Update call to get_property().

* subversion/mod_dav_svn/deadprops.c

(get_repos_propname): Change "repos_propname" to a char **.

(get_value): Change "pvalue" to a svn_string_t **, and update calls

to get_repos_propname(), svn_fs_txn_prop(), svn_fs_revision_prop(), and


(save_value): Update call to get_repos_propname().

(dav_svn_db_output_value): Update call to get_value().

(dav_svn_db_remove): Update call to get_repos_propname().

(dav_svn_db_exists): Update calls to get_repos_propname(),

svn_fs_txn_prop(), svn_fs_revision_prop(), and svn_fs_node_prop().

(dav_svn_db_get_rollback): Update call to get_value().

* subversion/tests/libsvn_fs/fs-test.c

(call_functions_with_unopened_fs): Update call to svn_fs_revision_prop().

(revision_props): Update call to svn_fs_revision_prop().

(transaction_props): Update call to svn_fs_txn_prop().

(node_props): Update call to svn_fs_node_prop().

(commit_date): Update call to svn_fs_revision_prop().

* subversion/libsvn_repos/rev_hunt.c

(get_time): Update call to svn_fs_revision_prop().

* subversion/libsvn_repos/log.c

(svn_repos_get_logs): Update call to svn_fs_revision_prop().

* subversion/libsvn_fs/txn.c

(svn_fs_begin_txn): Update call to svn_time_to_nts().

* subversion/libsvn_fs/dag.c

(txn_body_dag_init_fs, svn_fs__dag_commit_txn): Update call to


  1. … 19 more files in changeset.
* tools/ Change to reflect new license.

* everything with a license: Updated with text acknowledging

contributors and advising how to track contribution history.

Suggested by C. Scott Ananian <>.

  1. … 221 more files in changeset.

Add date-parsing to subversion, and the ability to checkout or update

using dates. (`svn co URL -D 17-03-2001' or `svn up -D last tuesday')

* getdate.y: a parser of human-readable dates. stolen from CVS (code

is public domain, no copyright.) slightly tweaked.

* invoke bison or yacc to produce getdate.c

* svn_time.h (svn_parse_date): declare API in getdate.y

* dag.c (txn_body_dag_init_fs): put a datestamp on revision 0, too!

* rev_hunt.c: (svn_repos_dated_revision): add boundary checks.

* svn_ra.h (get_dated_revision): new RA vtable routine.

* libsvn_ra_local/ra_plugin.c (get_dated_revision): implement as a

simple pass-through to svn_repos_dated_revision().

(ra_local_plugin): add get_dated_revision.

* libsvn_ra_dav/fetch.c (svn_ra_dav__get_dated_revision): dummy func,

to be marshalled over network later.

ra_dav.h (svn_ra_dav__get_dated_revision): declare.

session.c (dav_plugin): add svn_ra_dav__get_dated_revision.

* svn_repos.h (svn_repos_dated_revision): change `time' var to `tm'.

* main.c (main): add -D flag. (wow! how often do we get to edit main()?)

* cl.h (svn_cl__opt_state_t): add 'date' field.

* svn_error_codes.h (SVN_ERR_CL_MUTUALLY_EXCLUSIVE_ARGS): new error.

* svn_client.h, checkout.c (svn_client_checkout): add time field!

* checkout-cmd.c (svn_cl__checkout): pass date to svn_client_checkout()

* svn_client.h, update.c (svn_client_update): add time field!

* update-cmd.c (svn_cl__update): pass date to svn_client_update()

  1. … 18 more files in changeset.