¿Cómo organizar una aplicación web?

Estoy comenzando mi primera aplicación web, y no estoy seguro de cómo se hacen las cosas normalmente. Estoy usando Django y Apache:

  1. ¿Cómo gestionas un repository de control de código fuente? ¿Mira en una carpeta separada y luego tiene un script de compilation que copy los files? ¿Qué debería agregarse exactamente al repository? En otras palabras, ¿cómo se asegura de que no se cometen files generados automáticamente? (a veces es difícil decir lo que se genera automáticamente y lo que aún no he descubierto 🙂

  2. ¿Cómo puedo implementarlo primero en una página de desarrollo privada y luego implementarlo en la página principal cuando esté listo? ¿Puedo configurar dos serveres? ¿Si es así, cómo?

Sé que estas son preguntas un tanto nuevas, pero parece que no puedo encontrar un buen tutorial que realmente explique estos temas fundamentales.

Tendría una copy de desarrollo que sería un checkout de mi repository. En el sitio en vivo, tendría exportaciones (a diferencia de las cajas) de las versiones labeldas y nombraría el directory en el que están estas exportaciones con el nombre de label "project-v1.4.5", por ejemplo. Luego tendría un enlace simbólico para apuntar a la label actualmente activa. Esto le permite volver a una versión anterior mucho más fácilmente si encuentra problemas después de publicar una nueva label.

Si está utilizando SVN, le recomiendo que lea ( http://svnbook.networking-bean.com/ ) las secciones del libro SVN sobre Conceptos y tags fundamentales (en el capítulo Bifurcación y fusión).

SVN le permite ignorar los files que no desea confirmar http://svnbook.networking-bean.com/en/1.5/svn.advanced.props.special.ignore.html

con git puedes configurar una twig privada y que los files seleccionados permanezcan en esa twig solamente (por ejemplo, para mantener tus configuraciones y templates locales). He hecho una pregunta similar antes. Con esta configuration, actualizar su aplicación y llevar sus cambios a la sucursal pública es trivial.