Separa el server web de la aplicación cliente en Git?

Soy bastante nuevo en Git y me da curiosidad si alguien ve un problema con tener el código tanto para mi aplicación web como para la aplicación de cliente (iPhone) bajo el mismo proyecto de Git.

Estaba pensando en crear una estructura de carpetas para git como la siguiente:

MyProject ServerSide_Code iPhone_Code 

¿Deberían dividirse en proyectos separados? ¿Puedo dividir uno de ellos más adelante y mantener su historial de compromisos?

Los mantendría como dos repositorys separados (personalmente), pero depende de cómo planees desarrollarlo y publicarlo.

Para responder a su segunda pregunta: Separar (mover) el subdirectory en un repository separado de Git

El mejor método – IMO – si desea mantener estos organizados, cree dos repos para cada carpeta y luego un tercer repository padre que podrá rastrear los sub-repos.

 Project (Git) - Server (Git) - Client (Git) 

Depende de su flujo de trabajo de desarrollo.

Con Git, lo que debe tener en count es que los usuarios deben download todo el historial del repository al momento de finalizar la compra (clonar) el repository. Si tiene equipos separados que realizan desarrollo mobile y en el lado del server, es posible que no les interese lo que el otro equipo está haciendo. Tener que pagar todo el historial (particularmente para un proyecto grande) puede ser un poco complicado.

Por otro lado, tener ambos proyectos en el mismo repository permite compromisos atómicos entre proyectos. Por ejemplo, el mismo compromiso puede cambiar simultáneamente el protocolo provisto por su aplicación del lado del server mientras actualiza la aplicación mobile para usar ese protocolo. Sin esto, hay una pequeña window donde el código del lado del server no estaría sincronizado con la aplicación mobile, lo que podría causar roturas. De nuevo, principalmente un problema para equipos más grandes y proyectos más grandes.

Editar: para responder a su segunda pregunta, es difícil eliminar el historial de un proyecto y agregarlo a otro, pero no es completamente imposible.