Chúng tôi có một thiết lập SVN với thân cây ổn định và chi nhánh phát triển không ổn định. Dev công việc là (chủ yếu) được thực hiện trên các chi nhánh và sau đó sáp nhập vào thân cây trước khi triển khai.Làm thế nào để đánh lừa git-svn để nhận ra các hợp nhất được thực hiện với svn?
Tôi sử dụng git-svn làm ứng dụng SVN của mình. Quá trình hợp nhất của tôi từ không ổn định đến thân cây như sau:
git svn fetch
git co -b trunk svn/trunk
git merge --no-ff svn/unstable
git svn dcommit
svn/*
là các chi nhánh SVN từ xa.
Điều này tất nhiên yêu cầu không ai cam kết bất cứ điều gì với thân cây trước khi tôi hoàn thành, nhưng đây không phải là một vấn đề trong thực tế.
Lợi ích của quá trình này là git giờ ghi lại phụ huynh của hợp nhất cam kết trong kho lưu trữ cục bộ của tôi. Điều này không có lợi cho đồng nghiệp của tôi, nhưng nó cho phép git tính toán tổ tiên chung khi I thực hiện hợp nhất. Điều này là rất mong muốn.
Và đây là chà. Khi một người khác làm cho một hợp nhất, git không biết về nó. Dưới đây là một ví dụ:
o-...-A---o---C--- unstable
/
X--...--B---o---o--- stable
Các chi nhánh không ổn định đã được tạo ra vào thời điểm X. Tại điểm A chúng tôi quyết định hợp nhất thay đổi từ chi nhánh không ổn định vào nhánh ổn định vào thời điểm B. tổ tiên chung là đúng X.
Vì hợp nhất không được ghi lại trong lịch sử git, việc hợp nhất sau tại C lại giả định X là tổ tiên chung. Tôi muốn nó là A, như trong biểu đồ sau:
o-...-A---o---C--- unstable
/ \
X---...---B---o---o--- stable
Nó không hoàn toàn cần thiết để có được một biểu đồ trông giống như hình. Bất kỳ biểu đồ nào, mà sẽ nhận ra A là tổ tiên chung là tốt của tôi.
Tôi có một số tùy chọn trong tâm trí, chẳng hạn như sử dụng hợp lý git-filter-branch hoặc cam kết "giả mạo" vốn không bao giờ bị SVN gây ra. Tuy nhiên không có nỗ lực của tôi đã làm việc đủ cho đến nay.
Tôi biết ơn đối với bất kỳ ý tưởng nào bạn có thể trình bày. Quy trình này không phải là tự động. Sự kết hợp khá hiếm và tôi có thể sống với nỗi đau khi làm điều đó "bằng tay".
Cảm ơn! Đây là lần đầu tiên tôi nghe nói về ghép. Luôn luôn tốt để tìm hiểu thêm. –