2009-08-27 7 views
3

Contexte: J'ai hérité d'un code MATLAB pour analyser les données de mon doctorat. recherche. Pour m'aider à mieux comprendre le code, j'ai réduit le code au sous-ensemble minimum de fichiers requis pour exécuter le code d'un exemple de test.Gestion des branches de développement où une branche est un sous-ensemble d'une autre branche

Question: Je voudrais engager ce code à un système de contrôle de version en deux branches, une branche master contenant tout le code, et une branche minimal contenant ma version épurée du code, et être en mesure pour fusionner les changements entre ces branches. Comment puis-je accomplir cela?

Je préférerais faire cela avec un seul répertoire de travail et des branches nommées dans Git ou Mercurial, mais je suis ouvert à d'autres suggestions.

Modifier: Je pensais que je l'avais vu une question précédente débordement de la pile le long de ces lignes, et je viens de trouver: Pushing updates to a pruned Mercurial branch. En un commentaire à la réponse acceptée, c'est mentionné que le terme pour ce que je suis essayant de faire est "clonage étroit" et que c'est un travail en cours pour Git et Mercurial.

Répondre

4

Les deux git et mercurial devraient fonctionner correctement. Créez la branche master, puis copiez-la dans la branche minimale, puis dépouillez la branche minimale pour qu'elle ressemble à l'implémentation déjà existante (supprimez tous les fichiers supplémentaires, copiez les fichiers que vous avez modifiés). À partir de ce moment, utilisez des commandes de fusion régulières entre les branches. Il est préférable de fusionner la branche minimale à la branche principale principalement. La fusion de l'autre sens vous donne plus souvent des plaintes que la fusion a échoué (avec des conflits) car certains fichiers s'appliquent aux fichiers supprimés/fonctions supprimées.

+1

Notez que vous pouvez également effectuer deux validations initiales dans un seul référentiel, ce qui vous évitera d'avoir un commit qui supprime un grand nombre de fichiers, mais d'un autre côté des informations redondantes entre vos validations initiales. – Cascabel

Questions connexes