Removing if unversioned files during a tree conflict resolve.

1 view
Skip to first unread message

Marcel Delorme

unread,
Nov 15, 2022, 10:36:14 AM11/15/22
to us...@subversion.apache.org, Klaas de Jong

HI,

 

I think we spotted a bug. The following sequence has been followed:

  • User 1 renames a svn folder and commits this
  • User 2 has unversioned files and uncommited files in the renamed folder
  • User 2 performs an update
  • Subversion encounter a tree conflict
  • All files are still on the disk during this step
  • Subversion solves three conflict.
  • unversioned files are removed from users 2 disk.

 

The unversioned files are retained in the old folder with the old name when the same sequence is executed with no uncommited files on users 2 computer.

 

This all has been performed using : Svn, version 1.14.2 (r1899510)

   compiled Sep 24 2022, 10:21:16 on x86-microsoft-windows

 

using Microsoft Windows [Version 10.0.19045.2130].

 

 

Kind regards,

 

Marcel Delorme

Head of Software

Phone: +31 (0) 515 729433

Email: m.de...@venturasystems.com

Address: De Marne 216, 8701 MH Bolsward, Netherlands

 

Pavel Lyalyakin via users

unread,
Nov 15, 2022, 11:52:28 AM11/15/22
to Marcel Delorme, us...@subversion.apache.org, Klaas de Jong
It seems that this behavior reproduces on my side with svn, version 1.14.2 (r1899510) on Windows. I'm not sure if my reproduction script is correct, but the behavior looks similar.

The file unversionedfile.txt is missing after the svn client automatically solves the tree conflict when updating a working copy.

Here is the script (Windows Batch):
[[[
mkdir C:\marcel-bug-report
svnadmin create C:\marcel-bug-report\MyRepo
svn mkdir file:///C:/marcel-bug-report/MyRepo/MyDir -m "Adding a new directory"

svn checkout file:///C:/marcel-bug-report/MyRepo/ C:\marcel-bug-report\working-copy-one
echo foo > C:\marcel-bug-report\working-copy-one\MyDir\myfile.txt
svn add C:\marcel-bug-report\working-copy-one\MyDir\myfile.txt
svn commit C:\marcel-bug-report\working-copy-one\ -m "Adding a new file"
echo bar > C:\marcel-bug-report\working-copy-one\MyDir\myfile.txt
echo baz > C:\marcel-bug-report\working-copy-one\MyDir\unversionedfile.txt

svn move file:///C:/marcel-bug-report/MyRepo/MyDir file:///C:/marcel-bug-report/MyRepo/RenamedDir -m "Renaming a directory"

svn update C:\marcel-bug-report\working-copy-one
]]]

[[[
C:\Users\Lyalyakin>svn update C:\marcel-bug-report\working-copy-one
Updating 'C:\marcel-bug-report\working-copy-one':
   C C:\marcel-bug-report\working-copy-one\MyDir
A    C:\marcel-bug-report\working-copy-one\RenamedDir
A    C:\marcel-bug-report\working-copy-one\RenamedDir\myfile.txt
Updated to revision 3.
Summary of conflicts:
  Tree conflicts: 1
Searching tree conflict details for 'C:\marcel-bug-report\working-copy-one\MyDir' in repository:
Checking r3... done
Tree conflict on 'C:\marcel-bug-report\working-copy-one\MyDir':
Directory updated from r1 to r3 was moved to '^/RenamedDir' by Lyalyakin in r3.
A directory containing uncommitted changes was found in the working copy.
Applying recommended resolution 'Move and merge':
   C C:\marcel-bug-report\working-copy-one\RenamedDir\myfile.txt
At revision 3.
Tree conflict at 'C:\marcel-bug-report\working-copy-one\MyDir' marked as resolved.
Summary of conflicts:
  Tree conflicts: 1 remaining (and 1 already resolved)
]]]
[[[
C:\Users\Lyalyakin>svn status -v C:\marcel-bug-report\working-copy-one
                 3        3 Lyalyakin    C:\marcel-bug-report\working-copy-one
                 3        3 Lyalyakin    C:\marcel-bug-report\working-copy-one\RenamedDir
      C          3        2 Lyalyakin    C:\marcel-bug-report\working-copy-one\RenamedDir\myfile.txt
      >   local file unversioned, incoming file add upon update
Summary of conflicts:
  Tree conflicts: 1
]]]

--
With best regards,
Pavel Lyalyakin
VisualSVN Team

Marcel Delorme

unread,
Nov 16, 2022, 6:02:41 AM11/16/22
to Pavel Lyalyakin, us...@subversion.apache.org, Klaas de Jong

HI Pavel,

 

Yes it seems you have a similar sequence. My two cents is that the tree resolver function doesn’t take unversioned files into account. As this relates to data loss this is a quite serious bug.

 

Thanks for your speedy response .

 

Kind regards,

 

Marcel Delorme

Head of Software

Phone: +31 (0) 515 729433

Email: m.de...@venturasystems.com

Address: De Marne 216, 8701 MH Bolsward, Netherlands

 

From: Pavel Lyalyakin <pavel.l...@visualsvn.com>
Sent: Tuesday, 15 November 2022 17:52
To: Marcel Delorme <m.de...@venturasystems.com>
Cc: us...@subversion.apache.org; Klaas de Jong <k.de...@venturasystems.com>
Subject: [EXTERNAL]: Re: Removing if unversioned files during a tree conflict resolve.

 

CAUTION: This email originated from outside Ventura Systems. Do not click links or open attachments unless you recognize the sender and know the content is safe.

Reply all
Reply to author
Forward
0 new messages