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

Reply via email to