On Wed, Apr 16, 2025 at 9:38 AM Jan Kohlmeyer <jan.kohlme...@vario.ag> wrote: > > Hi, I think I found a Bug on SVN Cleanup: > > > > * What steps led to the issue: > > > > I have an Repository with externals. > > One external has a depth of three directorys: > > Path: Dir1/Dir2/Dir3 > > Url: ^/../OtherDir > > > > Run cleanup with include-externals, e.g. with include-externals and remove-unversioned > > svn cleanup --include-externals > > svn cleanup --remove-unversioned --include-externals > > > > * The expected outcome: > > > > The external should be treated like any other external. > > It shoud be cleand up > > > > * The actual outcome: > > > > With svn cleanup --include-externals it will not be updated and with svn cleanup --remove-unversioned --include-externals it will be deleted. > > > > * Subversion client version: > > > > svn, version 1.14.5 (r1922182) > > compiled Nov 30 2024, 08:20:48 on x86-microsoft-windows > > > > * Subversion server version: > > Subversion 1.14.5 > > > > * If you built Subversion yourself, compiler and configuration options used: > > I Use TortoiseSVN with VisualSVN Server > > > > * Any customizations which could be relevant: > > > > No > > > > * Your operating system: > > > > Windows 11 > > > > * Any similar bugs already in the issue tracker: > > > > I didn’t found it > > > > > > > > Regards, Jan
Hi Jan, Thanks for the report. I tried to write a reproduction script based on your description. However, I am possibly misunderstanding your report because I am getting the results I expect. Currently I don't have a Windows system to test with, so this is a unix script... I hope you can look through it and let us know if there's a different directory layout that exposes the issue you're seeing: [[[ #!/bin/sh REPO="$PWD/repo" URL="file://$REPO" WC="$PWD/wc" svnadmin create "$REPO" svn checkout "$URL" "$WC" cd "$WC" || exit # Create this directory structure: # (this is tree layout 1) # top # |-- a # | `-- b # | `-- c # `-- d # `-- e # `-- f echo "Creating directory structure..." svn mkdir --parents "top/a/b/c" "top/d/e/f" svn commit -m "Make initial directory structure" svn update "$WC" # Set svn:externals on top/a to pull top/d into top/a/b/c subdir: # (this is tree layout 2) # top # |-- a # | `-- b # | `-- c # | `-- d # | `-- e # | `-- f # `-- d # `-- e # `-- f echo "Setting svn:externals..." svn propset "svn:externals" "^/top/d b/c/d" "top/a" svn commit -m "Add external" svn update "$WC" # Put some junk files into top/a/b/c/d/e/f/: # (this is tree layout 3) # top # |-- a # | `-- b # | `-- c # | `-- d # | `-- e # | `-- f # | |-- junk1.txt # | |-- junk2.txt # | `-- junk3.txt # `-- d # `-- e # `-- f echo "Adding some junk files..." touch "$WC/top/a/b/c/d/e/f/junk1.txt" touch "$WC/top/a/b/c/d/e/f/junk2.txt" touch "$WC/top/a/b/c/d/e/f/junk3.txt" svn status "$WC" # Now for some tests... # Test 1 # Expected outcome: No change to junk files, remain at tree layout 3 svn cleanup "$WC" # Test 2 # Expected outcome: No change to junk files, remain at tree layout 3 svn cleanup --include-externals "$WC" # Test 3 # Expected outcome: Removal of junk files, back to tree layout 2 svn cleanup --include-externals --remove-unversioned ]]] Thanks, Nathan