1 votes

Programme, ou flux de travail pour mettre à jour un seul fichier et mettre à jour toutes les instances de ce fichier partout ailleurs.

Existe-t-il un programme ou un flux de travail qui soit le meilleur pour travailler avec un seul fichier et qui, lors de l'enregistrement, mette à jour toutes les instances du fichier sur l'ordinateur, que ce soit dans différents dossiers de projets ?

Modifier (réponse aux commentaires) : J'ai des fichiers javascript et css qui sont partagés entre plusieurs projets. Lorsque je mets à jour ou modifie un fichier, je me retrouve à devoir copier-coller manuellement pour remplacer les mêmes fichiers dans tous les autres projets qui dépendent du ou des mêmes fichiers.

1 votes

Qu'essayez-vous exactement d'accomplir ici, pouvez-vous peut-être mentionner un exemple spécifique d'un tel fichier ?

0 votes

Modification ajoutée en réponse à vos commentaires

1voto

Oskar Points 1242

Ce que vous décrivez pourrait être réalisé avec un lien dur.

Les liens durs signifient qu'un fichier sur le disque est considéré comme un fichier dans plusieurs dossiers.

Ainsi, si vous avez un fichier recipe.doc et qu'il est stocké dans votre dossier ~/Documents, vous pouvez le lier à un autre endroit - peut-être /Users/Shared et ~/Projects/Cooking/Pasta/recipe.doc.

Ainsi, le nombre de liens serait de 3 pour ce fichier et une seule recette prendrait de la place sur le disque. Si vous supprimez le fichier dans /Utilisateurs/Partagé - plutôt que de supprimer le fichier, il supprime juste ce lien et décrémente le compteur de fichiers à 2. Lorsque le dernier lien disparaît, vous avez un compteur de liens de 1 et le fichier reste, mais pas de copies dans d'autres dossiers.

Si vous voulez en savoir plus, la commande link est une commande de terminal qui s'écrit comme suit ln .

Vous pouvez également enregistrer ce fichier dans une sorte de système de contrôle de code comme git et script le checkout dans les dossiers de votre choix. Cela dépend vraiment du temps que vous allez gagner ou si vous voulez juste écrire un shell rapide et sale script pour pousser le fichier modifié ailleurs (ou utiliser rsync pour copier juste les bits modifiés et être über efficace).

1 votes

Toute solution basée sur des liens (qu'ils soient durs ou mous) dépend de la façon dont l'éditeur enregistre les fichiers après une modification. Si un nouveau fichier est écrit (et que l'ancien est renommé en .bak par exemple), les liens ne fonctionneront pas.

0 votes

@bmike, merci pour votre contribution et votre réponse. Cela semble être quelque chose qui vaut la peine d'être vérifié. Je sais que l'on a tendance à changer les numéros de version des fichiers (en termes de nom), par exemple "jquery.plugin-v3.7.js" comme l'a mentionné Patrix.

0 votes

@leetou Vous pouvez choisir le nom que vous voulez lors de la création de liens (liens durs ou symboliques) afin que chaque copie du fichier puisse avoir un nom différent si vous le préférez.

1voto

nohillside Points 82672

Théoriquement, vous pourriez utiliser les actions de dossier pour surveiller les changements sur les fichiers partagés et les copier sur tous les autres projets/dossiers. En pratique, cela ne fonctionnera pas vraiment, car les actions sur les dossiers ont tendance à ne pas être très fiables. J'ai constaté que Hazel fonctionne très bien pour cela, beaucoup de choses peuvent être automatisées de cette façon.


En fonction de vos besoins, vous pouvez également penser à structurer vos fichiers différemment, car la duplication de fichiers sera Cela peut entraîner des problèmes, en particulier si vous utilisez le contrôle de version, si vous travaillez dans de grandes structures ou si plusieurs personnes sont impliquées. Ainsi, au lieu d'avoir plusieurs projets dans une structure du type

+ project-1
  + common-file-1
  + common-file-2
  + specific-file-1.1
  + specific-file-1.2
+ project-2
  + common-file-1
  + common-file-2
  + specific-file-2.1
  + specific-file-2.2

et probablement les construire/emballer à partir de là, vous pourriez passer à quelque chose comme

+ common
  + common-file-1
  + common-file-2
+ project-1
  + src
    + specific-file-1.1
    + specific-file-1.2
  + build

et ensuite utiliser une construction script dans project-1 pour copier tous les fichiers pertinents de common y project-1/src sur project-1/build pour une utilisation ultérieure. La transformation de votre structure actuelle en quelque chose de ce type peut demander un certain effort, mais elle peut s'avérer bénéfique à long terme. Si vous voulez approfondir la question, Automatisation pragmatique des projets est un bon point de départ.

0 votes

Merci pour vos commentaires. Oui, je suis d'accord avec le fait que la duplication peut poser des problèmes. Je vais faire quelques petits tests avec cela et voir si c'est une option réalisable également. Merci !

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