2012-07-24 25 views
8

Công ty tôi làm việc đã cho tôi dự án chuyển dự án java của họ từ CVS sang Git. Vì nhiều lý do, họ không muốn sử dụng một công cụ khác ngoài Eclipse. Vì vậy, chúng tôi đang mắc kẹt với EGit.EGit: Làm cách nào để ngăn việc hợp nhất nhanh về phía trước?

Tôi đã tìm kiếm rất nhiều để tìm quy trình làm việc phù hợp với dự án của chúng tôi. Điều này có vẻ khá liên quan và được nhiều người sử dụng: http://nvie.com/posts/a-successful-git-branching-model/

Vấn đề là khi chúng tôi cố gắng xem nó có thể hoạt động như thế nào với EGit bằng cách sử dụng cam kết, chi nhánh & kết hợp, rất nhiều quá trình hợp nhất nhanh xảy ra. Vấn đề với việc hợp nhất nhanh về phía trước là nó làm cho bạn mất điểm bắt đầu của chi nhánh.

Khách hàng chúng tôi làm việc vì muốn có thể chọn các tính năng sẽ có trong bản phát hành tiếp theo và sẽ không có tính năng nào. Đó là một trong những lý do chính chúng tôi muốn chuyển từ CVS sang Git, vì dường như không có cách nào dễ dàng trong CVS để tìm tệp nào đã được sửa đổi do tính năng số 1 và tệp nào đã được sửa đổi cho đối tượng địa lý số 2. Trong git, chúng tôi có thể tạo các chi nhánh cho đối tượng địa lý # 1 & # 2 và tìm tệp nào đã được sửa đổi cho các tính năng này. Tuy nhiên, do tiến nhanh về phía trước, nó giống như quay trở lại CVS, chúng tôi không thể biết được tính năng số 1 và đó là tính năng số 2.

Vì vậy, có cách nào để ngăn chặn hợp nhất nhanh chóng không? Chúng tôi đã cố gắng để đưa các cấu hình này vào Eclipse:

[core] 
mergeoptions = --no-ff 

[merge] 
ff = false 

Nhưng nó không ngăn EGIT thực hiện hợp nhất tiến nhanh. Nếu tính năng này không được thực hiện với JGit/EGit, sẽ có cách nào khác để có một quy trình làm việc bằng cách sử dụng Egit theo sau những gì khách hàng muốn (khả năng chọn các tính năng để phát hành). Sử dụng dòng lệnh có lẽ sẽ giải quyết được vấn đề, nhưng nếu có thể giữ nó trong Eclipse, điều đó sẽ tốt đẹp.

Cảm ơn bạn

Trả lời

1

Có vẻ như không thể, vì JGit không hỗ trợ một số tùy chọn hợp nhất, bao gồm --no-ff.

Xem this post, có báo cáo lỗi về vấn đề này.

7

EGit bug 336933 là về hỗ trợ các tùy chọn này và được sửa với EGit 2.3, xem release notes.

Nếu bạn không sử dụng 2.3 nào, một (xấu xí) workaround có thể trông như thế này:

  • Trước khi sáp nhập, kiểm tra xem nó sẽ cho kết quả trong một merge nhanh về phía trước bằng cách sử dụng History Xem
  • Nếu nó sẽ, thực hiện một cam kết trong tổng thể (hoặc chi nhánh nơi bạn muốn nhập vào) trong một tập tin không liên quan
  • Sau đó làm việc hợp nhất
2

Lưu ý rằng với release of Egit 2.3, Egit hiện hỗ trợ tùy chọn đó:

Hỗ trợ git merge --no-ff làm tùy chọn EGit.

Điều đó hoàn thành bug 335091.

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