¿Debo agregar archivos .vcxproj.filter al control de código fuente?

4 minutos de lectura

avatar de usuario
jschroedl

Al evaluar Visual Studio 2010 Beta 2, veo que en el directorio convertido, mi vcproj los archivos se convirtieron vcxproj archivos también hay vcxproj.filtro archivos junto a cada proyecto que parecen contener una descripción de la estructura de carpetas (\Archivos de origen, \Archivos de encabezado, etc.).

¿Cree que estos archivos de filtro deben guardarse por usuario o deben compartirse con todo el grupo de desarrollo y registrarse en SCC?

Mi pensamiento actual es registrarlos, pero me pregunto si hay alguna razón para no hacerlo, o tal vez buenas razones por las que definitivamente debería registrarlos.

El beneficio obvio es que las estructuras de carpetas coincidirán si estoy mirando la máquina de otra persona, pero tal vez les gustaría reorganizar las cosas de forma lógica.

Sacamos el filtro intencionalmente. información del archivo de .vcproj cuando traducimos al formato .vcxproj de MSBuild. Una de las razones es exactamente lo que señaló, que los filtros son puramente una vista lógica, y los diferentes miembros del equipo pueden querer diferentes vistas. La otra es que, a veces, la compilación está configurada para verificar la marca de tiempo del archivo del proyecto y activar una reconstrucción si ha cambiado, porque eso puede significar que hay diferentes archivos de origen para compilar, o diferentes configuraciones, etc. recuerde si en realidad enviamos la compilación activando de esa manera, pero la idea era que no queríamos desencadenar una reconstrucción simplemente porque los filtros cambiaron, ya que no afectan la compilación.

  • para reconstrucciones automáticas, construyes si ningún El archivo ha cambiado (por ejemplo, la fuente), por lo que ahora nada ha cambiado, excepto que tenemos otro archivo para administrar.

    – gbjbaanb

    15 mayo 2010 a las 22:39

  • Terminamos registrándolos y estamos contentos con ese arreglo hasta ahora. Resulta más agradable para nosotros trabajar con otros desarrolladores si tienen la misma estructura de filtro.

    – jschroedl

    17 de mayo de 2010 a las 2:25

  • Los trato por separado. En lo que a mí respecta, cuanto menos basura se tenga que conservar como parte del estado del proyecto, mejor, así que creo que es una buena decisión.

    – rwallace

    3 de marzo de 2013 a las 9:43

  • ¿Podemos deshabilitar esos filtros por completo si no queremos usar ningún árbol abstracto/lógico sino solo ver el sistema de archivos simple?

    – Johan Boule

    24 de agosto de 2014 a las 17:32

  • @JohanBoule: ¡Estoy totalmente de acuerdo! Deberían haber desechado los filtros en el IDE. Ya existe una estructura de árbol lógico y se llama “sistema de archivos”. Actualmente hay mucha duplicación: cada archivo debe agregarse al sistema de archivos, al script de compilación (vcxproj), filtros (vcxproj.filters), control de fuente y tal vez en otro lugar. Viola el principio DRY. Afortunadamente parece que los archivos de filtro son opcional. Simplemente puede eliminarlos y usar el botón “Mostrar todos los archivos” en el IDE. Lástima que no sea el predeterminado.

    – Yakov Galka

    25 de abril de 2017 a las 11:40

Las versiones anteriores de Visual Studio (al menos las versiones 6.0 y 2008) almacenan esa información en su propio archivo de proyecto (archivos .dsp y .vcproj respectivamente), que por supuesto es bueno agregar a SCC.

No puedo pensar en ninguna razón para no incluir estos archivos .filter en SCC

  • Estoy contigo. Lo registré. ¡Gracias!

    – jschroedl

    2 de diciembre de 2009 a las 21:00

Acabo de descubrir que si usa Git, puede marcar los archivos .filter para que se traten como una unión para fusionarlos y hacerlo más simple. Simplemente agregue la línea:

*.vcxproj.filters merge=union

a su archivo .gitattributes.

Ver Usar .gitattributes para evitar conflictos de fusión para más detalles.

  • El enlace mencionado no dice que este archivo .filters debe tener “unión” mencionada en el archivo gitattributes.

    – ollydbg23

    27 de enero de 2018 a las 8:44

  • Pero dice lo que merge=union hace – no se prometió nada más. Con ese conocimiento y una idea muy amplia de cómo se ven los archivos *.filter, es fácil ver por qué merge=union es una buena idea para esos archivos.

    –Peter Schneider

    31 de julio de 2018 a las 13:58

No debe agregarse en caso de que use CMake (o herramientas de compilación similares) para generar archivos como *.sln, *.vcxproj, *.vcxproj.filters etc., porque estos archivos pueden contener la ruta completa a su carpeta de proyecto y otros solo las carpetas específicas de su computadora.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad