Feature request: Deleting a parent directory should also itemize deleted contents when viewing revision in the log window

18 views
Skip to first unread message

Sam Emswiler

unread,
Oct 10, 2022, 1:51:31 PM10/10/22
to TortoiseSVN
Behavior mentioned below encountered using TrotoiseSvn x64 windows desktop version 1.14.3 and 1.14.5 

When deleting a non-empty directory in a local repo, and committing to remote repo, all the files within the deleted directory are not marked as being deleted when viewed in the log window for the committed revision.

However the commit preview for the local changes prior to commiting to the remote repo do show each deleted file/folder within the top level deleted directory. This is the same for the incremental progress updates during a commit operation where it attempts to update the remote repo with the local changes item by item.

At first I thought somehow the parent directory was being cleaned up without unlinking the child directories/files, but you are able to retrieve a list of the historical directory contents by right-clicking the deletion revision in the log window -> compare and blame with previous revision, so it seems the appropriate cleanup is being done, but when viewed naively from the log window revision details it does not immediately appear so.

This can be further confusing when reverse merging the revision in question, and the top level directory is marked as being added to the tracked workspace (blue plus sign) while its contents are marked as if they're unmodified (green check mark) - I incorrectly took this as a sign that the directory contents were not being removed while the directory was, and it exacerbated an unrelated merge issue because I assumed there was some underlying corruption stemming from the revision that deleted the directory.

I may be misremembering but it feels like older versions of tortoise svn used to display the contents as being removed along with their containing parent directory. I have commits that were created prior to updating to 1.14.3 which show the same behavior as mentioned above - parent directory deleted but does not itemize deletion of contents. I cannot verify my "hunch" in that older revisions did this, but figured I'd mention in case it helps.

The revision details in the log window should display each item deleted in a revision instead of compressing them down to a single deletion of the top-most deleted directory.

Thank you for your continued support of TortoiseSVN!
Sam

Daniel Sahlberg

unread,
Oct 10, 2022, 2:36:16 PM10/10/22
to TortoiseSVN
måndag 10 oktober 2022 kl. 19:51:31 UTC+2 skrev samem...@gmail.com:
Behavior mentioned below encountered using TrotoiseSvn x64 windows desktop version 1.14.3 and 1.14.5 

When deleting a non-empty directory in a local repo, and committing to remote repo, all the files within the deleted directory are not marked as being deleted when viewed in the log window for the committed revision.

However the commit preview for the local changes prior to commiting to the remote repo do show each deleted file/folder within the top level deleted directory. This is the same for the incremental progress updates during a commit operation where it attempts to update the remote repo with the local changes item by item.

At first I thought somehow the parent directory was being cleaned up without unlinking the child directories/files, but you are able to retrieve a list of the historical directory contents by right-clicking the deletion revision in the log window -> compare and blame with previous revision, so it seems the appropriate cleanup is being done, but when viewed naively from the log window revision details it does not immediately appear so.

This can be further confusing when reverse merging the revision in question, and the top level directory is marked as being added to the tracked workspace (blue plus sign) while its contents are marked as if they're unmodified (green check mark) - I incorrectly took this as a sign that the directory contents were not being removed while the directory was, and it exacerbated an unrelated merge issue because I assumed there was some underlying corruption stemming from the revision that deleted the directory.

I may be misremembering but it feels like older versions of tortoise svn used to display the contents as being removed along with their containing parent directory. I have commits that were created prior to updating to 1.14.3 which show the same behavior as mentioned above - parent directory deleted but does not itemize deletion of contents. I cannot verify my "hunch" in that older revisions did this, but figured I'd mention in case it helps.

I can't vouch for old versions, but I downgraded to 1.10.5 and it behaves the same - only displays the deleted directory and not the contents.

FWIW, the command line client is displaying the same. In r1 I added a directory and two files. In r2 I deleted them again.

[[[
D:\temp\wcdel>svn log -v
------------------------------------------------------------------------
r2 | dsg | 2022-10-10 19:56:27 +0200 (mån, 10 okt 2022) | 1 line
Changed paths:
   D /dir

delete dir
------------------------------------------------------------------------
r1 | dsg | 2022-10-10 19:55:59 +0200 (mån, 10 okt 2022) | 1 line
Changed paths:
   A /dir
   A /dir/bar
   A /dir/foo

add dir
------------------------------------------------------------------------

D:\temp\wcdel>
]]]

Kind regards,
Daniel
Reply all
Reply to author
Forward
0 new messages