[
https://issues.apache.org/jira/browse/SVN-3630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17741224#comment-17741224
]
Ken commented on SVN-3630:
--------------------------
When dealing with source code, files are small enough that the current system
can work.
That is not the case for projects dealing with large, binary files.
"Rename/move" operations are a _major issue_ when large files are involved.
Doing a "{color:#172b4d}rename/move"{color} and "commit" is easy enough for the
user applying it. The change is immediate and consumes a trivial amount of
bandwidth. However, every user that subsequently updates is forced to download
excessive amounts of redundant data.
Renaming a 1GB file means every other user has to download that file, even if
they already have it.
If a folder containing 50 of those files is moved or renamed, every client
needs to download 50GB of data. That also means a lot of unnecessary writes to
the drive, especially when we consider pristines.
It would be a massive improvement for Subversion to handle "rename/move"
operations in a more client-friendly fashion. Even if the solution is efficient
only in clear-cut cases (triggering a conflict in other cases), it would help.
> Rename tracking
> ---------------
>
> Key: SVN-3630
> URL: https://issues.apache.org/jira/browse/SVN-3630
> Project: Subversion
> Issue Type: Bug
> Affects Versions: trunk
> Reporter: C. Michael Pilato
> Priority: Critical
> Fix For: 1.10-consider
>
>
> The history of Subversion is littered with intense conversations about the
> concept of "renames" or "moves". Modeled today as a copy of an object to a
> new
> location followed by a deletion of the same object, renames in Subversion
> behave
> in ways subtly different from how folks knowledgeable about filesystem designs
> and implementations would expect. Issue #SVN-898 tracks this disparity and
> its
> prescribed remedy.
> But for years I've been unconvinced that "true renames" are required for
> correct
> day-to-day operation of Subversion. To date, I've not seen convincing
> evidence
> that there is an inherent problem with the copy+delete model. Why then, is
> Subversion's handling of rename operations the source of so much complaint and
> frustration? Because it is very, very incomplete.
> The copy+delete concept is applied on the client side: 'svn move' is almost
> exactly just 'svn copy' and then 'svn delete'. So far so good. Except when
> it's not. Because the minute that the move operation completes, Subversion
> has
> forgotten a critical piece of information: that the copy and the delete are
> two
> parts of a higher conceptual operation that's valuable to recognize. Because
> the working copy stores nothing to tie the copy and delete together, you are
> free to act independently on each of those operations, committing only one of
> them instead of both, or reverting one of them, etc. Even when you commit
> both
> sides of a renamed object, there is no information transmitted to the server
> to
> tell it that the copy and delete are conceptually tied together. Therefore
> there's no data stored in the repository to that effect. Therefore, when
> clients are pulling information out of the repository (updates, log history,
> merges, etc.) there is no data transmitted to the clients to that effect. The
> special connectedness of the operations is forgotten immediately, to the
> detriment of Subversion's ability to help its users do what they often need to
> do with renamed objects. The results today include excessive tree conflicts,
> excessive data transferred across the wire, and excessive user confusion and
> frustration.
> This issue exists as an umbrella issue to track remedies to the user-visible
> problems of Subversion's rename-forgetfulness, independent of the more
> theoretical "true rename" issue #SVN-898 suggestions.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)