[ 
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)

Reply via email to