Actuellement, notre projet TFS (TFVC, not git) contient un dossier qui héberge la totalité de notre produit. Ce dossier contient trois branches (Dev, Main et Release), chacune contenant à son tour plusieurs différents sous-projets. Nous essayons de nous restructurer pour que des composants distincts soient contenus dans leur propre structure de branchement.
Question: Est-il possible de déplacer un dossier contenu dans une branche (pas la branche elle-même), ainsi que le dossier correspondant dans les autres branches vers un projet TFS new tout en conservant la relation et le statut des ensembles de modifications non fusionnés ?
Voici un diagramme de notre résultat final souhaité:
Nous voulons déplacer chacun des "Projet 1" dossiers (côté gauche) dans leur propre structure de branches (côté droit), mais nous avons besoin que tout ensemble de modifications non fusionné soit "suivi". Autrement dit, si nous essayons de fusionner de Dev à Main dans la nouvelle structure, une liste des jeux de modifications (pertinents) qui n'ont pas été fusionnés dans l'ancienne structure nous est présentée.
Est-ce possible? Si oui, quelle série de commandes tf
/tfvc} aurions-nous besoin de le retirer? Je me suis plongé dans Google, mais j'ai échoué, soit parce que je ne sais pas comment décrire cela d'une manière conviviale, soit que c'est tout simplement impossible.
Ce que j'ai essayé
Déplacement direct/Renommer chacun des dossiers dans le nouveau projet (pré-créer chaque branche cible Dev/Main/Release)
Branchez chaque dossier dans la nouvelle structure (sans créer au préalable les dossiers de branche cibles)
tf merge /baseless /recursive
) et en prenant des fichiers de branche cible en cas de conflit; suivi par la re-parentalité des branches. (Comme expliqué ici )Si cela compte, nous sommes prêts à perdre l'historique général si c'est le seul moyen de résoudre ce problème. De préférence, nous le conserverions, même si cela signifiait stocker une copie «obsolète» de l'original quelque part. Je ne m'inquiète pas non plus du fait que les tablettes "suivent" leur source non plus ... nous n'en avons que deux qui seraient touchées et nous pouvons les gérer manuellement si nécessaire. Nous utilisons TFS sur site 2018.
Edit: en réponse à une réponse postée puis supprimée:
Je ne cherche pas à déplacer les branches, mais à extraire des dossiers au plus profond d'eux-mêmes dans leur propre structure de branche correspondante sans perdre les modifications en attente. Je montre seulement deux niveaux ci-dessus, mais en réalité, ils sont beaucoup plus profonds. Je suis capable de tf rename
une branche entière dans un bac à sable et d'obtenir les résultats escomptés ... mais j'essaie de renommer des branches, et le déplacement des dossiers donne des résultats inattendus.
Il semble que vous puissiez obtenir ce que vous voulez en fusionnant les relations des nouveaux dossiers Dev, Main et Release et des anciens dossiers du projet. Je pense que vous pouvez faire une variante du deuxième "itinéraire" que vous avez essayé ci-dessus.
L’objectif est de créer les nouvelles relations de fusion de branche (en créant une branche [new] Release vers [New] Main, puis [New] Main vers [New] Dev. À ce stade, la relation de fusion a été établie et toutes les branches sont dans le même Ensuite, nous fondons sans fondement l’ancien [ancien] avec le [nouveau] pour principal et développeur. Pour principal, nous souhaitons doter la fusion sans fondement de l’état où Main et Release sont identiques (dans l’ancien). Pour Dev, nous voulons faire la fusion sans fondement sur l’état où Dev et Main sont identiques (dans l’ancien). Des fusions supplémentaires peuvent alors se produire de [ancien] à [nouveau] et elles doivent être détectées comme des modifications pouvant être fusionnées de [nouveau] à [nouveau ] semblable à la façon dont ils sont dans [vieux] à [vieux]
Vous perdrez les ensembles de tablettes (mais vous pouvez toujours défaire dans l'ancien emplacement, archiver et fusionner vers le nouveau), mais l'historique doit être conservé tant que l'ancien projet n'est pas détruit.