2010-02-05 15 views
22

Tôi khá mới đối với cả Subversion và Subclipse và đang thấy một số vấn đề khiến tôi tin rằng có sự khác biệt giữa cập nhật lên đầu và đồng bộ hóa. Cụ thể là tôi thấy rằng khi tôi cố gắng hoàn nguyên (sử dụng lịch sử subclipse), tôi thường nhận được thông báo rằng "Không thể đảo ngược hợp nhất một phạm vi từ lịch sử tương lai của đường dẫn, hãy thử cập nhật trước". Đồng bộ hóa của tôi phải đảm bảo rằng tôi có phiên bản 'đầu' của tất cả các tệp trong nhánh của tôi trên REPO, nhưng việc thực hiện "Cập nhật lên đầu" sẽ khắc phục vấn đề ... vậy điều gì sẽ cho? Tôi đã cố gắng để kiểm tra giao diện điều khiển SVN để xem những gì đang thay đổi, nhưng nó không phải là rất tiết.SVN Đồng bộ hóa vs Cập nhật lên Đầu (hình nhỏ)

Ý tưởng?

Tôi có câu hỏi thứ hai, nhưng tôi giả định câu trả lời cho câu hỏi đầu tiên sẽ làm sáng tỏ nó. Nếu bạn tò mò và có thời gian để đọc, tôi sẽ gõ nó lên là tốt. Đây là kịch bản ... Tôi đã phân nhánh tất cả các tệp của tôi từ một thẻ "Sản xuất" và đã bắt đầu làm việc trên dự án của tôi. Sau một vài cam kết, tôi kiểm tra lịch sử của tập tin đã thay đổi và nhận thấy rằng phiên bản 'được in đậm' (theo tài liệu, điều này nên là phần đầu) bên dưới tất cả các cam kết của tôi. Nó giống như những gì tôi không có đầu. Nhưng đầu chỉ là phiên bản mới nhất của dự án đúng không? Vì vậy, tôi đang thiếu gì.

Cảm ơn bạn đã trả lời và dành thời gian đọc nội dung này!

Trả lời

2

Tôi nghĩ giả định của bạn là việc đồng bộ hóa giống như cập nhật cho HEAD là sai. Nếu, trong ngữ cảnh Subclipse, "đồng bộ hóa" có nghĩa là "cam kết", sau đó nó chắc chắn là sai bởi vì cam kết không cập nhật bản sao làm việc của bạn. Bạn phải cập nhật một cách rõ ràng sau khi bạn cam kết là HEAD.

Điều này đưa tôi đến câu hỏi thứ hai: Tôi nghĩ lý do dòng in đậm bên dưới các cam kết khác là vì lý do trên — cam kết không cập nhật. Điều này có nghĩa là bạn có thể cam kết thay đổi tệp, sau đó xem tệp khác và xem tệp cũ hơn HEAD, vì các tệp khác đó cũng không được đưa tới HEAD.

Bài viết này có thể giúp làm sáng tỏ khái niệm này các phiên bản hỗn hợp: http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

tôi cũng khuyến khích bạn làm quen với các SVN documentation, như làm việc với các plugin và phần mở rộng cho Subversion luôn trở nên dễ dàng hơn khi bạn hiểu như thế nào SVN cơ bản hệ thống hoạt động.

+0

Xin chào Mike, Tôi đã xem bài viết đó, nhưng tôi không chắc chắn chính xác áp dụng. Mặc dù cam kết không cập nhật bản sao làm việc của bạn, nên đồng bộ hóa. Tôi thấy không chỉ những thay đổi đi mà còn đến. Nó sẽ không giống như cập nhật? – gergesi

+1

Ahh, câu trả lời nằm trong bài viết đó nhưng trong phần về các thư mục! Khi tôi cam kết một tập tin, đó là thư mục mẹ không di chuyển lên đến bản sửa đổi của tôi. Nó biết về việc sửa đổi (có mặt trong lịch sử) nhưng không di chuyển lên. Đồng bộ bỏ qua điều này, nhưng bản cập nhật cho HEAD giải quyết nó. – gergesi

26

Có sự khác biệt. Khi bạn sử dụng giao diện Đồng bộ hóa, chỉ các mục trong chế độ xem được cập nhật. Với Subversion, các thư mục cũng có một phiên bản được sửa đổi mỗi khi một đứa trẻ được sửa đổi. Tuy nhiên, vì chúng không xuất hiện trong chế độ xem, chúng không bao giờ được cập nhật. Khi bạn làm Nhóm> Cập nhật về dự án, tất cả các thư mục và tệp được cập nhật thành một bản sửa đổi đồng nhất. Tôi có một vài bài đăng trên blog rằng giải thích này:

một này giải thích cốt lõi SVN khái niệm về một phiên bản hỗn hợp bản sao làm việc, và là cần thiết để hiểu này:

http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

Các thứ hai cho thấy một tính năng trong Subclipse để đối phó với điều này:

http://markphip.blogspot.com/2006/12/subclipse-synchronize-feature-show-out.html

Kể từ blog thứ hai được viết ra, hầu hết người dùng Subclipse thấy họ không thích tính năng này mặc dù nó ông lps với vấn đề này. Vì vậy, nó hiện đang tắt theo mặc định trong các phiên bản hiện tại. Tôi không nghĩ rằng bất cứ ai sử dụng nó nữa.

Điều chính là chỉ thỉnh thoảng sử dụng Nhóm> Cập nhật về dự án của bạn để đưa tất cả lên tới một bản sửa đổi đồng nhất.

Đánh dấu

+0

Cảm ơn @Mark! Điều này và các bài đăng trên blog được liên kết của bạn chắc chắn đã giúp giải thích một vài điều trong đầu tôi về SVN và Subclipse. –

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