Intellij Idea 9/10, quali cartelle archiviare (o non archiviare) nel controllo del codice sorgente?


119

Il nostro team è appena passato da Netbeans a Intellij 9 Ultimate e ha bisogno di sapere quali file / cartelle dovrebbero essere normalmente esclusi dal controllo del codice sorgente in quanto non sono "workstation portabili", cioè fanno riferimento a percorsi che esistono solo sul computer di un utente.

Per quanto ne so, Intellij vuole ignorare la maggior parte del progetto .idea incluso

.idea/artifacts/*
.idea/inspectionProfiles/*
.idea/copyright/*
.idea/dataSources.ids
.idea/dataSources.xml
.idea/workspace.xml

Tuttavia, sembra voler controllare i .imlfile che esistono nella directory principale di ogni modulo.

Inizialmente ho controllato l'intera .ideadirectory tramite la riga di comando che ovviamente non è a conoscenza di cosa "dovrebbe" essere ignorato da Idea. L'intera .ideadirectory viene generalmente ignorata?

Risposte:


104

Abbiamo un articolo di FAQ che copre questa domanda.

Il formato [.idea] è utilizzato per impostazione predefinita da tutte le versioni recenti dell'IDE. Ecco cosa devi condividere:

  • Tutti i file nella directory .idea nella radice del progetto tranne i file workspace.xml e tasks.xml che memorizzano le impostazioni specifiche dell'utente
  • Tutti i file del modulo .iml che possono essere posizionati in diverse directory del modulo (si applica a IntelliJ IDEA)

Fai attenzione a condividere quanto segue:

  • Artefatti Android che producono una build firmata (conterranno le password del keystore)
  • In IDEA 13 e versioni precedenti dataSources.ids , datasources.xml può contenere password di database. IDEA 14 risolve questo problema .

Potresti considerare di non condividere quanto segue:

  • .iml per i progetti basati su Gradle o Maven , poiché questi file verranno generati durante l'importazione
  • gradle.xml file, vedere questa discussione
  • cartella dizionari utente (per evitare conflitti se un altro sviluppatore ha lo stesso nome)
  • File XML in .idea / libraries nel caso in cui siano generati dal progetto Gradle o Maven

.idea directory è una sostituzione del vecchio file .ipr (Idea Project) e se vuoi condividere il progetto tra utenti, allora devi condividere la cartella .idea (con le eccezioni menzionate nelle FAQ) e tutti i file .iml.


2
Sì, è aggiornato, non sono state apportate modifiche importanti ai file di progetto.
CrazyCoder

72
@CrazyCoder (+1) Ci renderebbe la vita più facile se voi ragazzi metteste i file specifici del progetto e quelli specifici dell'utente in directory separate.
IJ Kennedy

3
Commentare un thread vecchio, ma l'approccio delle FAQ di condividere l'intera cartella .idea (eccetto workspace.xml e tasks.xml) è problematico perché vari file cambiano tra le macchine e tra le sessioni. Ciò che mi infastidisce davvero: Python / Library su Mac si trova in due posti diversi su Mac diversi, quindi pycharm.xml si interrompe.
Matthew Cornell

29
questa è una scusa piuttosto scarsa per una FAQ. è un grande thread con persone che fanno domande. che ne dici di un esempio .gitignore per un progetto?
Jeffrey Blattman

13
è incredibile / impossibile che ci sarebbero "alcuni sì, alcuni no" nella stessa cartella --- è ancora la stessa follia quattro anni dopo? grazie
Fattie



5

Potresti trovare questo post interessante: Fusione su file .IPR e .IWS di IntelliJ IDEA

Sembra concludere che si dovrebbe aggiungere tutti i file ad eccezione di: workspace.xml, dataSources.xml, sqlDataSources.xmle dynamic.xml. La risposta è concentrarsi sull'avere file che non cambiano semplicemente aprendo l'editor o apportando modifiche specifiche.


4

Sto usando PHPStorm.

Ecco uno snippet di esempio per il tuo .gitignore

# Ignore the following 2 PHPStorm files only workspace and tasks file
**/.idea/workspace.xml
**/.idea/tasks.xml

Tutti gli altri file nella .ideadirectory dovrebbero essere salvati nel tuo repository.

es: (salva tutto il resto nella .ideadirectory)

new file:   .idea/.name
new file:   .idea/encodings.xml
new file:   .idea/framework.iml
...

Documenti: come gestire i progetti nei sistemi di controllo della versione

Ecco cosa devi condividere:

Tutti i file nella directory .idea nella radice del progetto tranne i file workspace.xml e tasks.xml che memorizzano le impostazioni specifiche dell'utente

Tutti i file del modulo .iml che possono essere posizionati in diverse directory del modulo (si applica a IntelliJ IDEA)

Quindi, in pratica, eseguire il commit di tutto tranne workspace.xmle tasks.xml.


0

Sì, credo di sì. Puoi controllare la configurazione SVN per vedere cosa viene ignorato e aggiungere tutto ciò che ritieni debba essere ignorato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.