This patch allows multiple moves/copies of a file/directory in the WC with
no intervening commit. It is based on a patch originally developed by
Ivan Zhakov and was most recently discussed in these threads:
http://svn.haxx.se/dev/archive-2006-05/0428.shtml
http://svn.haxx.se/dev/archive-2006-05/0443.shtml
http://svn.haxx.se/users/archive-2006-07/0243.shtml
Paul Burba <paulb@softlanding.com> wrote on 07/13/2006 08:30:54 AM:
> "Ivan Zhakov" <chemodax@gmail.com> wrote on 07/12/2006 04:17:49 PM:
>
> > On 7/12/06, Paul Burba <paulb@softlanding.com> wrote:
> > > I'm more than happy to jump back in, but want to check with Ivan
> first. No
> > > need to duplicate our efforts.
> > >
> > Paul,
> > Please take it in your hands, because I've changed my job and
> > unfortunately cannot spend to much time to Subversion now :( Sorry.
> > I've reviewed your and rooneg patch -- it looks good, one thing that
> > code for detecting copyfrom_url should be factored out in separated
> > function.
I factored out the copyfrom* functionality in the latest patch below.
I also added two more tests: move_file_back_and_forth and
move_dir_back_and_forth. These two tests move a file(dir) to a new
location, moves it back to the original location, then commits it. The
patch as it stands now permits this for files, treating the double move as
a replacement. It doesn't allow it for directories as the current code in
svn_wc_copy2() prohibits this and returns a SVN_ERR_WC_INVALID_SCHEDULE
error ("Cannot copy to dir as it is scheduled for deletion"). What do
folks think should happen in these cases?
Any other thoughts, comments, criticisms, rants, lavish praise, diatribes,
etc. appreciated.
Paul B.
[[[
Support copy/move of files/dirs that are already copied/moved but not
committed.
Patch by: zhakov
rooneg
me
* subversion/libsvn_wc/copy.c:
(get_copyfrom_url_rev_via_parent): New helper function for
copy_file_administratively and copy_dir_administratively.
(copy_file_administratively, copy_dir_administratively): Use
source's copyfrom-url and copyfrom-rev instead of url and rev
when copying or moving already copied/moved files or directories.
If source does not have copyfrom info, call then the new helper
function to climb up source's parent directory and build the
copyfrom info.
(Rabbinic Commentary): Removed.
* subversion/tests/cmdline/copy_tests.py
(copy_copied_file_and_dir, move_copied_file_and_dir,
move_moved_file_and_dir, move_file_within_moved_dir,
move_file_out_of_moved_dir, move_dir_within_moved_dir,
move_dir_out_of_moved_dir, move_file_back_and_forth,
move_dir_back_and_forth): New tests.
(test_list): Run new tests.
]]]
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jul 17 22:54:15 2006