SVNBOOK Chap4 Branching and Merging Using Branches Creating a Branch
De Framalang Wiki.
Cette page fait partie du projet Version control with subversion.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Sub Versif | SVF | Traduction | Terminé |
| Hotshot92 | Relecture | Fait | |
| Validation |
Source: http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.branchmerge.using.create
Sommaire |
Titre
Paragraphe 1
Paragraphe 2
You may already have seen svn copy used to copy one file to another within a working copy. But it can also be used to do a "remote" copy entirely within the repository. Just copy one URL to another:
$ svn copy http://svn.example.com/repos/calc/trunk \ http://svn.example.com/repos/calc/branches/my-calc-branch \ -m "Creating a private branch of /calc/trunk." Committed revision 341.
Vous avez peut-être déjà utilisé svn copy pour copier un fichier vers un autre à l'intérieur d'une copie de travail. Mais il peut aussi être utilisé pour faire une copie "distante" entièrement à l'intérieur du dépôt. Il suffit de copier une URL vers une autre :
$ svn copy http://svn.exemple.com/depot/calc/trunk \ http://svn.exemple.com/depot/calc/branches/ma-branche-calc \ -m "Création d'une branche privée à partir de /calc/trunk." Révision 341 propagée.
Paragraphe 3
Paragraphe 4
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 an experienced Unix user, you'll recognize this as the same concept behind a hard link. As further changes are made to files and directories beneath the copied directory, Subversion continues to employ this hard link concept where it can. It duplicates data only when it is necessary to disambiguate different versions of objects.
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 and space 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 web site 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 in space. If you create a branch entirely within the repository (by running svn copy URL1 URL2), it's a quick, constant-time operation. Make branches as often as you want.
Des copies peu coûteuses
Le dépôt Subversion a un design particulier. Quand vous copiez un dossier, il n'y a pas à s'en faire pour la taille du dépôt - en fait Subversion ne duplique aucune donnée. Au lieu de ça, il crée une nouvelle entrée de dossier qui pointe vers une arborescence existante. Si vous êtes un utilisateur expérimenté d'Unix, vous reconnaîtrez là le concept de lien matériel ("hard link"). Au fur et à mesure des modifications faites aux fichiers et dossiers sous le dossier copié, Subversion continue à employer ce concept de lien matériel quand il le peut. Il duplique les données seulement s'il est nécessaire de lever l'ambigüité entre différentes versions d'objets.
C'est pourquoi vous entendrez souvent les utilisateurs de Subversion parler de "copies peu coûteuses" ("cheap copies"). Peu importe la taille du dossier - la durée de la copie est constante et très faible, tout comme l'espace disque nécessaire. En fait, cette fonctionnalité est à la base du fonctionnement des propagations dans Subversion: chaque révision est une "copie peu coûteuse" de la révision précédente, avec juste quelques éléments modifiés à l'intérieur. (pour en savoir plus à ce sujet, visitez le site web de Subversion et lisez les paragraphes concernant la méthode "bubble up" dans les documents de conception de Subversion)
Bien sûr, cette mécanique interne de copie et de partage des données est transparente pour l'utilisateur, qui n'y voit que de simples copies d'arborescences. Le point essentiel ici est que les copies sont peu coûteuses, aussi bien en temps qu'en espace disque. Si vous créez une branche entièrement à l'intérieur du dépôt (en lançant svn copy URL1 URL2), c'est une opération rapide, à durée constante. Créez des branches aussi souvent que vous le souhaitez.
