-
Notifications
You must be signed in to change notification settings - Fork 197
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: apache/subversion
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: trunk
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: apache/subversion
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: svnsync-atomic-author
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 2 commits
- 17 files changed
- 1 contributor
Commits on Jul 3, 2026
-
Create branch for svnsync atomic author/timestamp when syncing to a f…
…ile:// path See discussion here: https://lists.apache.org/thread/qnxqd4whjp62rk2pgndt8xyp40oqnom2 git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/svnsync-atomic-author@1935857 13f79535-47bb-0310-9956-ffa450edef68
Jordan Peck committedJul 3, 2026 Configuration menu - View commit details
-
Copy full SHA for aacf58c - Browse repository at this point
Copy the full SHA aacf58cView commit details -
On the 'svnsync-atomic-author' branch:
Let svnsync set svn:author and svn:date in the commit itself when the destination supports it, instead of patching them up with a post-commit revprop change. This makes mirroring a revision atomic for ra_local destinations and removes the window where a mirrored revision briefly carries the wrong author and date. See discussion: https://lists.apache.org/thread/qnxqd4whjp62rk2pgndt8xyp40oqnom2 Introduce SVN_RA_CAPABILITY_COMMIT_PRESERVES_AUTHOR_DATE, advertised by ra_local and wired through the standard capability negotiation for svn:// and http:// so future servers can opt in without client changes. Rev the repos-layer commit APIs to carry transaction flags (SVN_FS_TXN_CLIENT_DATE). * subversion/include/svn_ra.h (SVN_RA_CAPABILITY_COMMIT_PRESERVES_AUTHOR_DATE): New capability. (svn_ra_get_commit_editor3): Allow svn:author/svn:date in REVPROP_TABLE when the session advertises the new capability. * subversion/include/svn_ra_svn.h (SVN_RA_SVN_CAP_COMMIT_PRESERVES_AUTHOR_DATE): New wire capability. * subversion/include/svn_dav.h (SVN_DAV_NS_DAV_SVN_COMMIT_PRESERVES_AUTHOR_DATE): New OPTIONS header token. * subversion/include/svn_repos.h (svn_repos_get_commit_editor6, svn_repos_fs_begin_txn_for_commit3): New, taking TXN_FLAGS. (svn_repos_get_commit_editor5, svn_repos_fs_begin_txn_for_commit2): Deprecate. * subversion/include/private/svn_repos_private.h (svn_repos__get_commit_ev2): Take TXN_FLAGS. * subversion/libsvn_repos/commit.c (edit_baton): Add TXN_FLAGS. (open_root): Pass them to svn_repos_fs_begin_txn_for_commit3(). (svn_repos_get_commit_editor6, svn_repos__get_commit_ev2): Accept and forward TXN_FLAGS. * subversion/libsvn_repos/fs-wrap.c (svn_repos_fs_begin_txn_for_commit3): New revision of ..._commit2(), OR-ing TXN_FLAGS into SVN_FS_TXN_CHECK_LOCKS. (svn_repos_fs_begin_txn_for_commit): Move to deprecated.c. * subversion/libsvn_repos/deprecated.c (svn_repos_get_commit_editor5, svn_repos_fs_begin_txn_for_commit2, svn_repos_fs_begin_txn_for_commit): Implement as wrappers. * subversion/libsvn_ra_local/ra_plugin.c (prepare_commit_revprops): New helper: default svn:author to the session username only when absent, and request SVN_FS_TXN_CLIENT_DATE iff the * is committed; otherwise it will be overwritten with the commit * * @SInCE New in 1.16. svn_repos_t *repos, t32_t txn_flags, apr_pool_t *pool); /** Like svn_repos_fs_begin_txn_for_commit3(), but with @A flags /** Like svn_repos_fs_begin_txn_for_commit3(), but with @A txn_flags * set to #SVN_FS_TXN_CHECK_LOCKS only. * * @note @A revprop_table may contain an #SVN_PROP_REVISION_DATE property, Read 1 file ● Update(subversion\libsvn_repos\fs-wrap.c) Added 1 line, removed 1 line svn_repos_t *repos, svn_revnum_t rev, _t *pool) { apr_array_header_t *revprops; ● Update(subversion\libsvn_repos\fs-wrap.c) Added 1 line, removed 1 line /* Begin the transaction, ask for the fs to do on-the-fly lock checks. We fetch its name, too, so the start-commit hook can use it. */ SVN_ERR(svn_fs_begin_txn2(&txn, repos->fs, rev, SVN_FS_TXN_CHECK_LOCKS | flags, pool)); SVN_FS_TXN_CHECK_LOCKS | txn_flags, poo err = svn_fs_txn_name(&txn_name, txn, pool); if (err) return svn_error_compose_create(err, svn_fs_abort_txn(txn, pool)); Fix 5c — state commit_callback nullability on editor6 directly (replacing the stale pre-1.6 parenthetical): ● Update(subversion\include\svn_repos.h) Added 1 line, removed 2 lines * returns an error, that error will be returned from @c close_edit, * otherwise if there was a post-commit hook failure, then that error * will be returned with code SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED. * (Note that prior to Subversion 1.6, @A commit_callback cannot be @c NULL; * if you don't need a callback, pass a dummy function.) * @A commit_callback may be @c NULL. * * Calling @A (*editor)->abort_edit aborts the commit, and will also * abort the commit transaction unless @A txn was supplied (not @c You've hit your session limit · resets 9:50pm (Europe/London) /upgrade or /usage-credits to finish what you’re working on. ✻ Baked for 5m 21s ❯ Can you put together a brief commit message for this change Here's a commit message in the Apache Subversion log-message convention (summary paragraph plus per-file annotations), ready for svn commit -F: On the 'svnsync-atomic-author' branch: Let svnsync set svn:author and svn:date in the commit itself when the destination supports it, instead of patching them up with a post-commit revprop change. This makes mirroring a revision atomic for ra_local destinations and removes the window where a mirrored revision briefly ent changes. Rev the repos-layer commit APIs to carry transaction flags (SVN_FS_TXN_CLIENT_DATE). * subversion/include/svn_ra.h (SVN_RA_CAPABILITY_COMMIT_PRESERVES_AUTHOR_DATE): New capability. (svn_ra_get_commit_editor3): Allow svn:author/svn:date in REVPROP_TABLE when the session advertises the new capability. * subversion/include/svn_ra_svn.h (SVN_RA_SVN_CAP_COMMIT_PRESERVES_AUTHOR_DATE): New wire capability. * subversion/include/svn_dav.h (SVN_DAV_NS_DAV_SVN_COMMIT_PRESERVES_AUTHOR_DATE): New OPTIONS header token. * subversion/include/svn_repos.h (svn_repos_get_commit_editor6, svn_repos_fs_begin_txn_for_commit3): New, taking TXN_FLAGS. (svn_repos_get_commit_editor5, svn_repos_fs_begin_txn_for_commit2): * subversion/libsvn_repos/commit.c (edit_baton): Add TXN_FLAGS. (open_root): Pass them to svn_repos_fs_begin_txn_for_commit3(). (svn_repos_get_commit_editor6, svn_repos__get_commit_ev2): Accept and forward TXN_FLAGS. * subversion/libsvn_repos/fs-wrap.c (svn_repos_fs_begin_txn_for_commit3): New revision of ..._commit2(), OR-ing TXN_FLAGS into SVN_FS_TXN_CHECK_LOCKS. (svn_repos_fs_begin_txn_for_commit): Move to deprecated.c. * subversion/libsvn_repos/deprecated.c (svn_repos_get_commit_editor5, svn_repos_fs_begin_txn_for_commit2, svn_repos_fs_begin_txn_for_commit): Implement as wrappers. * subversion/libsvn_ra_local/ra_plugin.c (svn_ra_local__get_commit_editor, svn_ra_local__get_commit_ev2): Use it. (svn_ra_local__has_capability): Advertise the new capability. * subversion/libsvn_ra_svn/client.c (ra_svn_has_capability): Map the new capability to its wire word. * subversion/libsvn_ra_serf/options.c (capabilities_headers_iterator_callback, options_response_handler): Parse and pre-seed the new capability. * subversion/mod_dav_svn/activity.c (dav_svn__create_txn), subversion/mod_dav_svn/lock.c (append_locks), subversion/svnserve/serve.c (commit): Track the API revs; no functional change. * subversion/svnsync/svnsync.c once per sync how revprops split between the commit and a follow-up revprop update. (replay_rev_started, replay_rev_finished, do_synchronize): Use that decision; skip the follow-up pass entirely when the commit carries author/date. * subversion/tests/libsvn_repos/repos-test.c (commit_add_file, commit_editor_preserve_revprops): New test for both SVN_FS_TXN_CLIENT_DATE polarities via the commit editor. * subversion/tests/cmdline/svnsync_tests.py (sync_to_local_preserves_author_date): New test: an ra_local sync preserves author/date with no post-commit revprop copy. git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/svnsync-atomic-author@1935862 13f79535-47bb-0310-9956-ffa450edef68
Jordan Peck committedJul 3, 2026 Configuration menu - View commit details
-
Copy full SHA for e38fe91 - Browse repository at this point
Copy the full SHA e38fe91View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff trunk...svnsync-atomic-author