2010-10-13 14 views
155

¿Qué tipos de archivos Visual Studio \ Visual C++ deben comprometerse con el control de versiones?
En mi proyecto que tienen los siguientes tipos de archivos:¿Qué tipos de archivos de Visual C++ deben comprometerse con el control de versiones?

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 

Les agradecería mucho un breve razonamiento para cada uno. Si alguno de ellos es controvertido, tenga en cuenta. Intencionalmente estoy incluyendo incluso tipos de archivos triviales para completar.

EDITAR

Por un lado me gustaría ser independiente de la plataforma en el futuro. Por otro lado, en el futuro cercano me gustaría trabajar con miembros del equipo con configuraciones similares. La compatibilidad de carpetas entre las configuraciones es ciertamente una opción, por lo que los archivos de configuración que tengan rutas se pueden incluir si facilita el flujo de trabajo.
Una vez más, seguramente agradecería una explicación de qué se trata.

+19

Wow, esta pregunta es un verdadero testimonio de la creciente cantidad de archivos temporales que insiste en la creación de VS en el directorio del proyecto. –

+0

@Nik: no están en el directorio del proyecto. –

+1

@Hans, están allí o bajo un subdirectorio de proyecto –

Respuesta

208

Sí:

  • CPP: Código fuente
  • filtros: archivo de proyecto
  • h: código fuente
  • ico: recursos
  • RC: La escritura de los recursos
  • RC2: secuencia de comandos de recurso
  • sln: archivo de proyecto
  • txt: elemento del proyecto
  • vcxproj: archivo de proyecto

No:

  • APS: último recurso estatales editor de
  • exe: construir resultado
  • BID: construir Estado
  • ipch: build helper
  • lastbuildstate: build helper
  • lib: build result.Puede ser de terceros
  • log: registro de construcción
  • manifest: build helper. Puede escribirse usted mismo.
  • obj: construir ayudante
  • PCH: construir ayudante
  • pdb: construir resultado
  • res: construir ayudante
  • sdf: intelisense dbase
  • suo: opciones de usuario solución
  • tlog: construir registro
  • usuario: configuración de depuración. No conservan si sólo una configuración de depuración dev o personalizados

Varios de éstos son cuestionables porque pueden ser ambos generada automáticamente y se mantiene a sí mismo. Y hay muchos más que no aparecen en su lista. Principalmente preste atención a la ubicación del archivo. Si está en su directorio de solución o proyecto, es muy probable que quiera verificarlo. En los subdirectorios Depurar o Liberar es muy poco probable. Build + Clean elimina muchos de los archivos de ruido. Y por supuesto: check-in, renombrar el directorio del proyecto, check-out y verificar que se construye.

+1

Me gusta Hans responde más. – codekiddy

+0

Esto es muy útil. Mi proyecto también tiene un .vcb (este proyecto se convirtió de una versión anterior (eVC) por lo que puede estar relacionado con eso. –

+0

¿Qué pasa con los archivos '.vcxproj.filters'? – ja72

0

Solo las onces que se requieren para construir su objetivo. Creo que esto es solo .cpp .h .ico .rc .txt .manifest .rc2

No sé qué sdf, aps, filters, user es, no los he visto en mis versiones de C++.

Solo mire y descubra si contienen código escrito por el programador o si son generados por VS.

+2

.sln y .vcxproj son necesarios con seguridad: describen el proyecto y la solución. – sharptooth

+0

Sí, si no mantiene los archivos make. Lo siento, personalmente soy tan Anti-VS/MS que olvidé que hay personas que usan Visual Studio como la única herramienta para su desarrollo. Solo estoy usando el depurador. – Lothar

+1

bueno, los archivos del proyecto VS también son makefiles – Milan

25

En la lista de los que pienso que si:

cpp 
filters 
h 
ico 
manifest 
rc 
rc2 
sln 
txt 
vcxproj 

general, debe versión de todos los archivos necesarios para construir el proyecto. Los archivos generados automáticamente no deben archivarse en mi humilde opinión.

+0

@ milan1612 gracias por la lista concisa. Comparado con la respuesta de Hans Passant, dijiste que debería enviar archivos manifiestos donde él dijo que no debería. ¿Podrías explicar qué significa este archivo y por qué crees que debería comprometerlo, especialmente en un entorno de equipo (y en el futuro multiplataforma), si eso es relevante? – Jonathan

+2

manifiestos pueden tener diferentes propósitos. He creado manualmente los que se incluyen en un archivo de recursos que hicieron que Windows aplicara estilos a mi ventana. Además, hay manifiestos que le permiten desplegar los archivos dlls de la biblioteca estándar junto con su ejecutable. piense en metadatos sobre su aplicación ... – Milan

+0

@ milan1612 - He encontrado un tipo adicional - suo, ¿debería agregarse también? si es así, ¿podría agregarlo a su lista para completar? – Jonathan

6

Si hace clic derecho sobre el proyecto, debe haber una opción "Agregar solución al control de código fuente" en el menú contextual.

Si usa esto, solo se agregarán los archivos que sean necesarios. Todos los archivos intermedios y de salida serán ignorados.

1

En general, debe agregar todos los archivos que aparecen en el Explorador de soluciones al control de versiones. Además, debe incluir los archivos .sln (archivo de solución) y .vcproj/.vcxproj/.vbproj/.csproj (archivo de proyecto).

Tenga en cuenta que si tiene un complemento de control de código fuente para Visual Studio, como TFS o AnkhSvn, no hay necesidad de preocuparse explícitamente por esto. Visual Studio sabe qué archivos deben estar en control de versión y proporciona los datos al complemento de control de origen. Solo si usa una herramienta externa (por ejemplo, TortoiseSVN) necesita tener dicha lista.

14

Según lo propuesto por Microsoft, tipos de archivos que deben incluirse en el control de versiones:

.mak, .dsp, .c, .rc, .rc2, .ico, .bmp, .txt, .def , .hpj, .bat, .rtf, .odl, .inf, .reg, .cnt, .cpp, .cxx, .h, .hpp, .hxx, .inl, .tpl, .vtp y .mst. ..

del tipo de archivo que no debe ser incluido en:

.pch, .mdp, .ncb, .clw, .obj, .exe, .aps, .cpl, .awk, .exp, .lib , .idb, .opt, .pdb, .map, .res, .ilk, .scc, .bsc, .sbr, .dll y .tlb ...

Pero en caso de utilizar una herramienta externa en el archivo ejecutable o una biblioteca externa, entonces creo que también debería incluirse en el control de versiones

INFO: Which Visual C++ Files to Add to Source-Code Control

ediciones:

El enlace de arriba ha sido podrido.Por favor utilice este archive

Este enlace se describe la File Types for Visual C++ Projects en Visual Studio 2017.

+0

La página web no puede ser se accedió en este momento, informó: Esta página no existe. – ollydbg23

+0

@ ollydbg23 gracias. Lo he actualizado con el enlace de archivo –

2

Las otras respuestas son excelentes; Solo pensé en contribuir con una pequeña herramienta útil. Consulte el Visual Studio .gitignore template en GitHub. Es una buena lista mantenida activamente de archivos que comúnmente se mantienen fuera del control de la versión.

Y mientras lo hace, el conjunto gitignore repository es un recurso muy útil para todo tipo de desarrollo desde ActionScript hasta Zend. Si no usas Git, aún puedes usar los archivos de gitignore como referencia.

0

Al contrario de lo que se dijo en una respuesta anterior, me gustaría señalar que parece ser importante para el control de la versión del archivo .opt con el fin de realizar un seguimiento de las opciones del usuario. Véase la referencia abajo:

https://msdn.microsoft.com/en-us/library/aa278994(v=vs.60).aspx

+0

. Los archivos .opt controlan * la apariencia * del IDE, no la forma en que se compila su programa .Entonces, lo que te hace sentir bien con el IDE no es necesariamente bueno en la perspectiva de los demás –

Cuestiones relacionadas