We sometimes have the following error when we do use svn cleanup -remove-unversioned under Windows:
svn: E720145: Can't remove directory 'C:\dev\Jenkins\workspace\qlib_full \Sources\x12ComInterface\_compilation\vc17_Release': The directory is not empty.
Before running the command line, we kill all the processes that has an handle on files in our working copy except the cmd which is in the root folder and TSVNCache.
I had a look into your code to see if there could be something that could explain this error message.
This message is returned by svn_io_dir_remove_nonrecursive function.
For me the message is not accurate as svn_io_remove_dir2 replicates the 'rm -rf' command.
As the folder is not empty, it means that a file couldn't be removed. You don't return that file name, neither the error code.
One of your comments:
/* On Windows, a process may not release file locks before closing the
handle, and in this case the outstanding locks are unlocked by the OS.
However, this is not recommended, because the actual unlocking may be
postponed depending on available system resources. We explicitly unlock
the file as a part of the pool cleanup handler. */
As you use locks to remove unversioned files and folders, could this be the reason why the folder isn't empty when you try to remove the folder?
This message and any attachments are intended for the sole use of its addressee.
If you are not the addressee, please immediately notify the sender and then destroy the message.
As this message and/or any attachments may have been altered without our knowledge, its content is not legally binding on Crédit Agricole Corporate and Investment Bank.
All rights reserved.
Crédit Agricole Corporate and Investment Bank’s Registered office: 12, Place des Etats-Unis - CS 70052 - 92547 Montrouge Cedex, France.
Ce message et ses pièces jointes sont destinés à l'usage exclusif de leur destinataire.
Si vous recevez ce message par erreur, merci d'en aviser immédiatement l'expéditeur et de le détruire ensuite.
Le présent message pouvant être altéré à notre insu, Crédit Agricole Corporate and Investment Bank ne peut pas être engagé par son contenu.
Tous droits réservés.
Siège social de Crédit Agricole Corporate and Investment Bank : 12, Place des Etats-Unis - CS 70052 - 92547 Montrouge Cedex, France.
Where you have received a communication from Crédit Agricole Corporate and Investment Bank this may include information which constitutes an investment recommendation as defined by the European Market Abuse Regulation of 16 April 2014 (MAR), Investment Research as defined by the European Markets in Financial Instruments Directive of 15 May 2014 (MiFID II) or Investment Advice as defined by MiFID II. Where Investment Advice is provided, it should be noted that it is not provided on an independent basis.
Please see https://www.ca-cib.com/about-us/financial-information/general-disclaimer-sales-trading for more details regarding the important regulatory information in this regard.
If you have any questions in relation to MAR or MiFID II and their impact on your relationship with Crédit Agricole Corporate & Investment Bank please let your sales person know.
Please refer to https://www.ca-cib.com/about-us/financial-information/dodd-frank-disclosures-and-notices for any Dodd-Frank Disclosure for U.S. Persons pursuant to CFTC Regulation 23.431
Received on 2019-11-28 08:20:49 CET