Je souhaite ajouter un projet qui dans ce cas est créé dans NetBeans, mais cette question est générale pour la plupart des IDE. C'est simplement, que dois-je inclure dans mon référentiel? Par exemple, NetBeans crée un dossier NBProject, Eclipse crée un dossier .Settings, etc. Doit-je les inclure dans mon référentiel, quels sont les avantages/inconvénients de l'inclusion des paramètres spécifiques au projet.
Dans ce cas, il s'agit d'un projet personnel pour que je n'imagine donc pas que d'autres personnes commenceront à travailler dessus, mais il serait agréable d'ajouter le strict minimum de paramètres de projet afin que le projet lui-même soit facile de commencer à travailler sur différentes machines.
Cela dépend vraiment de quelles données il s'agit et doit être décidée au cas par cas, peut-être même pour des fichiers individuels. Jetez un coup d'œil au contenu de ces fichiers. Plus souvent que vous ne pouvez pas dire ce qu'ils veulent dire. Des trucs comme la position et la taille des fenêtres de l'IDE sont quelque chose que vous ne voulez pas dans le contrôle de la source.
Mais certains des fichiers de projet IDE sont des métadonnées vitales du projet. Je ne connais pas bien NetBeans, mais pour Eclipse, le fichier .project indique au IDE quoi Le nom du projet est que c'est un Java, etc. et le fichier .ClassPath contient des informations sur les dossiers de source et les bibliothèques. Certains fichiers du répertoire .Settings peuvent être tout aussi importants, par exemple Org .Eclipse.core.resources.pred contient des informations sur le codage selon lequel doit être utilisé pour quels fichiers.
En tant que métadonnées de projet, cette matière mérite beaucoup d'être versée au contrôle de la source.
Certains IDes peuvent importer des métadonnées de projet à partir d'autres IDes. Il serait encore préférable de l'avoir sous une forme qui n'est pas liée à un IDE spécifique.
Pour Java, il y a une telle chose: Maven . Il impose de fortes conventions sur la structure du projet et vous permet de spécifier des métadonnées de projet (telles que les dépendances de la bibliothèque) dans un point (un fichier appelé pom.xml qui figure dans le répertoire principal du projet et, bien sûr, dans le contrôle de la source). Il existe des plugins qui créent ensuite IDE fichiers de projet de la configuration Maven, et d'autres personnes qui peuvent automatiser le processus de construction de projet ou faire à peu près n'importe quoi. Parfois, il ressemble à des choses non solidement complexes et cela Prend du temps pour apprendre, mais les avantages en vaut généralement la peine.
Cela dépend vraiment de quel type d'informations vous souhaitez avoir sur le référentiel. Si vous voulez tout jusqu'à quels dossiers que vous aviez ouverts et que vous étiez à l'époque du commit, et que vous utilisez le seul à utiliser le référentiel, allez-y et commettez tout cela, mais sachez que cela ne fonctionnera peut-être pas sur une autre machine .
Si vous souhaitez pouvoir partager votre code avec d'autres personnes qui pourraient ne pas utiliser le même IDE, alors engagez simplement le code lui-même sans une mise en œuvre spécifique du projet.
Si vous savez que tout le monde utilise le même IDE, vous pouvez probablement inclure tout ce qui n'est pas spécifique à l'ordinateur, c'est-à-dire des fichiers/dossiers de réglage pour simplement le IDE même, de cette façon de pouvoir avoir la possibilité d'importer le projet comme le IDE l'espère.
Les artefacts qui aident votre développement et ne sont pas utilisés pour la construction/la libération ou le projet lui-même devraient pas être inclus. Le repo devrait être propre et bien rangé et n'a que ces choses qui sont pertinentes pour le projet, non votre environnement. Le repo devrait être inconvénient de vos habitudes. Et deuxièmement, cela vous dérangera inutilement lorsque quelque chose ressemblant à git status
... mais je n'ai jamais fait de changement ... Ahh ignore ça..
Permettez-moi de donner un exemple plus pratique (je vais utiliser git
hee comme outil):
Vous ne voudriez jamais de sous-module (récursif) à l'intérieur de votre repo principal d'avoir une substance spécifique IDE (elle pourrait également interférer avec l'environnement principal du projet), car tout ce que vous vous souciez d'être le code qui a été écrit par quelqu'un d'autre (ou vous) et est utile dans le projet actuel. Pas l'environnement dans lequel il a été développé. Vous ne voulez probablement pas faire cela à quelqu'un d'autre non plus.
Pour pouvoir utiliser votre réglage sur une machine différente, je suggère de creuser à l'intérieur de votre IDE et de voir quel soutien il fournit de telles choses. Emacs a init
et le serveur EMACSS aussi. Ou vous pouvez faire votre macro ou votre script personnalisé (.sh
) qui permet de configurer automatiquement la configuration.
Si c'est un projet personnel, je dis Stocker les paramètres du contrôle de la source. Personnellement, rien ne tue ma motivation plus pour un projet que de mettre en place un environnement de développement à nouveau.
Quand plus de personnes sont impliquées, je ne mets pas ces choses dans le contrôle de la source. Dans mon équipe, nous avons un mélange de textes Intellij, sublime et Eclipse utilisée. IDE Les fichiers ajoutent simplement un fouillis et entraînent la tirage en engagements à ces fichiers d'autres personnes pour un IDE vous n'utilisez pas.
De plus, votre projet ne devrait pas dépendre de toute façon IDE. Un serveur de construction ne démarrera pas Eclipse pour compiler votre produit, de sorte qu'il devrait déjà être exempt d'IDE. Un point plus mineur: il élimine l'organisation personnelle au sein du projet. Par exemple, dans Intellij j'aime utiliser de nombreux modules au sein de notre projet. Personne d'autre qui utilise Intellij s'inquiète à ce sujet parce que nous ne stockons pas les fichiers .IML (module).
Si votre équipe utilise le même IDE alors c'est mieux, mais alors quelqu'un commet une mauvaise entrée .ClassPath car ils utilisaient un chemin absolu. Maintenant, tout le monde utilise le IDE s'inquiète à ce sujet.
Bien sûr, l'inconvénient est qu'il y a plus de configuration lorsque quelqu'un vérifie le projet. Je pense que ca vaut la peine. Nous utilisons Ivy pour la gestion de la dépendance et des informations sur la configuration, les dépendances, etc. Malgré cela, je pense que cela vaut la peine de garder les paramètres IDE du contrôle de la source.