7

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:

  1. in un repository separato,
  2. in una sotto-modulo (sì, specifica per git, so) o
  3. 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é?

+0

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

+0

@Athari: grazie per il tuo commento, ho aggiornato la domanda con ulteriori informazioni relative a questo – Steen

+0

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

risposta

6

I file IDE non devono essere versionati a meno che non si disponga di un motivo abbastanza convincente. Forse il tuo progetto si costruisce solo usando un plugin in un particolare IDE e hai bisogno di modificare queste impostazioni. Se non hai bisogno di questi file per creare o eseguire il tuo progetto, probabilmente non dovresti eseguirne la versione.

È possibile ignore those files utilizzando Git. In particolare, i file IDE sono buoni candidati per il gitignore globale poiché ogni utente userà qualsiasi IDE che desidera e tali impostazioni dovrebbero essere applicate a tutti i loro repository.

+2

Sono completamente d'accordo con te. Questo progetto, tuttavia, ha già tutti i tipi di file IDE sotto controllo di versione, i membri del team si affidano ai file presenti in un VCS. Gitignoring non è un'opzione, dal momento che l'architetto Sencha scriverà informazioni in alcune di esse che sono vitali per gli altri membri del team che le aprono correttamente. Lo aggiungerò alla domanda. Grazie. – Steen

0

Potrebbe essere utile utilizzare il controllo delle versioni per i file IDE tranne i file che memorizzano le impostazioni specifiche dell'utente. Vedi anche https://intellij-support.jetbrains.com/entries/23393067.

vantaggio di utilizzare il controllo di versione per questi file è

  • condivisione di stili di codice per l'intero team di sviluppo
  • gestire e condividere i repository nidificate che sono sotto il controllo di versione come bene.
  • ecc.
+0

Il tuo link è rotto, il link di lavoro corrente è https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems – azhidkov

Problemi correlati