[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r26659 - in trunk/subversion: libsvn_wc tests/cmdline

From: Erik Huelsmann <ehuels_at_gmail.com>
Date: 2007-09-18 13:04:53 CEST

If you nominate for backport, please add my +1 to it.

On 9/18/07, vgeorgescu@tigris.org <vgeorgescu@tigris.org> wrote:
> Author: vgeorgescu
> Date: Tue Sep 18 04:00:46 2007
> New Revision: 26659
>
> Log:
> Fix issue #2928: reverting a scheduled-replace-with-history file doesn't
> restore the original checksum.
>
> * subversion/libsvn_wc/adm_ops.c
> (revert_admin_things): Restore the original checksum when reverting a
> replaced with history file.
>
> * subversion/tests/cmdline/revert_tests.py
> (revert_replaced_with_history_file_1): Rename from
> revert_replaced_with_history_file, and adjust docstring.
> (revert_replaced_with_history_file_2): New test.
> (test_list): Add revert_replaced_with_history_file_2, and rename
> revert_replaced_with_history_file to revert_replaced_with_history_file_1.
>
>
> Modified:
> trunk/subversion/libsvn_wc/adm_ops.c
> trunk/subversion/tests/cmdline/revert_tests.py
>
> Modified: trunk/subversion/libsvn_wc/adm_ops.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/adm_ops.c?pathrev=26659&r1=26658&r2=26659
> ==============================================================================
> --- trunk/subversion/libsvn_wc/adm_ops.c (original)
> +++ trunk/subversion/libsvn_wc/adm_ops.c Tue Sep 18 04:00:46 2007
> @@ -1911,6 +1911,19 @@
> SVN_WC__ENTRY_MODIFY_COPYFROM_URL |
> SVN_WC__ENTRY_MODIFY_COPYFROM_REV;
> tmp_entry.copied = FALSE;
> +
> + /* Reset the checksum if this is a replace-with-history. */
> + if (tmp_entry.copyfrom_url)
> + {
> + const char *revert_base;
> + unsigned char digest[APR_MD5_DIGESTSIZE];
> +
> + revert_base = svn_wc__text_revert_path(fullpath, FALSE, pool);
> + SVN_ERR(svn_io_file_checksum(digest, revert_base, pool));
> + tmp_entry.checksum = svn_md5_digest_to_cstring(digest, pool);
> + flags |= SVN_WC__ENTRY_MODIFY_CHECKSUM;
> + }
> +
> /* Set this to the empty string, because NULL values will disappear
> in the XML log file. */
> tmp_entry.copyfrom_url = "";
>
> Modified: trunk/subversion/tests/cmdline/revert_tests.py
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/tests/cmdline/revert_tests.py?pathrev=26659&r1=26658&r2=26659
> ==============================================================================
> --- trunk/subversion/tests/cmdline/revert_tests.py (original)
> +++ trunk/subversion/tests/cmdline/revert_tests.py Tue Sep 18 04:00:46 2007
> @@ -629,8 +629,8 @@
> svntest.actions.run_and_verify_svn(None, expected_output, [], "revert",
> iota_path)
>
> -def revert_replaced_with_history_file(sbox):
> - "revert a file that was replaced by a copied file"
> +def revert_replaced_with_history_file_1(sbox):
> + "revert a committed replace-with-history == no-op"
>
> sbox.build()
> wc_dir = sbox.wc_dir
> @@ -825,6 +825,36 @@
> svntest.actions.run_and_verify_svn(None, expected_output, [], "status",
> wc_dir)
>
> +# Test for issue #2928.
> +def revert_replaced_with_history_file_2(sbox):
> + "reverted replace with history restores checksum"
> +
> + sbox.build()
> + wc_dir = sbox.wc_dir
> + iota_path = os.path.join(wc_dir, 'iota')
> + mu_path = os.path.join(wc_dir, 'A', 'mu')
> +
> + # Delete mu and replace it with a copy of iota
> + svntest.main.run_svn(None, 'rm', mu_path)
> + svntest.main.run_svn(None, 'cp', iota_path, mu_path)
> +
> + # Revert mu.
> + svntest.main.run_svn(None, 'revert', mu_path)
> +
> + # If we make local mods to the reverted mu the commit will
> + # fail if the checksum is incorrect.
> + svntest.main.file_write(mu_path, "new text")
> + expected_output = svntest.wc.State(wc_dir, {
> + 'A/mu': Item(verb='Sending'),
> + })
> + expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
> + expected_status.tweak('A/mu', status=' ', wc_rev=2)
> + svntest.actions.run_and_verify_commit(wc_dir,
> + expected_output,
> + expected_status,
> + None, None, None, None, None,
> + wc_dir)
> +
> ########################################################################
> # Run the tests
>
> @@ -845,9 +875,10 @@
> revert_propset__file,
> revert_propdel__dir,
> revert_propdel__file,
> - revert_replaced_with_history_file,
> + revert_replaced_with_history_file_1,
> status_of_missing_dir_after_revert,
> status_of_missing_dir_after_revert_replaced_with_history_dir,
> + revert_replaced_with_history_file_2,
> ]
>
> if __name__ == '__main__':
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svn-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: svn-help@subversion.tigris.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Sep 18 13:05:05 2007

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.