From <http://svnbook.red-bean.com/en/1.2/svn.branchmerge.using.html>
Cheap Copies Subversion's repository has a special design. When you copy a directory, you don't need to worry about the repository growing huge— Subversion doesn't actually duplicate any data. Instead, it creates a new directory entry that points to an existing tree. If you're a Unix user, this is the same concept as a hard-link. From there, the copy is said to be “lazy”. That is, if you commit a change to one file within the copied directory, then only that file changes—the rest of the files continue to exist as links to the original files in the original directory. This is why you'll often hear Subversion users talk about “cheap copies”. It doesn't matter how large the directory is—it takes a very tiny, constant amount of time to make a copy of it. In fact, this feature is the basis of how commits work in Subversion: each revision is a “cheap copy” of the previous revision, with a few items lazily changed within. (To read more about this, visit Subversion's website and read about the “bubble up” method in Subversion's design documents.) Of course, these internal mechanics of copying and sharing data are hidden from the user, who simply sees copies of trees. The main point here is that copies are cheap, both in time and space. Make branches as often as you want. Paul On 12 Feb 2009, at 16:50, Nick wrote: > > Can someone explain this further? Why would files copied at the WC > level, then committed be any different than files copies at the repo > level? Either way, the files are captured in thy state and committed. > > On Feb 11, 7:58 am, Philip M <[email protected]> wrote: >> Yeah, that's correct. A tag/branch in the repository is a cheap copy, >> while the same in the working copy is a full copy. >> >> +1 for merge here too! >> >> On Jan 18, 11:16 pm, kiddailey <[email protected]> wrote: >> >>> Just for clarification... >> >>> There's a big difference between copying at the repository and >>> copying >>> at the working copy. I would imagine that Versions behaves >>> differently depending on what you're dragging. In other words, if >>> you >>> option+drag on folders in a repository bookmark, it performs a tag/ >>> branch. If you perform an option+drag within a working copy >>> bookmark, >>> it copies the local files and adds them as new items for the next >>> commit. >> >>> Can anyone verify that this assumption is correct? >> >>> On Jan 15, 5:24 pm, Kieren Eaton <[email protected]> wrote: >> >>>> option-Drag the folder you want to tag to its destination and >>>> fill in >>>> the resulting dialog, > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Versions" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/versions?hl=en -~----------~----~----~----~------~----~------~--~---
