Digamos que tengo dos "proyectos" dentro de TeamCity, que son dos sitios web, que usan una biblioteca compartida que no está dentro de la ruta svn del sitio web. Aquí está la estructura SVN para que sea más claro:Cómo gestionar proyectos compartidos correctamente en TeamCity
Un sitio web: (biblioteca utiliza compartió una) // root/web/websiteâ
Sitio B:: SVN SVN: // root/web/websiteb (utiliza la biblioteca compartida b)
compartido biblioteca a: svn: // root/shared/Liba
compartido biblioteca B: svn: // root/shared/libB
¿Cómo voy a configurar un proyecto TeamCity para el sitio web a? En este momento lo tengo que apuntar a la raíz svn: //, pero eso haría que desencadene una compilación incluso si se cambió el sitio web b o la biblioteca compartida b, lo cual no es correcto. Lo que realmente necesito es una forma de desencadenar una compilación solo si hay un cambio en svn: // root/web/websitea O en svn: // root/shared/liba.
Intenté configurar dos raíces de vcs dentro del mismo proyecto que apuntan a las dos rutas de svn anteriores, sin embargo, no parece haber una manera de establecer un directorio de trabajo para cada raíz de vcs. Por esta razón, terminó simplemente copiando el contenido de las dos rutas svn directamente en la raíz de mi directorio de compilación en lugar de colocarlas en los lugares correctos (C: \ Build \ Web \ WebsiteA & C: \ Build \ Shared \ LibA)
¡Eso es lo que estaba buscando, gracias! – Justin
Las asignaciones de ruta (=>) no son del todo necesarias en este caso, ya que las rutas son las mismas y sin ellas TeamCity tomaría por defecto las rutas con el mismo nombre. Podría ser útil mapear rutas con diferentes nombres si eligió diferentes rutas al verificar los repositorios en directorios de trabajo durante el desarrollo (en cuyo caso las referencias del proyecto pueden ser rutas relativas que no coinciden con las ubicaciones relativas del rutas en el repositorio de control de origen). Ver: http://confluence.jetbrains.net/display/TCD6/VCS+Checkout+Rules – rohancragg