Programma o flusso di lavoro per aggiornare un singolo file e aggiornarne tutte le istanze ovunque

1

Esiste un programma o un flusso di lavoro che è meglio per lavorare con un singolo file e quando si salva per aggiornare tutte le istanze del file sul computer, sia che si trovino in cartelle di progetti diversi?

Modifica (Risposta ai commenti): Bene, ho i file javascript e css che sono condivisi tra più progetti. Quando aggiorno o modifica un file, mi ritrovo a dover copiare e incollare manualmente per sostituire gli stessi file in tutti gli altri progetti che si basano sugli stessi file.

    
posta lislis 24.09.2013 - 20:29
fonte

2 risposte

1

Quello che stai descrivendo potrebbe essere realizzato con un hard link.

Gli hard link significano che un file sull'unità è visto come un file in più cartelle.

Quindi, se tu avessi un file recipe.doc e memorizzato nella tua cartella ~ / Documents, potresti facilmente collegarlo altrove - forse / Users / Shared e ~ / Projects / Cooking / Pasta / recipe.doc

Quindi, il conteggio dei collegamenti sarebbe 3 per quel file e solo una ricetta occuperebbe spazio sul disco. Se hai cancellato il file in / Users / Shared - invece di cancellare il file, rimuove solo quel link e decrementa il contatore di file a 2. Quando l'ultimo link scompare, hai un conteggio di link di 1 e il file rimane, ma nessuna copia in altre cartelle.

Se vuoi saperne di più, il comando link è un comando terminale scritto come ln .

Inoltre, puoi controllare quel file in una sorta di sistema di controllo del codice come git e scriptare il checkout nelle cartelle di tuo gradimento. Dipende molto da quanto tempo si salverà o se si vuole solo scrivere uno script shell veloce e sporco per spingere altrove il file modificato (o usare rsync per copiare solo i bit modificati ed essere über efficiente).

    
risposta data 24.09.2013 - 21:34
fonte
1

In teoria è possibile utilizzare le azioni cartella per controllare le modifiche sui file condivisi e copiarli su tutti gli altri progetti / cartelle. In pratica, questo non funzionerà perché le azioni sulle cartelle tendono a non essere molto affidabili. Ho trovato che Hazel funziona abbastanza bene per questo, ma molte cose possono essere automatizzate in questo modo.

A seconda delle tue esigenze potresti anche pensare di strutturare i tuoi file in modo diverso perché la duplicazione dei file porterà a problemi soprattutto se usi il controllo di versione, lavori in configurazioni più grandi o se sono coinvolte diverse persone. Quindi, invece di avere diversi progetti in una struttura come

+ 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

e probabilmente costruendo / impacchettandoli da lì puoi passare a qualcosa di simile

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

e quindi utilizzare uno script di compilazione in project-1 per copiare tutti i file rilevanti da common e project-1/src in project-1/build per ulteriore utilizzo. Potrebbe volerci qualche sforzo per cambiare la struttura attuale in qualcosa di simile, ma potrebbe portare benefici a lungo termine. Se vuoi scavare in questo depper, Pragmatic Project Automation è un buon punto di partenza.

    
risposta data 25.09.2013 - 18:46
fonte

Leggi altre domande sui tag