• [^] # Re: Re:

    Posté par . En réponse au journal Git ou Mercurial ?. Évalué à 3.

    Précision et correction:
    Pour svn il faut parler de révision d'aborescence et non de fichier.
    Si on commite un changeset on obtient une nouvelle révison de toute l'arborescence
    Chacune des révision porte porte un identifiant unique et peut donc être retrouvée.
    Ce qui n'exclut pas de tagger certaines révision, explicitement puisqu'on dispose de "cheap copy" .


    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.

    http://svnbook.red-bean.com/en/1.2/svn.branchmerge.using.htm(...)