"Accept incoming deletion" on a png file shows error "cannot resolve tree conflict on ... (expected node kind 'file' but found 'none')"

509 views
Skip to first unread message

Tobias Knauss

unread,
Feb 17, 2021, 6:55:15 AM2/17/21
to TortoiseSVN
See screenshot.
What I did:
- made a lot of changes in "working copy 1" of branch A, which include the deletion of some files.
- some changes and deletion of the same files in the working copy of branch B.
- commit branch B.
- merge B into "working copy 2" of A.
- commit "working copy 2" of A.
- update "working copy 1" of A.
-> tree conflict on the deleted files.
-> "Accept incoming conflicts" shows mentioned error. Resolution not possible.

Despite the tree conflicts, this working principle is a suitable way for me:
- extract the changes of one development job from many changes of multiple combined developments by copying them to another branch
- then commit the changes of that one job
- then merge it back into the original branch, but in another working copy, and commit it there.
- then update the original working copy, so that some changes become revisioned.

This works fine most of the time, except the fact that resolving tree conflicts sometimes takes long time (https://groups.google.com/g/tortoisesvn/c/6vqi7kjyrkQ) or simply doesn't work (this post).

tsvn png tree conflict.png

Tobias Knauss

unread,
Feb 17, 2021, 8:47:40 AM2/17/21
to TortoiseSVN
Correction:
I accidentally merged into the "working copy 1". So, this problem happened independently of my working prinziple. It can be reproduced by these steps:
- delete a file in a branch
- commit the branch
- delete the file in the trunk
- merge the branch.
I could reproduce the issue in a test repo.

TortoiseSVN 1.14.99, Build 29088 - 64 Bit -dev, 2021/02/15 16:52:18

Daniel Sahlberg

unread,
Feb 17, 2021, 9:34:56 AM2/17/21
to TortoiseSVN
onsdag 17 februari 2021 kl. 14:47:40 UTC+1 skrev Tobias Knauss:
Correction:
I accidentally merged into the "working copy 1". So, this problem happened independently of my working prinziple. It can be reproduced by these steps:
- delete a file in a branch
- commit the branch
- delete the file in the trunk
- merge the branch.
I could reproduce the issue in a test repo.

I've tried to reproduce but I can't. I've created a new repo with a trunk, added a file in trunk, copied to "branch", deleted in branch and committed.

If I follow your steps exactly, ie deleting the file in trunk and mergeing without committing, I get an error Cannot merge into a working copy that has local modifications.

If I first commit the delete in trunk and then merge, I get a tree conflict. But I can select either to ignore or to accept the incoming deletion. Both succeed and record the correct merge info.

Can you create a new repository and detail all the steps? If this is an actual error there might be a fail chance that it is also reproducible using the svn command line client, in which case a reproduction should go to us...@subversion.apache.org.

Kind regards,
Daniel Sahlberg

Tobias Knauss

unread,
Feb 22, 2021, 3:07:01 PM2/22/21
to TortoiseSVN
Notice: All operations in trunk and branch are done on the files and folders on disk. No SVN "Switch" is used.

My steps to reproduce (just tested again):
1) Create new repo with default folder structure using TSVN (-> rev.1)
2) Checkout full repo into a folder.
3) Create doc1.txt in trunk, enter some lines, commit (-> rev.2)
4) Create branches/b01 from trunk (-> rev. 3)
5) SVN Delete doc1.txt in the branch b01, commit (-> rev. 4)
6) SVN Delete doc1.txt in the trunk, do NOT commit, merge branch b01 (update upon request, continue merge) -> Tree conflict, Failure from above.

Best regards
Tobias Knauß

Daniel Sahlberg

unread,
Feb 22, 2021, 4:16:58 PM2/22/21
to TortoiseSVN
I've tried the following with a repository on local disk, ie no server or network involved. I don't suppose there would be a difference though.

måndag 22 februari 2021 kl. 21:07:01 UTC+1 skrev Tobias Knauss:
Notice: All operations in trunk and branch are done on the files and folders on disk. No SVN "Switch" is used.

My steps to reproduce (just tested again):
1) Create new repo with default folder structure using TSVN (-> rev.1)
2) Checkout full repo into a folder.
3) Create doc1.txt in trunk, enter some lines, commit (-> rev.2)
4) Create branches/b01 from trunk (-> rev. 3)
I had to update to see the b01 branch. I did this in branches.
5) SVN Delete doc1.txt in the branch b01, commit (-> rev. 4)
6) SVN Delete doc1.txt in the trunk, do NOT commit, merge branch b01 (update upon request, continue merge) -> Tree conflict, Failure from above.
I suppose the update request is based on a mixed revision working copy, at least that's what I get from the above. 
When I do the update, the file re-appear. Then the merge execute with the following messages:
Merging r3 through r4
Deleted  ... \doc1.txt
Recording mergeinfo for merge of r3 through r4
Updated
Completed!

If I instead after step 4 update the WC root (ie, avoid getting a mixed revision WC), then I get
Merge tracking not allowed with missing subtrees; try restoring these items first ... \doc1.txt.

All using TortoiseSVN 1.14.1. I'm sorry that I can't help you any further.

If you can reproduce the issue using the svn command line client (which is available in the TortoiseSVN installer), you will probably get help at us...@subversion.apache.org.

For the record; I tried with the following steps but they succeed (or give reasonable error messages):
svnadmin create rmerge
svn co file:///home/daniel/rmerge wc
cd wc
mkdir trunk branches tags
svn add trunk/ branches/ tags/
svn ci trunk/ branches/ tags/ -m 'dirstruct'
echo "a\nb\n\c\n" >trunk/doc1
svn add trunk/doc1
svn ci -m doc1
svn copy trunk/ branches/b01
svn ci -m b01
svn del branches/b01/doc1
svn ci -m del_b01
cd trunk/
svn del doc1
svn up #Otherwise you get a "mixed-revision" error
svn merge file:///home/daniel/rmerge/branches/b01

If I instead delete the file without informing SVN in the third step from the end, I get the "Merge tracking not allowed with missing subtrees" error.

Kind regards
Daniel 

Tobias Knauss

unread,
Feb 22, 2021, 4:57:47 PM2/22/21
to TortoiseSVN
Daniel,
based on your description, I tried to reproduce using the command line tools, but it did not work. The operation completed successfully, updating the trunk.
I guess it's a bug in TSVN.

Best regards
Tobias
Reply all
Reply to author
Forward
0 new messages