2011-01-21 19 views
6

Tengo un número de proyectos de eclipse que me gustaría tener en dos repositorios de hg separados.Múltiples proyectos de Eclipse en un repositorio de Mercurial

He conseguido hacer esto creando primero el repositorio dos hg utilizando TortouiseHg y la adición, la comisión de mis proyectos para cada uno de los repositorios en primer lugar. Al hacer eso, ahora tengo dos repositorios de hg con dos proyectos en cada uno.

Siguiente Cloné esos repositorios en Eclipse usando MercurialEclipse. Los proyectos aparecen como se esperaba en Eclipse.

Ejemplo 1:

Eclipse workspace 
       | 
       |--Project 1 
       |--Project 2 
       |--Project 3 
       |--Project 4 

Pero si miro en la estructura de directorios que tiene este aspecto:

Ejemplo 2:

c:-- 
    | 
    |-workspace 
       | 
       hgRepository1 
       |   |--.hg 
       |   |--Project 1 
       |   |--Project 2 
       | 
       | 
       hgRepository2 
          |--.hg 
          |--Project 3 
          |--Project 4 

cuando quiero que se vea como esto.

Ejemplo 3:

c:-- 
    | 
    |-workspace 
       |--.hg 
       |--Project 1 
       |--Project 2 
       |--Project 3 
       |--Project 4 

¿Es posible tener un único repositorio Mercurial y de alguna manera clonarlo y tienen los proyectos aparecen directamente en el directorio espacio de trabajo, y no en un subdirectorio?

+0

No se puede hacer que 1 .hg directorio contenga datos de múltiples repositorios. ¿Son esos 4 proyectos realmente solo partes del mismo proyecto, o son proyectos diferentes que usted ha combinado de alguna manera? –

+1

Podría no haber sido claro ....... pero es un repositorio de un hg que contiene múltiples proyectos de eclipse. No están anidados como repositorios de hg. – stuff22

Respuesta

5

No debe guardar el proyecto desde un espacio de trabajo de Eclipse o restaurarlo en un área de trabajo de Eclipse.
Esos proyectos (.project, .classpath y other project specific resources) deben estar en su propio directorio, fuera del espacio de trabajo de Eclipse (y luego en imported into the workspace).

De esta forma, cualquier estructura de directorios va a estar bien para la importación de los diferentes proyectos en un nuevo espacio de trabajo de Eclipse.

+0

Dos problemas, si te entiendo correctamente. Digamos que no importo/clono el repositorio mercurial en el espacio de trabajo. Lo hago en otro lugar y luego lo importo a eclipse. Esto todavía no resuelve el hecho de que los proyectos en sí mismos residen en diferentes lugares en el árbol de directorios. Seguirán apareciendo como en el ejemplo 2, pero obviamente no en el directorio del espacio de trabajo. – stuff22

+0

@ stuff22: la idea es que pueden aparecer donde quieran: una vez que se clona el repositorio (con cualquier estructura interna que tenga que seguir), siempre podrá * luego * importar dichos proyectos al espacio de trabajo de Eclipse. No tiene que seguir ninguna estructura de espacio de trabajo específica para sus proyectos. – VonC

1

No entiendo muy bien. No puede clonar el repositorio en su interior. ¿Por qué no puedes hacer una copia impresa de Project1 y Project2, creando 3 y 4?

+0

No estoy clonando los repositorios dentro de sí mismos. El .hg simplemente indica qué carpetas son los repositorios mercuriales (o dónde me gustaría que estén) – stuff22

+0

Todavía no lo entiendo. ¿Por qué no hace la estructura que desea con un repositorio de 1 hg e importa los proyectos existentes en el espacio de trabajo del eclipse? – Roberto

+0

de todos modos, creo que lo que estoy tratando de decir es lo mismo que VonC está diciendo. Haga la estructura que desee y luego importe cada proyecto en eclipse. El .project, .classpath y otros archivos estarán dentro de su área de trabajo de eclipse (fuera del repositorio de hg) pero editará los archivos de origen de su repositorio de hg a través de eclipse. – Roberto

1

Sé que algunas personas planteo como mi solución (y sé que ha sido un tiempo ya que esta pregunta se ha hecho), pero aquí está:

  1. Crear el espacio de trabajo como de costumbre
  2. Salir de Eclipse (no estoy seguro de si es necesario pero no daña hacerlo)
  3. Clona tu repositorio de Mercurial directamente en el directorio del espacio de trabajo creado con hg (ayuda si el nombre de tu repositorio es el mismo que el espacio de trabajo)
  4. Regrese a Eclipse y cree un nuevo proyecto para ea ch subdirectorio (en su ejemplo sería Proyecto 1, Proyecto 2, etc.). Le advertirá que el directorio ya existe pero está bien.
  5. MercurialEclipse debería reconocer cada proyecto como siendo versión Mercurial controlado

Esto ha sido probado con éxito en CDT en Eclipse en Linux. Y le aconsejo que ponga en su .hgignore los archivos creados por Eclipse para administrar sus proyectos.

Espero que esto ayude.

3

Me encontré con este problema exacto, y la solución no es inmediatamente obvia. Esta publicación de blog contiene instrucciones paso a paso que le muestran cómo lograr lo que busca: workflow: create and init multi-project repositories with HgEclipse (Mercurial).

En pocas palabras, se desea:

  • Abra la Mercurial ver y crear un nuevo repositorio en/ruta/a/espacio de trabajo/proyectos-carpeta
  • Crear sin embargo muchos de los nuevos proyectos que necesita, cada uno debe crearse en la ubicación (no predeterminada) de/ruta/a/workspace/projects-folder/project name.

Te encontrarás con el diseño que deseas en Eclipse y todos los proyectos compartirán el repositorio ubicado en la carpeta de proyectos.

+1

Gracias por el enlace. En realidad funciona, y con la última HgEclipse parece que no es necesario realizar los pasos 2.2 y 2.3 como se describe en la publicación original. Solo agregar proyectos en una ubicación no predeterminada en el mismo repositorio funciona de la caja. – Mikhail

Cuestiones relacionadas