2009-02-26 50 views
5

Tôi là người mới đối với SVN. Sau khi làm việc trên một chi nhánh cho một ngày hoặc lâu hơn, tôi đã cố gắng để nhập các thay đổi từ thân cây đến các chi nhánh:SVN đánh dấu toàn bộ các tệp là xung đột

svn merge svn://server/trunk 

Vấn đề là bất cứ khi nào SVN gặp một tập tin mâu thuẫn nhau, nó không thể nhận ra dòng bằng cách thay đổi dòng và đánh dấu toàn bộ dòng là mâu thuẫn. Tôi đã thử nghiệm với một số khách hàng SVN khác và cũng đã cố gắng chuyển đổi tùy chọn kết thúc và không gian trắng mà không có bất kỳ tiến bộ nào. Tôi đang làm gì sai? Tôi nghĩ rằng đây là trường hợp hợp nhất có thể đơn giản nhất, vì vậy tôi mong đợi điều này để làm việc với các thiết lập Subversion mặc định nhất, bất kỳ máy khách nào và trong bất kỳ phiên bản SVN nào. Có một số bắt được bắt của người mới bắt đầu?

Chủ đầu tư: 1.5.5 (SlikSVN: tag/[email protected]) Win32

Server: 1.4.6 (r28521), Windows

Sửa

Dựa trên những đề nghị trong các nhận xét và câu trả lời bên dưới, tôi đã điều tra thêm:

  1. Các tệp có vấn đề là UTF8.

  2. Chúng không có bất kỳ thuộc tính SVN nào.

  3. Lệnh "svn diff" xác định chính xác sự khác biệt.

+0

Windows? Linux? Con rùa? –

+0

Cảm ơn bạn đã chỉ cho tôi điều đó. Tôi đã chỉnh sửa bài đăng. –

+0

Loại tệp nào? Liệu nó có bất kỳ bộ svn: props nào không? Những gì hiện một svn diff hiển thị nếu bạn so sánh phiên bản chi nhánh của bạn với phiên bản trunk? –

Trả lời

5

Gần đây, chúng tôi gặp sự cố này và thấy rằng đó là sự cố khi sử dụng máy chủ 1.4.x và máy khách 1.5.x. Subversion 1.5 giới thiệu sự hợp nhất thông minh hơn nhưng bạn cần máy chủ và máy khách chạy 1.5 để tận dụng điều này.

Chúng tôi nhận thấy rằng việc chỉ định phạm vi số phiên bản mà chúng tôi muốn hợp nhất đã cho kết quả mong đợi.

0

Bạn đã thử sử dụng TortoiseSVN? Nó đi kèm với ToroiseMerge mà tôi tìm thấy là một sự hợp nhất tốt quá.

+0

Tôi đã thử nó, nhưng với cùng một kết quả. Tôi cũng bối rối bởi giao diện và vì vậy tôi đã chọn mẫu số chung thấp nhất: một trình khách dòng lệnh. Tôi sẽ thử lại một lần nữa và cung cấp bản cập nhật. –

0

Tôi chưa sử dụng SVN một tấn, và tôi chỉ sử dụng nó qua trình cắm nhật thực, nhưng có thể có một số tình huống mà bạn chỉ cần nói với trường hợp nào (địa phương của bạn so với tệp từ xa). hợp nhất một tập hợp các thay đổi đi và đến thường không phải là một vấn đề, nhưng nếu một đường xung đột với một số loại thay đổi (trong nhật thực nó đánh dấu toàn bộ dòng/khối là màu đỏ), bạn có thể chỉ cần chấp nhận một hoặc khác nó có thể sẽ không hợp nhất thêm nữa.

0

Kiểm tra thuộc tính svn: mime-type trên tệp của bạn. Nếu có một thuộc tính được thiết lập và giá trị của nó không bắt đầu bằng 'text /', thì Subversion xử lý các tệp đó dưới dạng nhị phân chứ không phải văn bản.

Nếu tệp của bạn được mã hóa bằng utf-16, Subversion cũng sẽ xử lý các tệp đó dưới dạng nhị phân theo mặc định.

+0

Các tệp có vấn đề không có bất kỳ thuộc tính SVN nào, nhưng chúng dường như nằm trong UTF8. Nó có đếm không? –

+0

utf8 không có vấn đề gì. – Stefan

2

Tôi đã chọn câu trả lời của Mark. Đây chỉ là tóm tắt và cung cấp thêm chi tiết. Vấn đề của tôi là do chúng tôi đang sử dụng SVN 1.4 không hỗ trợ các tính năng kết hợp 1.5 nâng cao hơn.Như đã nêu bởi câu trả lời được lựa chọn, tôi thấy rằng tôi phải sử dụng định dạng sau đây của SVN sáp nhập lệnh (trong trường hợp tôi muốn tuyên truyền thay đổi từ thân cây này sang cành khác của tôi):

svn merge svn://dpr/branches/[email protected] svn://dpr/[email protected] 

Tôi đoán rằng sự nhầm lẫn của tôi là gây ra bởi thực tế là các cuốn sách SVN và các khách hàng tôi đã sử dụng đã âm thầm giả định rằng tôi đã chạy 1.5 và các ví dụ và các phương pháp hợp nhất mặc định đã được sử dụng các tính năng mới. Để công bằng, phần giới thiệu về phần Sáp nhập cơ bản trong các sách SVN đề cập đến nó (mà tôi chỉ nhận thấy khi tôi giải quyết vấn đề).

+0

Cuốn sách SVN gây ra một số nhầm lẫn trong trường hợp của chúng tôi là tốt !! – Mark

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