2010-09-06 30 views
6

Tôi đã đọc:Git/Mercurial địa phương ontop của địa phương cvs thanh toán

, và không phù hợp với nhu cầu của tôi.

Tại nơi làm việc, chúng tôi sử dụng repo CVS từ xa. Truy cập vào repo này được xử lý thông qua các công cụ CVS eclipse, và các plugin eclipse trong nhà được xây dựng ontop của các công cụ nhóm cho nhật thực. Điều này có nghĩa là chúng tôi không thể chuyển sang vcs tốt hơn.

Tuy nhiên tôi muốn sử dụng Git trên máy tính địa phương của tôi (cho phép phân nhánh cá nhân) như vậy mà tôi có thể thực hiện như sau:

Tạo chi nhánh tại Git và sau đó một lần hoàn thành và sáp nhập trở lại vào thân cây địa phương của tôi, cam kết trở lại cvs repo sử dụng các công cụ nhóm nhật thực, vv

Kế hoạch của tôi là một cái gì đó dọc theo dòng sau đây:

  • Sao chép các tập tin kiểm tra ra một thư mục khác [gitRepo].
  • Tạo repo git chính trong gitRepo
  • Chi nhánh trong gitRepo và thực hiện thay đổi.
  • Cam kết gitRepo
  • Sao chép gitRepo lại file kiểm tra ra
  • Sync với cvs từ xa.

Tôi đã lên kế hoạch sử dụng eGit cho nhật thực tuy nhiên tôi tin rằng tệp CVS và .git sẽ cạnh tranh để sở hữu phiên bản.

Có bất kỳ công cụ hoặc luồng công việc được đề xuất nào để giúp tôi quản lý việc này không? Cũng như thế nào Git chơi với các tập tin CVS. Và ngược lại vì tôi không muốn chúng lây nhiễm lẫn nhau.

Lý do mà các liên kết cũ không được sử dụng là chúng cam kết trực tiếp với repo cvs từ repo git và điều này làm tôi lo lắng vì tôi không muốn lây nhiễm repo cvs một cách tình cờ. Cũng cần phải nói rằng những thay đổi trong GitRepo không cần phải tiếp tục tồn tại trong repo CVS, ví dụ tôi không cần phải xem mọi lần đẩy vào repo git được phản ánh trong CVS từ xa.

~ Cảm ơn bạn đã đọc.

Trả lời

4

Bạn hoàn toàn có thể tạo một repo git trực tiếp trong một không gian làm việc CVS ​​(giống như directly within any other VCS tool.

Hãy chắc chắn rằng git sẽ bỏ qua bất kỳ .cvs nguồn lực, và chắc chắn rằng CVS sẽ bỏ qua các .git.
Bất kỳ Git cam won' Tách trực tiếp được phản ánh trong CVS

Bí quyết duy nhất là để Eclipse chỉ hiển thị Git hoặc chỉ thông tin CVS và thông tin trang trí nhãn hiệu
Vì điều đó tôi sẽ cấu hình hai quan điểm Eclipse khác nhau, trong đó tôi sẽ hủy kích hoạt một hoặc công cụ VCS khác.

+0

Cảm ơn bạn đã chỉnh sửa câu hỏi của mình VonC, tôi đánh giá cao! Khi bạn nói phối cảnh Eclipse, bạn có nghĩa là không gian làm việc? Làm thế nào bạn có thể tắt ghi nhãn cho một vcs trong một phối cảnh? –

+0

@Darkflace: bạn có thể tùy chỉnh phối cảnh, đặc biệt là "Tính khả dụng của nhóm lệnh" – VonC

3

Tôi đã làm chính xác này tại nơi làm việc và tôi thấy thực hiện những điều sau đây hữu ích:

  1. Giữ bất kỳ một (master trong trường hợp của tôi) chi nhánh luôn được đồng bộ hóa với CVS. Không sử dụng nhánh này cho sự phát triển của bạn. Định kỳ cập nhật nhánh này để nhận các thay đổi được thực hiện bởi phần còn lại của nhóm. Nếu những thay đổi này có liên quan đến công việc hiện tại của bạn thì hãy thực hiện một số merge master từ chi nhánh dev (hoặc bất kỳ chi nhánh thích hợp nào khác) của bạn.

  2. Khi bạn sẵn sàng đăng ký CVS, hãy chuyển sang chi nhánh master và hợp nhất các thay đổi từ chi nhánh thích hợp (dev, feature, v.v. nếu thích hợp). Chạy thử nghiệm của bạn!

  3. Bạn sử dụng lao động nhiều khả năng nhất sẽ giữ lại bản sao của CVS repos. Bạn sẽ phải tìm một cách để giữ cho repo git của bạn được sao lưu. Một cách là thêm một kho lưu trữ gương trong một thư mục Dropbox và sử dụng một móc post-commit để cập nhật nó sau mỗi lần commit.

  4. Trước khi bạn chuyển công việc sang chi nhánh master. Tôi đã từng mắc lỗi khi chạy CVS up -d trên chi nhánh dev vào buổi sáng và kết thúc khá bối rối. Thêm tập lệnh để tự động chuyển sang master trước khi cập nhật trợ giúp.

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