4673: rbt patch is unable to remove a folder containing an empty file

totoroliu

What version are you running?

RBTools 0.7.11
svn, version 1.9.7 (r1800392)
Ubuntu 16.04.4 LTS

What steps will reproduce the problem?

$ cd into a svn repo

$ # Prepare environment
$ mkdir folder
$ touch folder/empty.file
$ svn add folder
$ svn status
A         folder
A         folder/empty.file
$ svn commit -m "add a folder with an empty file"

$ # Prepare Review Request
$ svn rm folder
D         folder
D         folder/empty.file
$ svn status
D         folder
D         folder/empty.file
$ rbt post

$ # Revert local changes and run rbt patch
$ svn revet -R .
$ svn status
$ rbt patch --debug <req_id>

$ svn status
D       folder/empty.file

$ ls -l folder
total 0

What is the expected output? What do you see instead?

expect to see:

D         folder
D         folder/empty.file

$ svn status
D         folder
D         folder/empty.file

What operating system are you using?

Ubuntu 16.04.4 LTS

Attach the debug out from the command.

$ rbt patch --debug 25893
>>> RBTools 0.7.11
>>> Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609]
>>> Running on Linux-4.4.0-112-generic-x86_64-with-Ubuntu-16.04-xenial
>>> Home = /home/rickliu
>>> Current directory = /home/rickliu/scrach/TestProject_trunk
>>> Command line: rbt patch --debug 25893
>>> Running: tf vc help
>>> Checking for a Subversion repository...
>>> Running: svn --non-interactive info
>>> Running: diff --version
>>> Running: svn --non-interactive --version -q
>>> repository info: Path: https://svn.com/svn/svntest, Base path: /TestProject/trunk, Supports changesets: False
>>> Making HTTP GET request to https://reviewboard.com/api/
>>> Making HTTP GET request to https://reviewboard.com/api/repositories/?tool=Subversion
>>> Cached response for HTTP GET https://reviewboard.com/api/repositories/?tool=Subversion expired and was modified
>>> Making HTTP GET request to https://reviewboard.com/api/repositories/1/info/
>>> Cached response for HTTP GET https://reviewboard.com/api/repositories/1/info/ expired and was modified
>>> repository info: Path: https://svn.com/svn/svntest, Base path: /TestProject/trunk, Supports changesets: False
>>> Making HTTP GET request to https://reviewboard.com/api/review-requests/25893/diffs/
>>> Cached response for HTTP GET https://reviewboard.com/api/review-requests/25893/diffs/ expired and was modified
>>> Making HTTP GET request to https://reviewboard.com/api/review-requests/25893/diffs/8/
>>> Added cache entry for HTTP GET request to https://reviewboard.com/api/review-requests/25893/diffs/8/
>>> Making HTTP GET request to https://reviewboard.com/api/review-requests/25893/diffs/8/
>>> Added cache entry for HTTP GET request to https://reviewboardt.com/api/review-requests/25893/diffs/8/
Patch is being applied from request 25893 with diff revision 8.
>>> Running: svn --non-interactive patch --strip=3 /tmp/tmpMlmtpM
>>> Running: svn --non-interactive delete --force folder/empty.file
Successfully applied patch.

Please provide any additional information below.

If the folder doesn't contain an empty file,
rbt patch would always be able to remove the folder if the folder becomes empty.