Discussion:
Problem when moving file and directory
DEBEAUPTE, Nicolas
2015-11-23 10:11:52 UTC
Permalink
Hello,
In my working copy, I am trying to move file from a directory to a new existing one and then move that directory to another using the following code :

File src = new File("C:\\Users\\ndebeaup\\proj\\proj\\rep1\\rep11\\rep11.txt");
File dst = new File("C:\\Users\\ndebeaup\\proj\\proj\\rep1\\rep12\\rep11.txt");

// ourClientManager.getMoveClient().doMove(src, dst);

SVNCopySource cs = new SVNCopySource(SVNRevision.WORKING, SVNRevision.WORKING, src);

ourClientManager.getCopyClient().doCopy(new SVNCopySource[] { cs } , dst, true, false, true);

src = new File("C:\\Users\\ndebeaup\\proj\\proj\\rep1\\rep12");
dst = new File("C:\\Users\\ndebeaup\\proj\\proj\\rep2\\rep12");

//ourClientManager.getMoveClient().doMove(src, dst);

cs = new SVNCopySource(SVNRevision.WORKING, SVNRevision.WORKING, src);
ourClientManager.getCopyClient().doCopy(new SVNCopySource[] { cs } , dst, true, false, true);

Before running the code, my WC is as follows:
Proj\rep1\rep11\rep11.txt
Proj\rep1\rep12
Proj\rep2

The code moves the file rep11.txt to the directory rep12 and then moves the directory rep12 to rep2.
When committing, I have an error svn:E200009 saying that rep1\rep11\rep11.txt can't be committed because it has been moved to rep1\rep12\rep11.txt which is not part of the commit.
That code looks so simple that it seems that I must be missing something .
When performing the same move operations with the svn command line client, the commit runs with no error.
Before committing after running the code, the svn status command displays :
D rep1\rep11\rep11.txt
moved to rep1\rep12\rep11.txt
D rep1\rep12
moved to rep2\rep12
A + rep2\rep12
moved from rep1\rep12
A + rep2\rep12\rep11.txt

Which seems to be incorrect (line : D rep1\rep11\rep11.txt) as the file rep11.txt is now rep2\rep12\rep11.txt.

Thanks for your help.

Note : I am using the latest version of SVNKit 1.8.11

Nicolas DEBEAUPTE


This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
Dmitry Pavlenko
2015-11-25 13:51:34 UTC
Permalink
Hello Nicolas,
I've created an issue for the problem

https://issues.tmatesoft.com/issue/SVNKIT-639

And actually, I've already fixed it. Indeed we had problems with moving of directories with moved
files/dirs. Now the problem is fixed in SVNKit trunk.

The fix will be included into the next SVNKit release.
--
Dmitry Pavlenko,
TMate Software,
http://subgit.com/ - git-svn bridge
Post by DEBEAUPTE, Nicolas
Hello,
In my working copy, I am trying to move file from a directory to a new
existing one and then move that directory to another using the following
File src = new
File("C:\\Users\\ndebeaup\\proj\\proj\\rep1\\rep11\\rep11.txt"); File dst
= new File("C:\\Users\\ndebeaup\\proj\\proj\\rep1\\rep12\\rep11.txt");
// ourClientManager.getMoveClient().doMove(src, dst);
SVNCopySource cs = new SVNCopySource(SVNRevision.WORKING,
SVNRevision.WORKING, src);
ourClientManager.getCopyClient().doCopy(new SVNCopySource[] { cs } , dst,
true, false, true);
src = new File("C:\\Users\\ndebeaup\\proj\\proj\\rep1\\rep12");
dst = new File("C:\\Users\\ndebeaup\\proj\\proj\\rep2\\rep12");
//ourClientManager.getMoveClient().doMove(src, dst);
cs = new SVNCopySource(SVNRevision.WORKING, SVNRevision.WORKING, src);
ourClientManager.getCopyClient().doCopy(new SVNCopySource[] { cs } , dst,
true, false, true);
Proj\rep1\rep11\rep11.txt
Proj\rep1\rep12
Proj\rep2
The code moves the file rep11.txt to the directory rep12 and then moves the
directory rep12 to rep2. When committing, I have an error svn:E200009
saying that rep1\rep11\rep11.txt can't be committed because it has been
moved to rep1\rep12\rep11.txt which is not part of the commit. That code
looks so simple that it seems that I must be missing something . When
performing the same move operations with the svn command line client, the
commit runs with no error. Before committing after running the code, the
svn status command displays : D rep1\rep11\rep11.txt
Post by DEBEAUPTE, Nicolas
moved to rep1\rep12\rep11.txt
D rep1\rep12
Post by DEBEAUPTE, Nicolas
moved to rep2\rep12
A + rep2\rep12
Post by DEBEAUPTE, Nicolas
moved from rep1\rep12
A + rep2\rep12\rep11.txt
Which seems to be incorrect (line : D rep1\rep11\rep11.txt) as the
file rep11.txt is now rep2\rep12\rep11.txt.
Thanks for your help.
Note : I am using the latest version of SVNKit 1.8.11
Nicolas DEBEAUPTE
This message contains information that may be privileged or confidential
and is the property of the Capgemini Group. It is intended only for the
person to whom it is addressed. If you are not the intended recipient, you
are not authorized to read, print, retain, copy, disseminate, distribute,
or use this message or any part thereof. If you receive this message in
error, please notify the sender immediately and delete all copies of this
message.
Loading...