Tôi đã tiếp quản một dự án phần mềm và quyết định đặt mọi thứ theo SVN (trên Assembla) bằng cách sử dụng Tortoise SVN. Thân cây nằm dưới ROOT. Vì vậy, thân cây chứa toàn bộ ứng dụng (mà tôi đã gắn thẻ 1.0). Đối với tính năng lớn đầu tiên của tôi, tôi đã tạo một chi nhánh có tên là "dev".Làm cách nào để 'khắc phục' xung đột chi nhánh/cây SVN?
Tôi có thể hợp nhất các thay đổi trong nhánh thân thành chi nhánh nhà phát triển mà không gặp sự cố (vì tôi đã thực hiện các sửa lỗi nhỏ). Khi tính năng của tôi hoàn tất, tôi đã hợp nhất lại vào nhánh thân cây. Tất cả mọi thứ đã được làm việc vây đến thời điểm này. Mã mới trong ROOT cho thấy tính năng mới đúng cách. Nhưng sau đó tôi đã thực hiện một cam kết (của kết quả của việc hợp nhất) và bây giờ mỗi khi tôi cố gắng để làm một hợp nhất từ gốc hoặc từ chi nhánh dev, SVN phàn nàn về "xung đột cây" trên nhiều tập tin. Ngay cả các tệp mà tôi không chạm từ khi hợp nhất. Tôi đã cố gắng giải quyết các xung đột, không thành công.
Tôi là nhà phát triển duy nhất, vì vậy tôi không thực sự quan tâm đến những thay đổi lớn đối với kho lưu trữ. Nhưng tôi vẫn muốn giữ lịch sử của tất cả các tệp nếu có thể.
Cách tốt nhất để khắc phục sự cố này là gì? Có cách nào tôi có thể gắn thẻ tất cả các tập tin mới nhất trong thân ROOT như là phiên bản "xác định" của tập tin?
[EDIT] Xem thêm thông
- Vâng, 'chính' và 'thân' là điều tương tự. Tôi đã làm rõ câu hỏi của mình
- Khi bạn hợp nhất lại từ nhánh tính năng, trước tiên bạn có thực hiện việc hợp nhất khác từ thân cây để loại bỏ các thay đổi thân mới nhất không? "Có. Thân cây đã được cập nhật. Và nhánh dev đã có
- "tất cả mọi thứ đã bị vướng vào cam kết": Ý tôi là cam kết là tốt, nhưng sau đó ngay khi tôi bắt đầu hợp nhất từ thân cây/đến thân cây, SVN phàn nàn về ' xung đột cây.
- tôi có hơn 200 cuộc xung đột cây. vì vậy, những gì tôi đang tìm kiếm là một 'chấp nhận tất cả' lệnh
[EDIT] giải pháp elhoim không khắc phục được sự cố của tôi. Tuy nhiên, ông đã đúng với các vấn đề phiên bản SVN. Hiện tại (2009-10-28), Assembla đang sử dụng SVN v1.5.1 và TortoiseSVN của tôi là v1.6. Vì vậy, đó là lý do tôi đã có rất nhiều xung đột cây. Tôi đã thử sử dụng giải pháp như được cung cấp bởi liên kết của elhoim và nó không hoạt động (tôi đã thử một bó hợp nhất nhiều lần trước khi thử hợp nhất HEAD-to-HEAD. Một số tệp không được chuyển sang nhánh gốc vì điều đó).
Thấy rằng việc hợp nhất HEAD-to-HEAD sẽ không hoạt động, tôi đã quyết định xóa tất cả các tệp ".svn" trong thư mục chi nhánh của tôi, sao chép tệp vào thư mục ROOT và thực hiện cam kết.
@eldimo: khi bạn hợp nhất 'chính' thành 'dev', là nhánh 'chính' giống với thân cây? Hoặc có những thay đổi đang ngồi trong 'chính' mà thân cây chưa thấy chưa? – dls
@ dls: Tôi nghĩ anh ấy sử dụng thuật ngữ "chính" và "thân cây" có nghĩa là cùng một nhánh. –
@eldimo: Cần một số chi tiết để rõ ràng hơn: 1. Khi bạn sáp nhập trở lại từ nhánh tính năng, trước tiên bạn có thực hiện việc hợp nhất khác từ thân cây để loại bỏ các thay đổi thân mới nhất không? 2. Ý của bạn là "mọi thứ đã bị vặn lên" khi cam kết? Có thể cung cấp thông báo lỗi mà bạn nhận được trong quá trình cam kết không? –