Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to manage IDE files in a git repository?

The application is developed using Sencha Architect, which uses a host of auxiliary files for managing various IDE-related things (export paths, versioning of the IDE etc.).

Some of these files will change every time a team member just opens a project in the Sencha Architect IDE.

To give an example of a particularly annoying change, consider the property exportPath in the Architect-generated *.xds files. I will have a server of choice which I publish to, to a specific path, and other team members will have different server/path configurations.

In our code-base, I would very much like to either have the IDE files:

  1. in a separate repository,
  2. in a sub-module (yes, git-specific, I know) or
  3. reside on the user machine, with the VCS oblivious to changes in them.

The key thing to note here is, that Sencha Architect expects the files to be in certain places relative to the projects, so the IDE files must be available at the same place as the normal source files.

Also, using .gitignore is not an option, since Sencha Architect will write information in some of them that are vital for other team-members opening them correctly. E.g. when opening a project, Sencha Architect could decide to upgrade the project to a newer version (its non-optional, if you want to open the project at all), and in the course of updating, the IDE will modify some of the source-code files. The other team members must be aware of the version upgrade in order to be able to open the project correctly.

This SO question gives some background to the convoluted format that Sencha uses. I pardon for the negative tone in my assessment of the architecture of Sencha Architect, but it seems that they took a good idea (using metadata and code generation) a bit too far (invalidating the use of all good unix tools, including git).

what would be the preferred approach here? And why?

like image 239
Steen Avatar asked Jun 10 '13 12:06

Steen


1 Answers

It could be helpful to use versioning for the IDE files except files which store user specific settings. See also https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems.

Advantage of using version control for these files is

  • Sharing of code styles for the whole development team
  • Manage and share nested repositories that are under version control as well.
  • etc.
like image 113
Viktor Steinwand Avatar answered Oct 12 '22 11:10

Viktor Steinwand