"Force removal" dialog: Abort button does not abort completely

40 views
Skip to first unread message

Tobias Knauss

unread,
Dec 11, 2020, 6:27:17 AM12/11/20
to TortoiseSVN
I am currently trying to reproduce the situation from https://groups.google.com/g/tortoisesvn/c/OD6md7BfTW4, so I checked out the trunk of the respective repo at a specific revision, compared it to the other folder that has the merged branch, copied all new files into the folder and tried to SVN-delete all deleted files.

The problem is, that I get "force removal" warnings for files I did not ask to delete. And I cannot abort these warnings. The upper "Cancel" (directly underneath "Remve") correctly aborts the deletion of the current file. But the "Cancel" in the lower right corner also abort for the current file only. So I had to click through about 10 files one by one.

On the problem of the false files: How can I find out, which files are going to be deleted by TSVN? Either Beyond Compare 4 sends a wrong file list, or TSVN uses wrong files.

But... it's different, as I just found out.
The problem is: In BC4, I selected not only files, but also their 8 parent folders. Therefore, I got 8 warnings, each one asking to delete a modified file from that folder. There are more than 1 modified file in each of that 8 folders, but I got only 8 warnings, this is why I found out that the abort button obviously works per folder.
And the file list was correct, because it included the folders.

Either the abort button should abort completely, or you should tell that the abort only applies to the current folder and specify that folder somewhere.

Stefan

unread,
Dec 11, 2020, 1:47:32 PM12/11/20
to TortoiseSVN
I'm sorry but I can not figure out what happened here.

* where do you try to "SVN-delete" deleted? files ?
* did you select multiple files/entries-in-a-dialog for the command?
* what paths were those files?
* when you get the "force removal" warning for files you did not ask to delete: are those files in maybe folders you asked to delete? Or were those files completely different? What was the state of those files and what paths were they?
* what does Beyond-Compare have to do with deleting files???

I'm very confused...

Tobias Knauss

unread,
Dec 12, 2020, 4:20:01 AM12/12/20
to TortoiseSVN
Okay, I will try to explain more clearly.

1) I checked out the trunk (last revision before the partial commits of my merge started) into a new folder "test".
2) I started a folder compare of my "main" folder and the "test" folder in Beyond Compare.
3) In BC4, I copied all added files in my "main" folder to "test" and added them to the repo (no commit yet).
4) In BC4, I selected all remaining files *and* folders on the "test" side (the files are those that were deleted in "main", the folders were just shown as the files' parent folders on the right; the selection of the folders was wrong) and chose "SVN-delete" on them.
5) I got 8 "force removal" warnings on files that were not part of the selection (which confused me first: >I get "force removal" warnings for files I did not ask to delete), but I found that each of the warnings mentioned a file in one of the 8 folders that I selected. The folders however were *not* deleted in "main", so they still contained a lot of files, some of them modified, thus the warning, which is correct.
6) I clicked abort, but more "force removal" warnings were shown, which confused me again (> But the "Cancel" in the lower right corner also abort for the current file only. So I had to click through about 10 files one by one.<), until I noticed that each warning belongs to a file from a different folder.

I should not have written the first half of my post. I just wanted to show the way that I took to find the actual problem:
> Either the abort button should abort completely, or you should tell that the abort only applies to the current folder and specify that folder somewhere.

The behavior I expect is "the abort button should abort completely.
I hope this is clear now. If not, please let me know.

Stefan

unread,
Dec 12, 2020, 7:31:25 AM12/12/20
to TortoiseSVN
On Saturday, December 12, 2020 at 10:20:01 AM UTC+1 Tobias Knauss wrote:
1) I checked out the trunk (last revision before the partial commits of my merge started) into a new folder "test".
2) I started a folder compare of my "main" folder and the "test" folder in Beyond Compare.
3) In BC4, I copied all added files in my "main" folder to "test" and added them to the repo (no commit yet).
4) In BC4, I selected all remaining files *and* folders on the "test" side (the files are those that were deleted in "main", the folders were just shown as the files' parent folders on the right; the selection of the folders was wrong) and chose "SVN-delete" on them.

you're starting "SVN delete" from BC?
In that case, BC probably is at fault here...(see below)
 
5) I got 8 "force removal" warnings on files that were not part of the selection (which confused me first: >I get "force removal" warnings for files I did not ask to delete), but I found that each of the warnings mentioned a file in one of the 8 folders that I selected. The folders however were *not* deleted in "main", so they still contained a lot of files, some of them modified, thus the warning, which is correct.
6) I clicked abort, but more "force removal" warnings were shown, which confused me again (> But the "Cancel" in the lower right corner also abort for the current file only. So I had to click through about 10 files one by one.<), until I noticed that each warning belongs to a file from a different folder.

I should not have written the first half of my post. I just wanted to show the way that I took to find the actual problem:
> Either the abort button should abort completely, or you should tell that the abort only applies to the current folder and specify that folder somewhere.

The behavior I expect is "the abort button should abort completely.
I hope this is clear now. If not, please let me know.

if BC starts an "SVN delete" for every entry separately, then for every entry a separate tortoiseproc.exe process is started. So it's not possible for TSVN to abort all of them.

 

Tobias Knauss

unread,
Dec 14, 2020, 5:14:48 AM12/14/20
to TortoiseSVN
I don't think so.
BC4 provides the explorer context menu on a selection of files, so even though BC4 starts the SVN delete, it does so with functionality that TSVN provides via the explorer context menu:
tsvn-delete-context-menu.png

I have set TSVN "debug=true", did the same comparison again in BC4, selected all files and folders on the right and executed TSVN "copy URL to clipboard".
Well, there's nothing in the clipboard (functionality broken or incomplete?). But (due to debug enabled) there is a message box:
tsvn-delete-url.png
(the path of that file should be in the clipboard).

And this file contains a list of all files and folders that I selected (files are only present in this list if their parent folder has been expanded in the BC4 view):
D:\sw_development\zzz_di_swcore__test\basics
D:\sw_development\zzz_di_swcore__test\basics\Math
D:\sw_development\zzz_di_swcore__test\basics\Math\CMath_Generics.cs
D:\sw_development\zzz_di_swcore__test\basics_test
D:\sw_development\zzz_di_swcore__test\basics_test\CMath_Generics_Tests.cs
D:\sw_development\zzz_di_swcore__test\basics_ui-wf
D:\sw_development\zzz_di_swcore__test\basics_ui-wf\CDataGridView1.cs
D:\sw_development\zzz_di_swcore__test\basics_ui-wf\CDataGridViewHelper.cs
... more files ...
D:\sw_development\zzz_di_swcore__test\basics_ui-wf\UCPhysicalQuantity.Designer.cs
D:\sw_development\zzz_di_swcore__test\basics_ui-wf\UCPhysicalQuantity.resx
D:\sw_development\zzz_di_swcore__test\drives
D:\sw_development\zzz_di_swcore__test\drives\CLtiSOJ_PLC_DL.cs
D:\sw_development\zzz_di_swcore__test\io
D:\sw_development\zzz_di_swcore__test\io\CDotlineIO.cs
D:\sw_development\zzz_di_swcore__test\machine-functions_ui-wf_testmex
D:\sw_development\zzz_di_swcore__test\machine-functions_ui-wf_testmex\FormTestMEx_UCOpticalCoordinateMeasuringMachine_03.cs
D:\sw_development\zzz_di_swcore__test\machine-functions_ui-wf_testmex\FormTestMEx_UCOpticalCoordinateMeasuringMachine_03.Designer.cs
D:\sw_development\zzz_di_swcore__test\machine-functions_ui-wf_testmex\FormTestMEx_UCOpticalCoordinateMeasuringMachine_03.resx
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf\UCStepValueInput.cs
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf\UCStepValueInput.Designer.cs
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf\UCStepValueInput.resx
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf_testmex
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf_testmex\FormTestMEx_UCStepValueInput_01.cs
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf_testmex\FormTestMEx_UCStepValueInput_01.Designer.cs
D:\sw_development\zzz_di_swcore__test\usercontrols_ui-wf_testmex\FormTestMEx_UCStepValueInput_01.resx

So there most likely are no multiple calls from BC4, also because the debug message box pops up only once.

Stefan

unread,
Dec 14, 2020, 12:31:17 PM12/14/20
to TortoiseSVN
there's a checkbox in that force-delete dialog named "Do this for all unversioned/modified items" - if you check that when you cancel, the dialog won't show again.

Tobias Knauss

unread,
Dec 15, 2020, 3:42:10 AM12/15/20
to TortoiseSVN
Stefan schrieb am Montag, 14. Dezember 2020 um 18:31:17 UTC+1:
there's a checkbox in that force-delete dialog named "Do this for all unversioned/modified items" - if you check that when you cancel, the dialog won't show again.

Yes, this might be true. But this would mean, that the behaviour of that dialog differs from all other dialogs, e.g. the "resolve conflict" dialog:
If I click "abort" here, the dialog does not abort like every other does, but appears again. So you basically have 2 abort buttons with the exact same behaviour.
In my opinion, the abort in the lower right corner should have the behaviour as if the checkbox was checked. Otherwise you might remove that lower abort button.

Alternatively, you could provide 4 buttons in the style of the upper buttons: "Remove current", "Remove all" (with additional warning if clicked), "Abort current", "Abort all". This would make it really clear.

Reply all
Reply to author
Forward
0 new messages