Je suis récemment passé de Subversion à Mercurial pour le contrôle des sources et, ce faisant, j'ai divisé un dépôt en plusieurs. J'ai utilisé des sous-éléments pour gérer les dépendances entre les référentiels. Le problème est que pull n'est pas conscient de suprepo donc je dois aller dans chaque subrepo et tirer des changements afin de mettre à jour un référentiel. Y a-t-il une meilleure manière de faire cela?Comment puis-je obtenir des modifications à propager à tous les sous-états dans Mercurial?
Répondre
traction ne doit être suprepo conscient subrepo conscient
hg pull, à condition qu'il soit utilisé avec l'option -u
(--update
).
Le hg update
devrait, quand il comes to subrepos, les prendre en compte:
Chaque fois que les nouvelles versions Mercurial rencontrent ce fichier
.hgsubstate
lors de la mise à jour de votre répertoire de travail, ils vont tenter de tirer les subrepos spécifiés et les mettre à jour l'état approprié.Les sous-états peuvent également contenir leurs propres sous-états et Mercurial se recurera si nécessaire.
Le OP CoreyD ajoute:
Cela n'a pas fonctionné pour moi.
Je crée deux repos/repo
et/sub
et je clone sous dans repo (/repo/sub
).
Ensuite, je crée un fichier.hgsub
dans/repo
avec cette ligne comme cecisub = ../sub
et validez-le.
Lorsque je fais des changements à/sub
, puis faire une mise à jour dans/repo /repo/sub
est inchangé.
Est-ce que je fais quelque chose de mal?
Cela semble correcte:
SubRepos ou sous-modules (pour Git) sont tous sur referening une configuration précise (changeset ref pour hg, ou de commettre ref pour Git, comme cela est expliqué dans ce SO question)
Lorsque vous changez quoi que ce soit en dehors de /repo
, vous ne modifiez pas le fichier .hgsubstate
dans les/repo
enregistrement de la configuration exacte (référence changeset).
Donc pas de changement du tout.
Vous pouvez faire vos changements /sub
directement dans /repo/sub
, les valider, puis valider /repo
.
Puis, un clone de /repo
aurait la nouvelle configuration.
- 1. Propager les modifications du modèle à afficher dans Silverlight
- 2. perforce: comment propager les modifications non soumises
- 3. Afficher tous les numéros de révision ayant apporté des modifications à un fichier particulier dans Mercurial
- 4. Mercurial - tous les fichiers modifiés dans un ensemble de modifications?
- 5. Comment visualiser les modifications de l'ensemble de modifications Mercurial à l'aide d'un outil de comparaison GUI
- 6. Dans Mercurial, comment extraire les modifications d'un seul fichier d'un ensemble de modifications pour les appliquer à une autre branche?
- 7. Mercurial: quelques questions tous liés à .hgignore
- 8. Comment puis-je envoyer des modifications spécifiques à un dépôt de bibliothèque partagé dans Mercurial?
- 9. Test des modifications non validées de mercurial
- 10. Ajout de modifications d'un référentiel Mercurial à un autre
- 11. Comment utiliser les modifications en amont dans une fourche à l'aide de Mercurial?
- 12. Mercurial: Obtenir l'ensemble de modifications en cours d'un fichier particulier
- 13. Comment dessiner des images dans un ordinateur et les propager?
- 14. Comment tirer les modifications de svn repos après la migration à mercurial
- 15. Comment renommer un répertoire dans Mercurial et continuer à suivre tous les fichiers change
- 16. Examen d'un seul ensemble de modifications dans Mercurial
- 17. Comment obtenir une référence à tous les threads gérés
- 18. Comment puis-je obtenir une modification des ressources à propager dans toute l'application, y compris dans ValueConverters?
- 19. Liste des branches à distance à Mercurial
- 20. Utilisation de mq de mercurial pour gérer les modifications locales
- 21. Comment faire pour oublier tous les fichiers supprimés avec Mercurial
- 22. Comment fusionner à plusieurs reprises des succursales dans Mercurial
- 23. Comment puis-je obtenir les modifications d'un référentiel «maître» dans mercurial pour un projet hébergé sur google code?
- 24. Mercurial: tirer les modifications de la copie non-versionnée
- 25. Comment obtenir Chirpy mettre à jour les fichiers lorsque des modifications sont écrasées faites
- 26. Mercurial: comment fusionner avec le contrôle manuel des modifications et des fichiers?
- 27. Comment cloner un dépôt Mercurial à partir d'un changeset spécifique?
- 28. Obtenir les modifications à l'entité après la mise à jour dans la base de données
- 29. Mercurial à distance sans installer Mercurial
- 30. Comment obtenir tous les CActiveRecords dans yii
Cela n'a pas fonctionné pour moi. Je crée deux repos/repo et/sub et je clone sub dans repo (/ repo/sub). Ensuite, je crée un fichier .hgsub dans/repo avec cette ligne comme ceci sub = ../sub et je le commets. Lorsque je fais des changements dans/sub et que je fais une mise à jour dans/repo/repo/sub est inchangé. Est-ce que je fais quelque chose de mal? – CoreyD
@CoreyD: Je viens de terminer ma réponse pour mieux expliquer pourquoi il n'y avait pas de changements à la mise à jour. La question à laquelle je me réfère dans ma réponse éditée (http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194) concerne Git, mais reste importante à lire, car le véritable but d'un SubRepo/submodule est décrit ici. – VonC