Source Files offre un accès aux dépôts Git sans clonage intégral

Nicolas Furno |

Source Files est la dernière app d’Anders Borum, le développeur de Working Copy, qui reste sans doute le client Git1 le plus complet pour les iPhone et iPad. On reste dans l’univers du versionnement avec Git pour cette nouvelle app, qui offre un accès différent aux dépôts et surtout aux fichiers qu’ils contiennent. Au lieu de cloner intégralement le dépôt pour en faire une copie locale, l’app permet de consulter le contenu depuis le serveur distant pour ne télécharger que les fichiers nécessaires.

Image Source Files.

La méthode de travail traditionnelle avec Git implique de commencer par un clonage complet du dépôt. Le processus permet de récupérer non seulement tous les fichiers qu’il contient, mais aussi l’intégralité de l’historique du projet. Cela veut dire que vous allez télécharger dès le départ toutes les variantes de tous les fichiers depuis la création du dépôt. Pour les plus gros projets, cela peut représenter des milliers, des centaines de milliers, voire des millions de fichiers. Cela devient une opération lourde, à la fois en termes de requêtes réseau et de travail en local, et donc une opération qui peut devenir lente. Autre problème, on peut avoir à télécharger plusieurs giga-octets de données, même si on ne veut modifier qu’une virgule dans un seul fichier.

Avec Source Files, on peut voir le contenu du dépôt sans le télécharger en local. L’app est proposée aussi bien sur macOS que sur iOS et iPadOS, avec un mode de fonctionnement similaire. On retrouve un nouvel élément « Source » dans la barre latérale du Finder sur le Mac et dans celle de l’app Fichiers sur iPhone ou iPad et tous les dépôts configurés au préalable s’y retrouvent. Un clic ou un tap affiche leur contenu et on peut ouvrir n’importe quel fichier, il sera téléchargé à la volée depuis le serveur distant et s’affichera dans l’app par défaut.

Un dépôt Git vu à travers Source Files, ici dans le Finder de macOS.
Le même dépôt, cette fois vu à travers Source Files depuis l’app Fichiers d’iPadOS.

Ce n’est pas un client Git complet et à cet égard, il n’est pas possible d’afficher l’historique. On peut néanmoins modifier des éléments et Source Files fera un « commit » sur le serveur distant à chaque fois qu’un fichier sera modifié. Le message associé peut être ajusté dans les réglages de l’app, mais vous n’avez aucun contrôle au cas par cas. Le développeur m’a indiqué qu’il voulait une solution simple pour commencer, mais qu’il comptait ajouter par la suite une boîte de dialogue pour valider les commits effectués par son biais. Il ne faut pas s’attendre toutefois à avoir une gestion complète du dépôt, d’autres apps à commencer par Working Copy sont là pour ça.

Source Files est une solution intéressante dans les environnements restreints en espace de stockage ou limités par la connexion à internet. Dans les deux cas, obtenir rapidement une liste des fichiers, avec la possibilité de modifier un seul élément sans télécharger l’intégralité du dépôt et son historique, peut s’avérer utile. Il ne faut pas oublier en revanche que l’app transmet toutes les modifications au serveur distant, y compris les suppressions et ajouts de fichiers. Mais l’avantage de Git, c’est qu’il sera toujours possible de revenir en arrière en cas d’erreur, puisque l’historique de toutes les modifications est conservé.

Détails d’un dépôt dans l’interface de Source Files.

Source Files est compatible avec tous les serveurs Git, avec une configuration prévue pour ceux de GitHub, GitLab et Bitbucket. Plusieurs actions sont ajoutées à Raccourcis pour gérer les fichiers et l’app gère aussi le menu de partage pour ajouter des documents par ce biais.

L’app est gratuite au téléchargement, mais nécessite de payer pour modifier les dépôts Git, avec deux formules au choix : une licence finale facturée 22,99 € ou un abonnement à 2,99 € par mois. Un essai gratuit de sept jours est proposé pour vérifier si cette solution originale vous convient. Son interface n’est pas traduite en français et iOS 16.1 ou macOS 13.1 sont nécessaires au minimum.


  1. Un logiciel libre qui permet de gérer des données en gardant toutes les versions de tous les fichiers. Il est surtout utilisé en développement, mais il peut aussi servir à gérer d’autres types de projets.  ↩︎

avatar Jidus | 

Pourquoi pas, mais je ne reste pas convaincu de la réelle utilité de cet outil (même s'il etait gratuit).
Mais sans nul doute que l'effort technique pour le coder est notable, je ne dis pas ....

avatar ropy | 

@Jidus

je suis aussi un peu dubitatif. je l’ai téléchargé, je vais tester. mais je suis tellement habitué à Working Copy et le process Git.

avatar Nicolas Furno | 

@Jidus

Je dirais que ça dépend des dépôts. Pour prendre notre exemple, les livres sont gérés avec Git, et on a des dépôts de plusieurs giga-octets à la fin, c'est très long de tout rapatrier, surtout sur iPhone ou iPad. Si on veut rapidement modifier un seul fichier, Source Files est une bonne option.

avatar Jidus | 

@nicolasf

Merci pour votre réponse.

(Je précise à l'avance que je suis utilisateur de git, mais loin d'être expert)
J'aurais tout de même tendance à dire que lorsque que l'on travaille régulièrement sur un projet, on "git clone" effectivement lorsqu'on rapatrie le code source une première fois sur son poste. Ensuite git fournit les fonctionalités dédiées pour ne rapatrier que le diff, ce qui limite les temps de téléchargement trop longs.

Je comprends néanmoins tout à fait que celà corresponde à votre besoin, effectivement, mais j'ai l'impression que ce cas d'utilisation reste relativement à la marge, d'où mon questionnement dans le post précédent. (Rappel utile : Attention, on débat "pour le fun", il ne s'agit en aucun cas de remettre en cause ou de juger vos méthodes de travail, dont l'aboutissement rend d'ailleurs heureux les lecteurs de MacG, moi y compris :-) )

Question subsidiaire : Que se passe t'il de le cas d'une modification de plusieurs fichier avec un intervalle de temps (très) court entre chaque fichier ? Un commit par fichier ?

avatar tupui | 

@nicolasf

Pour les gros artefact il y a des solutions un peu plus adaptées que Git (sans parler de Git LFS). Exemple DVC si l’on reste autour de Git ou sinon le fameux Perforce (qui permet de sélectionner se que l’on veut pull). C’est l’outil de choix de pas mal de studio de jeux vidéo.

avatar vomi | 

Super dev avec des apps de qualité !

avatar marc_os | 

La méthode de travail traditionnelle avec Git implique de commencer par un clonage complet du dépôt.

Euh... pourquoi donc faire un clonage complet ?
En général la branche "master" suffit si on veut juste regarder/analyser le code.
Et si on veut faire des modifications, on crée une nouvelle branche de travail sur le dépôt, et c'est celle-ci qu'on "clone" en local.
Puis on "commite" ses modifications sur cette branche en local, puis on fait un "push" pour envoyer au dépôt les modifications "commitées".
Sur le dépôt on crée ensuite un "Pull Request" qui permet à la communauté d'analyser/critiquer/approuver les modifications proposées, puis si elles sont validées, on fait un "merge" de la branche de travail vers la branche principale "master".
Enfin c'est comme ça qu'on travaille dans notre boite...

Source Files fera un « commit » sur le serveur distant à chaque fois qu’un fichier sera modifié

Oh là... Ok pour un projet perso où on est seul, mais dans un environnement "collaboratif", bof bof.

avatar Baptiste_nv18 | 

@marc_os

Un clonage complet de la branche en question justement 🙄🙄 Utile pour des dépôts qui font plusieurs gigas voir dizaines de gigas.

avatar Tibimac | 

Pour les repos Github, autant passer par l'app Github officielle qui est VRAIMENT très bien faite, est gratuite et permet de modifier les fichiers et de commit en saisissant le message pour chaque commit dans une petite fenêtre flottante qui apparaît au moment de commit.

Peut-être que Source Files peut rester interessante pour d'autres plateformes qui n'ont pas d'app officielle (comme GitLab je crois).

avatar ropy | 

@Tibimac

ou Working Copy du même dev

avatar Tibimac | 

@ropy

Working Copy est payante ... elle en fait peut-être plus mais pour qui veut l'équivalent de Source Files avec plus de flexibilité sur les commits et avec des repos Github alors l'app officielle est la meilleure solution.

avatar ropy | 

@Tibimac

je réagissais à ton dernier paragraphe.
et je suis d’accord sur l’appli GitHub qui est très bien faite, idem pour le widget graphique des commits.
mais d’après mon expérience, WC permet des choses que l’appli GitHub ne permet pas (tagging).
après oui elle est payante.

avatar oomu | 

@ropy

c'est bien que ça soit payant

comment ça permet de financer le bon travail de l'auteur et qu'il ne soit pas un squelette oublié dans un sol de cave...

s'ils étaient des centaines à collaborer sur un seul projet, soit. Mais ce n'est pas le cas. Donc vive les sous.

avatar Tibimac | 

Doublon 😕

CONNEXION UTILISATEUR