2010-09-05 19 views
8

El problema que estoy enfrentando es que parece que algunos de los archivos generados por Visual Studio no son necesarios para las confirmaciones.¿Qué archivos generados por Visual Studio debo confirmar?

Además de las cosas obvias que no cometer, ¿qué otros archivos no debería comprometer? ¿Tengo que confirmar archivos .manifest, etc.?

Una forma diferente de decirlo: ¿qué archivos son necesarios para recrear el proyecto en el que estoy trabajando y qué archivos se pueden generar automáticamente?

Gracias!

+0

* Aparte de las cosas obvias que no comprometer * - Para aquellos que no lo encuentran obvio, ¿podría explicarnos a qué archivos se refiere aquí? Algunas personas pueden encontrar útil esta información. –

Respuesta

4

Los archivos que generalmente no comprometo son: *.suo y *.user. Integro la mayoría de los otros archivos.

Los archivos binarios pueden comprometerse o no, según la política de su empresa. En teoría, debería ser capaz de volver a crearlos desde el código fuente, pero en la práctica es una buena idea tener una copia exacta de todo lo que ha enviado a un cliente. Entonces, al menos para las versiones, los binarios deberían estar comprometidos.

+1

Mi respuesta exacta. +1 –

+3

Si eliges ingresar archivos binarios, te recomendamos que los envíes a otro lugar en el árbol fuente junto con tu código fuente. Por ejemplo, en Subversion, puede crear un directorio 'delivery /' junto con 'branches /', 'tags /', y 'trunk /'. –

+0

¡Muchas gracias por su respuesta concisa! Gracias también por su comentario, Greg Hegwill. –

2

En general, es un poco difícil enumerar específicamente los archivos, ya que depende en gran medida del tipo de proyecto que tenga y de las herramientas que use para la autogeneración del código.

En general, el archivo .suo es algo que es de uso específico y no debería ser facturado.

Sin embargo, la manera más fácil que lo que puedo sugerir a usted es para

  1. Dont checkin cualquier archivo que no estás seguro de que necesites
  2. Lleve una copia de todos los archivos de su control de origen a una nueva ubicación.
  3. Crea la solución.

Si se desarrolla, genial. De lo contrario, agregue archivos hasta que lo haga.

Es un poco de prueba y error, pero lo más probable es que sea solo una vez.

Otra opción es descubrir realmente para cada tipo de archivo desconocido exactamente lo que hace y luego decidir si es necesario o no y en consecuencia excluir/incluir. Para esto, si publica las extensiones de los archivos de los que no está seguro, ¡ya sea google/SO puede ayudar!

Personalmente, no creo en el compromiso de binarios en absoluto, incluso para lanzamientos. Me parece innecesario, como en nuestro caso, cada lanzamiento tiene una etiqueta asociada. Por lo tanto, obtener el código exacto que se lanzó es solo cuestión de obtener el código asociado con la etiqueta y compilarlo. Además, dado que la implementación se realiza generalmente a través de archivos de configuración, siempre que tenga la configuración msi/exe (y siempre que mantenga copias de seguridad de las versiones) tener todos los binarios registrados en el control de fuente parece un poco exagerado

+0

Si obtiene un volcado de emergencia del sitio de un cliente, entonces creo que podría querer los archivos ejecutables originales y '* .pdb': la recompilación no reproducirá los originales, en términos de obtener símbolos para cargar en el depurador. – ChrisW

+0

@ChrisW - ¿Puede explicar "no reproducirá los originales, en términos de obtener símbolos para cargar en el depurador"? Me temo que no entiendo esto. En caso de error, ¿no confiaría en los registros para identificar el punto de error y el motivo del error y luego lo reproduciría usando datos similares + versión recompilada del mismo código para replicar el escenario? ¿Me estoy perdiendo de algo? – InSane

+0

Al menos usando C++ (no lo he intentado con .NET), si hay una excepción no controlada en un equipo de cliente, entonces puede obtener un 'volcado de error' desde él/ellos. Le envían el volcado de emergencia, que luego puede depurar en su propia máquina. Para depurar eso en su máquina y obtener la depuración simbólica (código fuente), necesita el mismo código/compilación (en su máquina) que se estaba ejecutando en la máquina en la que se produjo el bloqueo original: y debe ser exactamente la misma compilación (Creo que el depurador usa marcas de tiempo insertadas por el compilador para determinar si dos compilaciones son idénticas). – ChrisW

Cuestiones relacionadas