L'applicazione viene sviluppata utilizzando Sencha Architect, che utilizza una serie di file ausiliari per la gestione di vari elementi relativi all'IDE (percorsi di esportazione, controllo delle versioni dell'IDE ecc.).Come gestire i file IDE in un repository git?
Alcuni di questi file cambieranno ogni volta che un membro del team apre un progetto nell'IDE di Sencha Architect.
Per dare un esempio di una variazione particolarmente fastidiosa, considerare la proprietà exportPath
nei file *.xds
generati dall'architetto. Avrò un server di scelta che pubblico su un percorso specifico e altri membri del team avranno configurazioni server/percorsi differenti.
Nel nostro codice di base, mi piacerebbe molto avere sia i file IDE:
- in un repository separato,
- in una sotto-modulo (sì, specifica per git, so) o
- risiedono sul computer dell'utente, con il VCS ignaro delle modifiche al loro interno.
La cosa fondamentale da notare qui è che Sencha architetto si aspetta che i file siano in alcuni luoghi relativi ai progetti, in modo che i file IDE devono essere disponibili nello stesso luogo, come i file di origine normali.
Inoltre, l'uso di .gitignore non è un'opzione, poiché Sencha Architect scriverà informazioni in alcune di esse che sono vitali per gli altri membri del team che le aprono correttamente. Per esempio. All'apertura di un progetto, Sencha Architect potrebbe decidere di aggiornare il progetto a una versione più recente (non facoltativa, se si desidera aprire il progetto) e, nel corso dell'aggiornamento, l'IDE modificherà parte della sorgente. file di codice. Gli altri membri del team devono essere a conoscenza dell'aggiornamento della versione per poter aprire correttamente il progetto.
This SO question fornisce uno sfondo al formato contorto utilizzato da Sencha. Mi scuso per il tono negativo nella mia valutazione dell'architettura di Sencha Architect, ma sembra che abbiano preso una buona idea (usando i metadati e la generazione del codice) un po 'troppo lontano (invalidando l'uso di tutti i buoni strumenti Unix, incluso git).
quale sarebbe l'approccio preferito qui? E perché?
Dipende dall'importanza del progetto per i file. Ad esempio, in caso di C# e ReSharper, i file .DotSettings vengono inseriti in VCS, mentre i file .user.DotSettings non lo sono. Basta porsi una domanda: se il file è mancante, è possibile costruire il progetto? Costruirà correttamente? – Athari
@Athari: grazie per il tuo commento, ho aggiornato la domanda con ulteriori informazioni relative a questo – Steen
Temo che non ci sia una soluzione semplice se le opzioni a livello di progetto e di livello utente sono mescolate in un unico file. Non puoi impegnare solo alcune parti del file e lasciare altre ignorate, AFAIK. Presenterei una richiesta di funzionalità a Sencha per separare le opzioni in file diversi. Nel frattempo, puoi concordare con altri sviluppatori di impegnare i file IDE solo se ci sono cambiamenti sostanziali e gestire le opzioni di unione. – Athari