Quels types de fichiers Visual Studio\Visual C++ doivent être validés pour le contrôle de version?
Dans mon projet, j'ai les types de fichiers suivants:
aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj
J'apprécierais beaucoup un court raisonnement pour chacun. Si l'un d'entre eux est controversé, veuillez le noter. J'inclus volontairement même des types de fichiers triviaux pour des raisons de complétude.
EDIT
D'une part, j'aimerais être indépendant de la plate-forme à l'avenir. D'autre part, dans un proche avenir, j'aimerais travailler avec des membres de l'équipe avec des configurations similaires. La compatibilité des dossiers entre les configurations est certainement une option. Par conséquent, les fichiers de configuration contenant des chemins peuvent être inclus si cela facilite le flux de travail.
Encore une fois, j'apprécierais sûrement une explication de quoi.
Oui :
No:
Plusieurs d'entre eux sont douteux, car ils peuvent être générés automatiquement et entretenus vous-même. Et il y en a plusieurs autres qui ne figurent pas dans votre liste. Faites surtout attention à l'emplacement du fichier. S'il se trouve dans le répertoire de votre solution ou de votre projet, il est fort probable que vous souhaitiez l'archiver. Dans les sous-répertoires Debug ou Release, il est donc très peu probable. Build + Clean supprime beaucoup de fichiers de bruit. Et bien sûr: archivez, renommez le répertoire du projet, extrayez-le et vérifiez qu'il est généré.
Dans votre liste, je choisirais ceux qui:
cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj
En règle générale, vous devez version tous les fichiers nécessaires pour générer le projet. Les fichiers générés automatiquement ne doivent pas être archivés à mon humble avis.
Comme suggéré par Microsoft, les types de fichiers à inclure dans le contrôle de version:
.mak, .dsp, .c, .rc, .rc2, .ico, .bmp, .txt, .def, .hpj, .bat, .rtf, .odl, .inf, .reg, .cnt, .cpp, , .cxx, .h, .hpp, .hxx, .inl, .tpl, .vtp et .mst ...
Types de fichiers qui ne devraient pas être inclus dans:
.pch, .mdp, .ncb, .clw, .obj, .exe, .aps, .cpl, .awk, .exp, .lib, .idb, .opt, .pdb, .map, .res, .ilk , .scc, .bsc, .sbr, .dll et .tlb ...
Mais au cas où vous utiliseriez un outil externe dans un fichier exe ou une bibliothèque externe, je pense qu'il devrait également être inclus dans le contrôle de version
INFO: Quels fichiers Visual C++ à ajouter au contrôle de code source
En outre, ce lien décrit Types de fichiers pour les projets Visual C++ dans Visual Studio 2017.
Si vous cliquez avec le bouton droit de la souris sur le projet, il devrait y avoir une option "Ajouter une solution au contrôle de la source" dans le menu contextuel.
Si vous utilisez ceci, seuls les fichiers nécessaires seront ajoutés. Tous les fichiers intermédiaires et de sortie seront ignorés.
Les autres réponses sont excellentes. Je pensais juste que je contribuerais un petit outil utile. Découvrez le modèle Visual Studio .gitignore sur GitHub. C'est une liste gérée activement par Nice des fichiers généralement gardés en dehors du contrôle de version.
Et pendant que vous y êtes, l'ensemble référentiel gitignore est une ressource très utile pour toutes sortes de développement de ActionScript à Zend . Si vous n'utilisez pas Git, vous pouvez toujours utiliser les fichiers gitignore comme référence.
En général, vous devez ajouter tous les fichiers qui apparaissent dans l'explorateur de solutions au contrôle de version. En outre, vous devez inclure les fichiers .sln (fichier de solution) et .vcproj/.vcxproj/.vbproj/.csproj (fichier de projet).
Notez que si vous avez un plugin de contrôle de code source pour Visual Studio, tel que TFS ou AnkhSvn, il n’est pas nécessaire de s’en préoccuper explicitement. Visual Studio sait quels fichiers doivent figurer dans le contrôle de version et transmet les données au plug-in de contrôle de source. Ce n'est que si vous utilisez un outil externe (ex. TortoiseSVN) que vous devez disposer d'une telle liste.
Seules les onces nécessaires à la construction de votre cible. Je pense que c'est juste .cpp .h .ico .rc .txt .manifest .rc2
Je ne sais pas ce que sdf, aps, filtres, utilisateur sont, je ne les ai pas vus dans mes versions C++.
Il suffit de regarder et de savoir s’ils contiennent du code écrit par le programmeur ou s’ils sont générés par VS.