2011-01-21 37 views
6

Tôi có một số dự án nhật thực mà tôi muốn có trong hai kho lưu trữ hg riêng biệt.Nhiều dự án Eclipse trong một kho lưu trữ Mercurial

Tôi đã thực hiện việc này trước tiên bằng cách tạo kho lưu trữ hg hai bằng TortouiseHg và thêm, cam kết các dự án của tôi với từng kho lưu trữ trước. Bằng cách đó, bây giờ tôi có hai kho lưu trữ hg với hai dự án trong mỗi.

Tiếp theo tôi sao chép các kho lưu trữ đó trong Eclipse bằng MercurialEclipse. Các dự án xuất hiện như dự kiến ​​trong Eclipse.

Ví dụ 1:

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

Nhưng nếu tôi nhìn vào cấu trúc thư mục nó trông như thế này:

Ví dụ 2:

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

khi tôi muốn nó trông như thế này.

Ví dụ 3:

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

Có thể có một kho Mercurial đơn và bằng cách nào đó sao chép nó và có những dự án xuất hiện trực tiếp dưới thư mục workspace, và không có trong một thư mục con?

+0

Bạn không thể tạo 1 thư mục .gg chứa dữ liệu từ nhiều kho lưu trữ. Có phải 4 dự án đó thực sự chỉ là một phần của cùng một dự án, hay chúng là các dự án khác nhau mà bạn đã kết hợp theo một cách nào đó? –

+1

Tôi có thể chưa rõ ràng ....... nhưng đó là một kho lưu trữ hg chứa nhiều dự án nhật thực. Chúng không phải kho lưu trữ hg lồng nhau. – stuff22

Trả lời

5

Bạn không nên lưu dự án từ vùng làm việc Eclipse hoặc khôi phục chúng trong không gian làm việc Eclipse.
Các dự án đó (.project, .classpathother project specific resources) phải nằm trong thư mục riêng của chúng, ngoài không gian làm việc Eclipse (và sau đó là imported into the workspace).

Bằng cách đó, bất kỳ cấu trúc thư mục nào cũng sẽ tốt cho việc nhập dự án khác vào không gian làm việc Eclipse mới.

+0

Hai vấn đề, nếu tôi hiểu chính xác bạn. Cho phép nói rằng tôi không nhập/sao chép kho lưu trữ thủy ngân vào không gian làm việc. Tôi làm điều đó ở một nơi khác và sau đó nhập vào nhật thực. Điều này vẫn không giải quyết được thực tế rằng các dự án tự cư trú ở những nơi khác nhau trong cây thư mục. Chúng sẽ vẫn hiển thị trông giống như ví dụ 2 nhưng rõ ràng là không có trong thư mục không gian làm việc. – stuff22

+0

@ stuff22: ý tưởng là chúng có thể hiển thị ở bất kỳ nơi nào chúng muốn: khi repo được nhân bản (với bất kỳ cấu trúc bên trong nào), bạn sẽ luôn có thể * sau đó * để nhập các dự án vào không gian làm việc của Eclipse. Bạn không cần phải làm theo bất kỳ cấu trúc không gian làm việc cụ thể nào cho các dự án của bạn. – VonC

1

Tôi không hiểu lắm. Bạn không thể sao chép repo vào bên trong chính nó. Tại sao bạn không thể tạo một bản cứng của Project1 và Project2, tạo ra 3 và 4?

+0

Tôi không nhân bản các kho lưu trữ bên trong mình. .hg chỉ cho biết các thư mục nào là các kho lưu trữ của mercurial (hoặc nơi tôi muốn chúng) – stuff22

+0

Tôi vẫn chưa hiểu. Tại sao bạn không tạo cấu trúc mà bạn muốn với repo 1 hg và nhập các dự án hiện có vào không gian làm việc eclipse? – Roberto

+0

anyways, tôi nghĩ rằng những gì tôi đang cố gắng để nói là samething VonC đang nói. Làm bất cứ cấu trúc nào bạn muốn làm và sau đó nhập từng dự án vào nhật thực. Các .project, .classpath và các tập tin khác sẽ được bên trong không gian làm việc eclipse của bạn (bên ngoài repo hg) nhưng bạn sẽ được chỉnh sửa các tập tin nguồn từ repo hg của bạn thông qua nhật thực. – Roberto

1

Tôi biết một số người wont làm như giải pháp của tôi (và tôi biết rằng nó được một thời gian kể từ khi câu hỏi này đã được hỏi) nhưng ở đây nó là:

  1. Tạo không gian làm việc như bình thường
  2. Exit từ Eclipse (không chắc chắn nếu nó là cần thiết nhưng nó không gây hại để làm điều đó)
  3. Sao chép kho Mercurial của bạn trực tiếp trong thư mục không gian làm việc được tạo bằng hg (nó giúp nếu tên của kho lưu trữ của bạn giống như không gian làm việc)
  4. Quay lại Eclipse và tạo một dự án mới cho ea ch sub-directory (trong ví dụ của bạn, nó sẽ là Project 1, Project 2, v.v.). Nó sẽ cảnh báo bạn rằng thư mục đã tồn tại nhưng nó ổn.
  5. MercurialEclipse nên nhận ra từng dự án như được phiên bản Mercurial kiểm soát

này đã được thử nghiệm thành công trong CDT trong Eclipse trên Linux. Và tôi khuyên bạn nên đưa vào .hgignore các tệp do Eclipse tạo ra để quản lý các dự án của bạn.

Tôi hy vọng điều này sẽ hữu ích.

3

Tôi đã tự mình gặp vấn đề chính xác này và giải pháp không rõ ràng ngay lập tức. Bài đăng trên blog này có hướng dẫn từng bước cho biết cách đạt được những gì bạn đang theo dõi: workflow: create and init multi-project repositories with HgEclipse (Mercurial).

Nói tóm lại, bạn muốn:

  • Mở Mercurial Xem và tạo ra một kho lưu trữ mới tại/path/to/workspace/dự án thư mục
  • Tạo tuy nhiên nhiều dự án mới, bạn cần, mỗi người nên được tạo tại vị trí (không mặc định) của/path/to/workspace/projects-folder/project name.

Bạn sẽ tìm thấy bạn kết thúc với bố cục bạn muốn trong Eclipse và các dự án sẽ chia sẻ kho lưu trữ trong thư mục dự án.

+1

Cảm ơn bạn đã liên kết. Nó thực sự hoạt động, và với HgEclipse mới nhất có vẻ như nó không cần thiết để thực hiện các bước 2.2 và 2.3 như được mô tả trong bài gốc. Chỉ cần thêm dự án tại vị trí không mặc định trong cùng một kho lưu trữ hoạt động ra khỏi hộp. – Mikhail

Các vấn đề liên quan