11
votes

Obtenez des changements de Mercurial au site FTP

Je travaille avec un partenaire sur un site PHP pour un client. Nous avons un référentiel mercuriel commun (sur Bitbucket), des copies locales et du site en direct. Nous n'avons qu'un accès FTP au site en direct (qui ne peut pas être changé puisqu'il s'agit d'un package d'hébergement avec FTP uniquement).

Je veux pouvoir appuyer sur les changements du référentiel sur le site en direct.

Jusqu'à présent, je garde simplement une trace des fichiers modifiés dans le repo et copiez-les manuellement avec FileZilla - une tâche sudique et gênante. Mon idée est de monter l'emplacement distant localement (c'est-à-dire à l'aide de curlftpfs ) et dites à Mercurial de copier automatiquement des fichiers modifiés sur le site. Idéalement, je veux être capable de spécifier quels changements, mais ce serait un bonus. Il suffirait que l'état local des fichiers de la répétition soit synchronisé.

Y a-t-il un bon moyen de le faire en utilisant des outils de commande Linux?


0 commentaires

4 Réponses :


7
votes

Ma première recommandation est, si possible, obtenez un package qui permet plus d'accès. FTP uniquement est juste brutal.

Mais puisque vous cherchez une vraie réponse à votre question, j'ai deux idées pour vous:

  1. Je suggérerais de regarder dans le mercurial extension FTP . Personnellement, je ne l'ai jamais utilisé depuis que je ne me suis jamais resté coincé dans une situation FTP uniquement (pas pendant une longue période au moins), mais cela semble prometteur. On dirait que si vous vous assurez que vous marquez vos versions de production, cela fonctionnera très bien pour vous. (Assurez-vous d'utiliser le param) -Uploaded param)

  2. En outre, si vous ne voulez jamais que la pointe soit installée sur votre envoi de production, vous pouvez regarder la suggestion martin geisler Fabriqué sur le groupe d'utilisateurs Bitbucket Il y a quelques jours. Fondamentalement, sa suggestion est d'utiliser la fonctionnalité «URL Ping» de Bitbucket. Vous devriez écrire un gestionnaire de script / URL côté serveur qui accepterait que Ping, puis récupérez la pointe du bitbucket (comme zip), puis décompressez / décompressez-le. Ceci est un peu compliqué, mais si vous recherchez une automatisation complète et que la pointe sera toujours la meilleure que cela puisse fonctionner pour vous.


3 commentaires

Je pense que je vais aller pour l'extension FTP. THX.


J'utilise l'extension FTP en ce moment, et c'est génial! SUPPORT DE SUBREPO manquante Bien que, bien sûr, c'est bien mieux que d'avoir à trouver manuellement les bons fichiers à télécharger et à des trucs ...


À propos de l'option 2, je dirais que cela pourrait entraîner un désordre après un certain temps avec (re) déplacé des fichiers et tels.



2
votes

Une notion est l'utilisation de la commande HG Archive : xxx

qui mettra un instantané de votre repo à cet endroit - il écrasera toutefois tout fichier Déjà là.

Une autre option consiste à créer un clone mercurial dans le même / chemin / chemin / à / curlftpsfs , puis faites simplement une traction Hg HG; HG Update Dans votre système local avec la télécommande One Montée. Réglage de cette initialement signifiera le transfert du tout, mais vous n'enverrez ensuite que des deltas.

Certaines personnes n'aiment pas ces dernières options car elles exposent votre intégralisation /. Hg Repository aussi, mais vous pouvez bloquer l'accès à celui sur le serveur Web.


0 commentaires

0
votes

Solution Windows:

BeyondCompare ( http://www.cootersoftware.com/ ) est un logiciel génial. En plus d'être génial, il peut refléter votre dossier local sur le site FTP. Il s'agit de comparer des fichiers et uniquement des transferts de la nouvelle.


0 commentaires

1
votes

Je suis tombé sur ce problème il y a un moment après la commutation d'AWS à un hébergement Web local qui fournit uniquement SSH / FTP.

Mon approche précédente de la mise à jour d'un site de production sur AWS à l'aide de "HG Pull; HG Update -C" ne peut plus être utilisée sur le nouvel hébergement Web. Ils n'ont pas installé mercuriaire pour les hôtes partagés.

Donc, ce que j'ai fait, c'est de monter l'emplacement distant à l'aide de FTP, à une machine locale (votre ordinateur portable), puis exécutez les commandes de traction HG et de mise à jour localement sur votre machine sur le chemin où le site FTP distant est monté.


0 commentaires