bitbucket, “hg push” et “hg update”
Si je démarre avec un local mercurial pensions, que je considère être le "principal" repo (pardonnez-moi mon dvcs chambre des lords), et l'intention d'utiliser bitbucket une procédure de sauvegarde et de suivi des enjeux, de la facilité, je peux faire toutes mes modifications dans mon local de pensions et de faire "un hg push" pour envoyer les modifications sur bitbucket.
N'ai-je pas besoin de suivre cette "hg push" commande exécuter sur ma machine locale avec un "hg update"?
Je pense que je n'ai pas l'expliquer assez bien. Je fais de mon codage sur ma machine locale. Lorsque vous êtes satisfait, je ne "hg commit" sur ma machine locale. C'est très bien, mais maintenant, bitbucket est dans l'image. J'ai donc "hg push" pour bitbucket. Alors n'ai-je pas besoin de "hg update" sur bitbucket? Si oui, comment dois-je faire?
OriginalL'auteur chefsmart | 2009-07-27
Vous devez vous connecter pour publier un commentaire.
Pourquoi avez-vous attention à ce qui est dans le répertoire de travail sur BitBucket les serveurs? Aussi longtemps que vous poussez les changements seront dans le référentiel et visible sur le BitBucket page.
EDIT: OK, je vais le modifier pour être une réponse utile.
Dire que vous clonez une de mes dépots comme django-hoptoad sur BitBucket. Vous aurez un dossier nommé
django-hoptoad
sur votre machine locale et de son contenu va ressembler à quelque chose comme ceci:Toutes les données sur le référentiel lui-même est stocké dans le
.hg/
dossier. C'est là Mercurial conserve les données sur les fichiers qui ont été modifiés dans lequel la révision, et pleins d'autres trucs.Vous pouvez penser à elle de cette façon (même si c'est une explication simpliste):
Lorsque vous exécutez
hg pull
et de ne pas mettre à jour, vous tirez toutes les nouvelles révisions dans le référentiel:Si vous n'avez pas de mise à jour, la
... my code and other folders
sera toujours équivalent à ce qui est danschangeset 2
, mais les autres révisions sont encore dans le référentiel.Lorsque vous exécutez
hg update
Mercurial permettra de mettre à jour le... my code and other folders
le contenu de la dernière révision.Vraiment, cela signifie que ce qui arrive à être dans
... my code and other folders
n'a pas à correspondre à ce qui est dans le référentiel. Vous pouvez simplement le supprimer et de toutes les révisions seraient encore dans le référentiel:Si vous avez commis droit maintenant, il serait de créer une nouvelle révision qui dit en gros "pas de fichiers". Vous ne devez pas commettre. Les gens peuvent toujours pousser et tirer de vous, parce que le référentiel a encore toutes les données sur les révisions.
Ce n'est presque certainement ce que BitBucket est en train de faire. Vous n'allez pas vous connecter à BitBucket de serveurs, de modifier votre code et de s'engager là -- vous n'êtes jamais à pousser/tirer/cloner. Cela signifie que le
... my code and other folders
ne sera jamais vraiment utilisé, donc j'imagine que Jesper a qu'à les supprimer pour économiser l'espace disque.Depuis
hg update
seulement affecte vraiment le répertoire de travail, et le répertoire de travail sur BitBucket n'est jamais utilisé, vous n'avez pas besoin d'exécuterhg update
après vous pousser à BitBucket.OriginalL'auteur Steve Losh
Je pense que vous pourriez être de se confondre entre les de la copie de travail (aka répertoire de travail) et le local référentiel. Ceux-ci sont liés, mais la part des choses. Le référentiel local contient l'historique complet de tous les dossiers alors que la copie de travail contient des versions de fichiers à partir d'une révision plus vos modifications,
La
hg
commandecommande
etpull
déplacer les changements entre les dépôts etupdate
etvalider
se déplace changements entre votre copie de travail et de votre dépôt local.Donc, si vous
push
changements à un dépôt distant qui ne changera pas le dépôt local et donc il n'y a pas besoin d'exécuter unupdate
sur le local référentiel. Cependant, toute personne utilisant le distance référentiel aurez besoin de faire unupdate
afin que vos modifications sont affichées dans leur copie de travail. A l'inverse, si vouspull
modifications à partir d'un dépôt distant, vous devrez procéder à uneupdate
de sorte que ces modifications sont indiquées dans votre copie de travail.De même, vous devez
commit
toutes les modifications de votre copie de travail dans le dépôt local avant d'être envoyé à un autre référentiel à l'aide depush
.Vous aurez besoin de faire une mise à jour sur bitbucket, de sorte que les changements à partir de votre référentiel sont reflétées dans bitbucket la copie de travail. Je pense que vous ne pouvez le faire que par l'exécution d'une "hg update" localement pour la bitbucket repo. J'ai mis à jour la réponse à tenir compte de cela.
Bien sûr, vous n'avez pas à faire une mise à jour sur bitbucket. Ce but serait que de la copie de travail? Exactement, Aucun.
OriginalL'auteur Dave Webb
Bitbucket vous montre la référentiel. Comme l'a souligné Dave Webb,
hg update
est de mettre à jour l' copie de travail. Lorsque vous nehg push
vous transférez des révisions afin de mettre à jour le référentiel sur Bitbucket -- et donc la webinterface.Il n'y a pas de copies de travail sur Bitbucket, comme l'a souligné Steve Losh. Il ya aussi pas de
hg update
fait derrière votre dos.Vous pouvez essayer vous-même en faisant un clone sans une copie de travail:
puis aller dans
repo-empty
et nehg log
. Vous verrez que même si il n'y a pas de fichiers, la histoire (c'est à dire, la référentiel) a toujours été cloné. Vous pouvez rendre les fichiers apparaissent avec lehg update
commande:et disparaître de nouveau avec
La copie de travail n'est nécessaire que si vous voulez regarder les fichiers et faire de nouveaux commits. Sinon, vous pouvez les supprimer pour gagner de la place. Ceci est normalement fait dans les clones qui ne sont utilisées que pour servir avec
hg serve
ou l'équivalent chose que Bitbucket utilise.OriginalL'auteur Martin Geisler
Pas besoin de faire un hg mise à jour sur votre machine locale. Mise à jour est utilisée lorsque les données sont poussées À votre dépôt local, et vous poussez à PARTIR de votre référentiel local.
OriginalL'auteur Senad Uka