On Fri, Mar 11, 2022 at 2:36 PM Julian Foad <julianf...@apache.org> wrote: > The "restore missing files" is an odd thing that "update" does outside > of its core purpose: when any versioned file in its scope is missing > from disk, it puts an unmodified copy of the file back on disk there, by > copying (and translating keywords/eol-style) from its pristine version. > It's something like an implicit revert for files that were deleted from > disk without using "svn delete". Why so, I don't know, and I don't like > it, but it's there, so let's go on to look at how it interacts with > absent pristines. (snip) > It's probably a rare case in most users' work flows but it's something > that exists we have to deal with one way or another, even if by > declaring it no longer supported and changing test expectations accordingly.
I am glad that you explained the "restore thing." That is actually a workflow that I use, probably more often than I should! I don't remember whether it's an old habit dating back to CVS, whether it was ever documented in the svn-book, or whether I simply observed that deleting a file and calling 'svn update' restores it, but this feature is kind of ingrained in my mind as part of how SVN works. I do use 'svn revert' when appropriate, but sometimes 'svn update' seems more appropriate. Yes, this may be more of a habit than a real use case, but bear with me for a moment... If possible and not overly burdensome, I think it would be a good thing to keep the "restore" functionality for the following reasons: 1. This is how SVN has worked since ages and ages ago and may be ingrained in the minds of other users besides me; if so, then getting rid of it may be considered a backwards compatibility breaking change in terms of usage. 2. Conceptually the restore functionality makes sense, since it brings a working copy up to date with the repository; any files in the repository which are not in the working copy should therefore be populated. 3. "svn checkout" is the same thing as bootstrapping a working copy without the contents and then running "svn update" to "restore" the missing files, which are missing because they were never downloaded in the first place. The code in svn_client__checkout_internal() explains this in comments. 4. An interrupted "checkout" or "update" (interrupted, e.g., with Ctrl+C) can be resumed with "svn update" (after running "svn cleanup" to release locks). Removing the "restore" functionality will probably break the above; unfortunately I don't know what else may be affected. Just my 2 cents. If it absolutely has to go, I'll get used to using 'revert' instead, but I just wanted to point out that this may cause other issues... Cheers, Nathan