Question

Je comprends le concept de base d'une branche et de fusion. Toutes les explications que j'ai trouvé parler de branchement de votre tronc entier pour créer un projet de branche et de travailler sur elle puis fusionner en arrière. Est-il possible de ramifier un sous-ensemble d'un projet?

Je pense que l'exemple va me aider à expliquer le mieux ce que je veux faire. Supposons que j'ai une application avec dix fichiers file0 par file10. Tous les fichiers sont interdépendants et d'être en mesure de tester tout un dossier tous les autres doivent être inclus dans la construction. Je veux travailler sur file0 mais pas besoin d'apporter des modifications à fichier1 par file10. Puis-je branche file0 si des changements se sont engagés à file0 mettront à jour quelque chose comme myrepos / branches / une branche / file0 mais tous les autres fichiers dans ma copie de travail seront simplement du tronc?

La raison pour laquelle je veux faire est que je travaille sur une grande application j2ee avec des dizaines de milliers de fichiers et il semble que la ramification la chose entière prendra très longtemps. De plus, je suis en utilisant Eclipse avec subclipse (et je peux me tromper à ce sujet), mais il semble comme si je branche un projet éclipse alors je vais devoir mettre en place un nouveau projet d'éclipse pour pointer vers la branche. Malheureusement, l'importation de ce projet particulier de SVN à éclipser prend plusieurs heures en raison de la taille de l'application. Il est pas réaliste pour moi de passer autant de temps.

Je suppose que je pourrais avoir les concepts mal. Peut-être un branchement ensemble du projet ne nécessite pas une nouvelle copie de travail du tout?

Merci pour toute la lumière sur cette question.

Était-ce utile?

La solution

Branching un ensemble (même) très grand arbre dans Subversion est un opération très pas cher, qui effectue une copie de fichiers paresseux (O (1) du temps).

Vous ne devez pas nécessairement changer votre copie de travail entière à travailler sur un seul fichier modifié. Vous pouvez utiliser changer svn passer d'un fichier ou un répertoire dans votre copie de travail pour être une version vérifiée sur le fichier sur la branche.

Autres conseils

Dans Subversion, faisant une branche simplement fait une copie d'une hiérarchie des répertoires. Par conséquent, vous pouvez ramifier un sous-ensemble, mais seulement si ce sous-ensemble peut être défini par une hiérarchie de répertoires.

  

Puis-je   branche file0 si des changements sont engagés à   file0 mettra à jour quelque chose comme   myrepos / branches / une branche / file0 mais   tous les autres fichiers dans ma copie de travail   sera tout simplement du tronc?

Pour répondre à cette question: Non, vous ne pouvez pas ramifier un seul fichier. Cependant, ce que je pense que vous voulez faire à la place est de faire une branche et de travailler sur file0 là. Comme vous apportez des modifications à trunk fichiers, il vous suffit les fusionner dans votre branche où vous travaillez sur file0.

De cette façon, vous aurez toujours les dernières informations trunk, qui permettra de tester les changements de file0 indépendamment du tronc. Vous pouvez ensuite utiliser svn switch pour déplacer votre « objectif de fichier » entre le tronc et la branche (mais attention, Eclipse peut se plaindre de ces manigances).

ramification svn est basée sur le mécanisme de copie paresseuse, de sorte que vous pouvez accéder en toute sécurité votre tout projet: qui ne prendra pas longtemps.

Comme mentionné dans la question « Comment puis-je branche un fichier individuel dans SVN? «vous pouvez ramifier un sous-ensemble, mais je crois que ce serait dangereux avec le svn: propriétés merginfo mécanisme : il fonctionne mieux. il que la propriété est définie à partir de la racine du projet

Branching dans SVN est une opération O (1). En outre, comme SVN utilise en interne la copie paresseuse, vous ne payez qu'une peine de l'espace pour ce que vous changez.

Donc, si vous n'êtes pas sûr, pourquoi ne pas aller de l'avant et la branche l'ensemble du projet?

(Comme quark mentionné, un problème de branchement de grands projets est que, si vous passez commande plusieurs branches / le tronc en parallèle, cela pourrait prendre beaucoup d'espace disque local.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top