2010-08-23 19 views
6

Estoy usando Google Code para alojar mi proyecto de C#. Tiene una solución con una biblioteca de clase y un proyecto de prueba. Estoy usando Visual Studio 2010.¿Qué archivos/carpetas en una solución C# de Visual Studio 2010 deben ir a Mercurial DVCS?

El cliente que estoy usando es TortoiseHG.

En Windows Explorer, primero cloné una carpeta vacía y obtuve los archivos .hg dentro de ella para que esté asociada con mi código alojado. Ahora, creé un nuevo proyecto de C# y copié todos los archivos dentro de mi carpeta de código fuente raíz controlada. Trabajaré en eso más adelante.

Al comprometerme, hay muchos archivos y carpetas dentro de la carpeta de mi solución y no todos son código. Usualmente solo construyo y saco el EXE o DLL y nunca me molesté con otras cosas. Ahora siento que no todos los archivos y carpetas son importantes para el control del código fuente.

Soy realmente nuevo en el control de fuente.

¿Qué archivos/carpetas deben pasar al control de código fuente, además de los archivos de código propiamente dichos?

Respuesta

5

¡Buena pregunta! La regla de oro que yo uso es el siguiente:

  1. Comprobar en todos los archivos de la carpeta para tener un árbol completo
  2. trabajo un poco con esto y observe los pendientes Checkins
  3. Los archivos que se están pendientes, pero no has tocado, son archivos de Visual Studio que se actualizan mientras trabajas para mantener la configuración del proyecto.
  4. Cuidado ahora: los archivos de proyecto *.sln, *.csproj y otros van a cambiar, así, éstas deben comprobarse en
  5. Otros archivos, esp.. los que "parecen" binarios (en el directorio obj y el archivo *.suo, por ejemplo) se pueden marcar para la lista de exclusión.

Puede decidir incluir las versiones compiladas de la DLL o EXE, pero esto no es necesario, ya que cualquiera que cargue su proyecto puede construirlo. Ahora, el siguiente paso es:

  • Después de trabajar un poco y pensar que ha creado una lista de archivos estable, obtener todo el proyecto a otra ubicación y compilar inmediatamente. ¿Funciona? ¿Extraña archivos?

Si este último paso funciona (y debe verificarlo con regularidad), tiene una base sólida para sus archivos.

Nota: algunas herramientas compatibles con Visual Studio desde dentro y saben qué archivos deben o no ser incluidos, es decir, por SVN Sé que VisualSVN hace un buen trabajo en lugar de saltarse los archivos innecesarios.


Dos más imperio de los pulgares (oh, tres, en realidad):

  • sea específico en lo que se excluye, ser liberal en lo que incluyes: es mejor incluir demasiado que demasiado poco ;
  • Unas extensiones que con seguridad pueden ser excluidos: *.user (raíz de cualquier proyecto), \obj\** (todo bajo el obj -folder temporal), y *.vspscc*.vssscc (raíz del proyecto), *.suo y dependiendo de sus preferencias: \bin\**.
  • Ah, y para proyectos de sitios web, estos pueden contener o agregar un directorio PrecompiledWeb a su solución, que realmente no desea registrar: excluya todo aquí.

EDITAR: this question on SO has a very extensive list de archivos para ignorar de Visual Studio.

+0

Así que, básicamente, debería seguir un método de prueba y error bastante informado hasta que obtenga el conjunto correcto. Todos los registros anteriores pueden tener algo extra o perder algo. ¿Te entendí bien? –

+0

@Senthil: eso es lo que básicamente sugiero, sí, pero eche un vistazo a mi actualización, que debería ayudarlo a comenzar en la dirección correcta. También tenga en cuenta que algunos proyectos requieren archivos auxiliares, complementos, extensiones o bibliotecas especiales. Tiendo a incluir todos estos en una carpeta de solución (y física), para estar seguro de que todo está junto, con un pequeño archivo de instrucciones para instalar extensiones/complementos. – Abel

+0

Sí, gracias por mencionar esos archivos/carpetas específicos :) –

2

Para dar una versión más concisa de la respuesta de @ Abel, puede omitir las carpetas bin y obj y el archivo .suo. Todo en bin y obj se volverá a crear cuando se compile, y .suo es la configuración del usuario para el proyecto que no necesitan los demás.

+0

+1 Eso es realmente corto y al grano. Gracias :) –

+0

gracias por resumir mi respuesta bastante extensa :) – Abel

Cuestiones relacionadas