Poussant un dépôt mercurial local vers un serveur distant ou un clonage sur le serveur local
J'ai un dépôt local que j'ai maintenant décidé de pousser à un serveur distant (par exemple, j'ai un hôte qui permet mercurial référentiels et je suis aussi en train d'essayer de pousser à bitbucket). Le référentiel a beaucoup de fichiers et est un peu plus de 200 mo. Localement, je suis en mesure de cloner le dépôt sans problèmes.
Maintenant, j'ai beaucoup de changements dans ce référentiel, et que j'ai perdu une couple de jours à essayer de comprendre comment obtenir le serveur distant pour cloner mon référentiel. Je ne peux pas obtenir hg serve
à travailler à l'extérieur du réseau local. J'ai tout essayé. Donc, au lieu de cela, j'ai créé un nouveau référentiel sur les serveurs distants (à la fois à l'hôte et bitbucket) avec rien dedans. Maintenant, je suis en poussant le référentiel complet que j'ai localement sur ces sites à distance. Jusqu'à présent, il a succombé, comme l'opération push est coincé sur searching for changes
et ne me donne pas de n'importe quel autre sortie. J'ai laisser aller pendant environ une heure avec pas de changement.
Maintenant mes questions est ce que je fais mal aussi loin que hg serve
est concerné? Je peux y accéder en local, mais pas à distance (via DynDns - j'ai configuré correctement et que le routeur transmet les ports correctement) afin que je puisse obtenir le serveur de cloner le dépôt de la première fois, après quoi je vais être le pousser à. Ma deuxième question est la suivante, en supposant que le clone sur le serveur ne fonctionne pas (par exemple, si j'étais à pousser mes référentiel actuel de bitbucket), est la création d'un dépôt vide sur le serveur, puis poussant un dépôt local vers le nouveau référentiel distant ok? C'est que la source de la searching for changes
problème?
Toute aide à ce sujet serait grandement apprécié.
OriginalL'auteur Samaursa | 2010-12-30
Vous devez vous connecter pour publier un commentaire.
Difficile à dire, mais
hg serve
n'est habituellement pas la façon dont je voudrais créer une distance clone à un service 3ème partie. Pour moi, je ne voudrais pas faire un trou dans mon pare-feu si je n'ai pas à.Oui. C'est comment je créer une distance clone au Four. Créer un nouveau vide pensions au Four, saisir l'URL du nouveau référentiel, et de pousser ensuite à partir de mon ordinateur.
Est pas sûr, mais ce rapport suggère qu'une très grande poussée peut être un problème. Ils suggèrent poussant dans de plus petits mandrins (par exemple, un peu de régime à un moment). Une autre considération est de savoir si vous pouvez vivre sans votre historique de révision (êtes-vous d'accord avec la création d'un nouveau repo à partir de la version actuelle de fichiers et de pousser ce référentiel. Le rapport suggère également que l'authentification a été à la source de certains problèmes (mais qui semblait être un autre message d'erreur).
Sinon, vous aurez besoin de faire plus de débogage pour essayer d'isoler le problème à ce repo, votre connexion à la télécommande, ou sur la télécommande repo . Quelques réflexions:
OriginalL'auteur Bert F
Oui, vous pouvez pousser un dépôt vide avec aucun problème. Quand vous poussez ou tirez, puis Mercurial va vérifier pour voir si la source et la destination dépôts sont liés les uns aux autres. Qui m'empêche de tirer des révisions liées, par exemple, OpenOffice dans mon clone de Mozilla Firefox.
Un nouveau, vide référentiel est lié à tous les référentiels, de sorte que vous pouvez toujours faire un dépôt vide et pousser/tirer des révisions.
En fait, lorsque vous ne
alors que c'est le même que le fait de faire
sauf qu'il ne sera pas un chemin d'accès par défaut de l'installation pour vous-voir le commentaire par barjak pour savoir comment faire.
hg clone
, un alias par défaut sera réglé, trop. Ajoutez à cela le deuxième liste :echo "[paths] default=http://example.net/my-repository" > .hg/hgrc
OriginalL'auteur Martin Geisler
Les gens ont besoin de les connaître bien (et plus facile) pour initialiser un nouveau repo et pousser jusqu'à ce que l'on a accepté la réponse dit.
Mais une autre option si votre serveur ssh accessible serait de faire un retour rapide tunnel avec putty sur windows local. Il ne nécessite pas le changement de votre pare-feu.
dans putty recherchez ssh >> les tunnels le menu et choisi la télécommande bouton de marche arrière tunnel.
Ou sur un linux local quelque chose comme:
Vous avez maintenant contourné votre pare-feu et permet de cloner!
Je dois ajouter que vous pouvez faire un avancement normal tunnel pour pousser simplement par le changement de R à L (local) et modifier les numéros de port, si ness.
OriginalL'auteur
Mercurial Hg peut être utilisé avec le secure shell est un protocole de. Il y a deux chemin variantes:
OriginalL'auteur Serge Stroobandt
Vous pourriez essayer de pousser un ensemble de révisions. Cela aidera si la mémoire est un problème. Il peut également vous aider à isoler la révision est à l'origine du problème.
OriginalL'auteur Ben Mathews