6 votes

ICloud drive et dépôt git

J'ai mis à niveau certains de mes Macs vers Sierra. Maintenant, je me demande si je veux activer iCloud sur le dossier Document ou non. Cela semble utile si cela fonctionne bien. Je synchronise certains fichiers PDF entre iPad via iCloud, et mon expérience était "comme-ci, comme-ça" par rapport à une synchronisation basée sur Dropbox (j'utilise PDF Expert sur iPad).

Je suis particulièrement intéressé par le fonctionnement (ou le non-fonctionnement) des dépôts git sur iCloud Drive - j'ai plusieurs Macs; je sais que iCloud Drive est lent en synchronisation.

Avez-vous une expérience ou une recommandation à ce sujet?

4voto

Dave Everitt Points 155

Je suppose que vous allez rencontrer les mêmes problèmes qu'avec Dropbox, lorsque tous les petits fichiers du dépôt GIT sont mis à jour à chaque commit. Je comprends que la synchronisation iCloud se déclenche périodiquement, donc vous dépendez ensuite de sa fiabilité ou rapidité (et il semble que cela puisse varier). Avec Dropbox, j'ai constaté que cela peut ralentir les choses pendant que les fichiers sont synchronisés et même perturber un dépôt.

Je garde la plupart de mes dépôts dans ~/Projects - après tout, vous pouvez toujours pull et push (si votre remote est sur GitHub/BitBucket/etc.) depuis n'importe quelle machine. Si vous pensez que cela vaut la peine d'essayer, cet article de blog de 2014 suggère de mettre en place un dépôt bare dans iCloud.

Cependant, dans l'ensemble, la lecture autour suggère que nous "utilisons un service dédié aux dépôts git conçu pour stocker des dépôts git". Les objectifs de GIT et ceux d'iCloud, Dropbox, etc. ne s'entendent pas toujours bien, surtout si votre connexion est interrompue ou si le service iCloud est lent pour une raison quelconque.

4voto

Andrew Jaffe Points 307

J'ai eu de mauvaises expériences avec ça, bien que spécifiquement dans le cas de plusieurs Macs synchronisant le même dépôt cloné.

J'ai quelques Macs sur lesquels je clone un bon nombre de dépôts git (principalement de GitHub). Les Macs ont chacun un certain nombre de répertoires synchronisés avec iCloud Drive (en fait, j'ai tout intégré et je synchronise Bureau et Documents).

J'ai essayé de cloner dans les répertoires synchronisés avec iCloud. Cependant, j'ai eu beaucoup de problèmes avec cela. Il semble très facile d'arriver dans une situation où iCloud (et non git) devient tellement confus qu'une machine cesse effectivement de synchroniser, même des fichiers sans rapport avec les répertoires clonés, même si je resynchronise soigneusement chacun des deux clones dans le même état exact. Je ne sais pas si le problème vient des fichiers sous .git/ ou simplement de quelque chose comme des conditions de concurrence entre les versions des fichiers de dépôt réels.

J'ai essayé d'utiliser les divers outils de journalisation iCloud d'Apple sous brctl mais cela n'a généralement pas aidé.

(La plupart de cela a été posté en tant que question sur le site principal SO: quelqu'un d'autre a-t-il vu cela ou quelque chose de similaire?)

(C'est un peu différent de cette question qui semble surtout se soucier d'un seul Mac avec iCloud Drive, et je ne pense pas que les utilisateurs dans cette situation verraient les mêmes problèmes que moi.)

2voto

André Guilherme Points 136

Comme d'autres l'ont dit, il y a beaucoup de problèmes avec le stockage du référentiel git dans un service cloud. Mon Mac synchronisait constamment avec iCloud car j'avais un projet IntelliJ Java dans un dossier synchronisé avec iCloud Drive. Mon référentiel git se trouvait dans le même dossier de projet IntelliJ. Mon ventilateur tournait presque constamment car le processus bird utilisait 99% du CPU en permanence.

J'ai récemment résolu ce problème pour moi-même :

  1. Créez un référentiel git vide dans un dossier synchronisé avec le cloud (spoiler : et poussez votre code actuel dedans).
  2. Créez un dossier de développement en dehors du dossier cloud. Ce dossier ne doit pas être synchronisé dans le cloud. C'est ici que vous écrirez du code à partir de maintenant.
  3. Tirez du référentiel vide vers votre dossier de développement.
  4. Écrivez du code dans le dossier de développement et poussez vers le référentiel vide à distance chaque fois que vous faites un commit.
  5. Si nécessaire, tirez du référentiel git vide synchronisé avec le cloud sur d'autres ordinateurs sur lesquels vous travaillez.

Ce qui précède empêche l'application de stockage cloud de synchroniser en permanence tous les changements qui se produisent lors de la compilation dans le projet et de les soumettre à git. Seuls les push vers le référentiel vide seront synchronisés avec le cloud, ce qui réduit l'activité de synchronisation du cloud.

Je pousse à chaque fois que je fais un commit maintenant. Je pense que les fichiers générés par le processus de compilation et de construction étaient à l'origine du problème pour moi.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X