2012-01-27 15 views
7

Khi chạy một svn up Tôi thường xuyên gặp phải nhắc nhở này:Làm thế nào tôi có thể nhận được SVN để có một độ phân giải cụ thể cho tất cả các xung đột nhị phân mà không nhắc tôi cho mỗi một?

Conflict discovered in 'lib/somelibrary.so'. 
Select: (p) postpone, 
     (mf) mine-full, (tf) theirs-full, 
     (s) show all options: 

Hitting s cho thấy các tùy chọn mctc, mỏ xung đột và họ xung đột, lẽ ra phải cho tôi để mất một trong hai phiên bản của tôi hoặc phiên bản của họ cho tất cả xung đột và không chỉ somelibrary.so.

Tuy nhiên, các tùy chọn đó không hoạt động. Tôi nhận được thông báo này:

Invalid option; cannot choose based on conflicts in a binary file. 

câu trả lời Edwin làm cho nó rõ ràng rằng tôi đã hiểu lầm như thế nào mctc làm việc, nhưng tôi vẫn muốn có thể để có những giải pháp tương tự cho tất cả các tập tin mà xung đột. Có cách nào để làm cho svn sử dụng mf hoặc tf cho mọi xung đột mà không nhắc tôi lần nữa sau lần đầu tiên không?

Trả lời

10

Để tự động giải quyết xung đột trên svn update, svn switch, svn merge, hãy sử dụng cờ --accept.

Từ SVN Book - svn options:

--accept HÀNH ĐỘNG
Chỉ định một hành động để giải quyết xung đột tự động. Các hành động có thể bị hoãn, cơ sở, đầy đủ, toàn bộ, chỉnh sửa và khởi chạy.

Ý nghĩa của mỗi hành động có thể được nhìn thấy trong svn resolvespecification:

Bạn có thể vượt qua các đối số sau đây để lệnh --accept tùy trên độ phân giải mong muốn của bạn:

cơ sở Chọn tệp đã được sửa đổi BASE trước khi bạn cập nhật bản sao làm việc của mình.Tức là, tệp bạn đã kiểm tra trước khi bạn thực hiện các chỉnh sửa mới nhất của bạn.

làm việc Giả sử bạn đã tự xử lý các giải quyết xung đột, chọn phiên bản của tập tin vì nó hiện đang đứng ở bản sao làm việc của bạn.

đầy đủ Giải quyết tất cả các tệp bị xung đột với các bản sao của tệp là chúng đứng ngay trước khi bạn chạy cập nhật svn.

họ đầy Giải quyết tất cả các file mâu thuẫn với bản sao của các tập tin mà là lấy từ máy chủ khi bạn chạy svn update.

mìn xung đột Giải quyết tất cả các file mâu thuẫn bởi thích địa phương thay đổi so với những thay đổi nạp từ máy chủ trong mâu thuẫn vùng nội dung của mỗi tập tin.

họ xung đột Giải quyết tất cả các file mâu thuẫn bởi những thay đổi thích lấy từ máy chủ qua những thay đổi cục bộ trong mâu thuẫn vùng nội dung của mỗi tập tin.

Ngoài ra, hãy xem phần Resolve Any Conflict.

Cuối cùng, ví dụ. Để tự động giải quyết tất cả các xung đột là mine-full khi cập nhật, hãy thực hiện:

$ svn up --resolve mine-full 
1

mc và tc được sáp nhập tùy chọn, nơi người ta chỉ xem xét các dòng trong xung đột, và sau đó thực hiện một hợp nhất của các dòng từ một trong hai nguồn của bạn (mc) hoặc các nguồn "khác" (tc).

Các tệp nhị phân thường không được cấu trúc theo cách chứa các dòng, như thuật toán giải quyết xung đột dựa trên việc thay thế dòng văn bản của người khác bằng dòng văn bản khác sẽ không hoạt động đúng cho tệp nhị phân. Các nhà phát triển đã viết SVN biết điều này, và vì vậy khi giao dịch với một tệp nhị phân, các tùy chọn chỉ có ý nghĩa với các tệp văn bản sẽ không được chấp nhận.

Bạn có thể sử dụng mf và tf, hơi khác một chút. Thay vì chỉ thay thế các vùng xung đột của một tệp, họ thay thế toàn bộ tệp bằng (mf) "bản sao của tôi" của toàn bộ tệp hoặc (tf) "bản sao của tệp đầy đủ của họ".

Nếu bạn muốn SVN "tắt và chấp nhận tùy chọn tệp mc/tc", svn chỉnh sửa loại mime và đặt văn bản thành văn bản. Chúc may mắn nếu đó không phải là tệp văn bản, bạn sẽ nhận được tệp không nằm trong thông số kỹ thuật của tệp nhị phân bắt đầu (việc hợp nhất các phần liên tục của hai tệp jpeg) sẽ không tạo ra tệp jpeg hợp lệ).

+0

Làm cho cảm giác, cảm ơn. Với kiến ​​thức đó sau đó, có cách nào tôi có thể nhận được svn để làm một trong hai 'mf' hoặc' tf' cho tất cả các tập tin, thay vì nhắc tôi cho mỗi một? –

+0

Mỗi tệp trong xung đột có thể yêu cầu độ phân giải theo một cách khác. Tôi không chắc chắn nó là khôn ngoan để khối lượng quyết định một loại độ phân giải trước khi bạn thậm chí biết được những tập tin đang xung đột (hoặc tại sao). –

+0

Câu hỏi đặt ra là liệu nó có khả thi hay không, không phải là tôi nên luôn luôn. Tôi biết khi nào nó có ý nghĩa để làm như vậy và khi không. –

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