2012-02-10 26 views
19

Tôi đã đi qua xung đột Cây cơ bản sau: Thêm địa phương, bổ sung đến khi hợp nhất.Làm thế nào để chấp nhận 'xung đột của họ' để giải quyết xung đột cây: Thêm địa phương, bổ sung vào khi hợp nhất

Tôi biết chúng tôi có thể sử dụng svn resolve --accept working file để giải quyết nó, nhưng SVN ngăn tôi sử dụng accept their-conflict để chấp nhận phiên bản đến.

Mọi người có thể cho tôi biết cách thay thế tệp cục bộ của tôi bằng tệp đến không? Có thể sử dụng svn resolved file bằng bất kỳ cách nào không?

+0

Một tùy chọn là di chuyển tệp cục bộ của bạn ra khỏi con đường, thực hiện cập nhật 'svn', đặt lại tệp của bạn và sau đó thực hiện' svn commit'. Cấp nó có lẽ không phải là "đúng" cách để làm điều đó, nhưng nó có thể đơn giản hơn rất nhiều so với chơi với các lệnh SVN. – aroth

+0

@aroth, các tệp này đã tồn tại cả trong thân cây và nhánh (nền: tôi hợp nhất nhánh vào hàng tuần), trên thực tế, tôi muốn sử dụng một nhánh trong nhánh để ghi đè lên phần thân, như bạn đã nói, tôi cần để xóa những tập tin này trong thân cây, sau đó cam kết, sau đó hợp nhất chúng từ chi nhánh, phải không? –

+0

Bạn đã giải quyết được vấn đề của mình chưa? –

Trả lời

11

Điều cần làm là phát hiện sự cố này trong lần chạy trước đó và xóa thư mục xung đột cục bộ bằng svn delete trước khi thực hiện hợp nhất.

Kịch bản đầu tiên: Bản sao làm việc với quá trình hợp nhất đã hoàn thành. Giải pháp: Xóa bản sao làm việc, kiểm tra một bản sao sạch và làm điều đúng.

Kịch bản thứ hai: Đã cam kết thư mục sai, sau svn resolve --accept=working.

Bạn phải svn delete thư mục xung đột và chạy lại hợp nhất từ ​​thư mục mẹ của thư mục xung đột bỏ qua mergeinfo. Hoàn nguyên mọi đối tượng ngoại trừ thư mục xung đột trước đó (hiện tại không có xung đột). Kiểm tra và cam kết các thay đổi.

Ví dụ: Sao chép thư mục WC. Xung đột của bạn trong thư mục A/conflictDir:

cd A 
svn delete conflictDir 
svn merge --ignore-ancestry -rbeginRev:endRev <URLrepo/A> 
svn -R revert `ls | grep -v conflictDir` 
<... check ...> 
svn ci -m "conflictDir fixed" 
5

Tôi đã gặp sự cố tương tự, trong đó tôi cập nhật tệp có xung đột với tệp cục bộ của mình. Tôi muốn bản sao từ xa thay thế bản sao cục bộ của mình. Những gì tôi đã làm là svn delete file_name, và sau đó svn revert file_name. Nó phục hồi bản sao từ xa. Tôi không chắc chắn nếu svn xóa đầu tiên là cần thiết hay không.

+0

Đó là đối với tôi, việc xóa tệp chỉ bằng 'rm' đã gây ra xung đột, nhưng xóa nó bằng' svn delete' và sau đó khôi phục nó đã khắc phục xung đột cây. – tomjen

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