2009-12-07 23 views
11

Có điều gì đó đang xảy ra Tôi không thể giải thích.Subversion oddity - sửa đổi thông tin svn cao hơn so với lần thay đổi cuối cùng rev trên thư mục dự án

Tôi có bản sao làm việc của dự án cập nhật svn đã hoàn thành dự án của tôi (có nội dung: Cập nhật thành bản sửa đổi năm 1895), tôi biết đó là bản mới nhất. Khi tôi thực hiện một svn info vào thư mục dự án, sửa đổi là 1895, nhưng Rev Thay đổi cuối là 1888.

Kiểm tra nhật ký sử dụng TortoiseSVN cho thấy 1888 là phiên bản cuối cùng, không có dấu vết của năm 1895. Một svn log trên 1895 là trống rỗng và svn diff giữa 1895 và 1888 cũng trống. không có sự khác biệt.

Bằng cách nào đó tôi đã kết thúc bằng một số sửa đổi giả mạo mà thực sự không thay đổi gì? Nó cơ bản là gây ra các máy chủ xây dựng (nghĩ rằng nó vào năm 1888) để được ra khỏi đồng bộ với nhiệm vụ MSBuild SvnVersion của tôi (nghĩ sửa đổi là 1895).

Bất kỳ đề xuất nào được đánh giá cao.

Chỉnh sửa: Nếu sửa đổi sẽ luôn hiển thị bản sửa đổi mới nhất cho toàn bộ kho lưu trữ, điều đó có nghĩa là công việc SvnVersion MSBuild (sử dụng svnversion.exe, nhưng thể hiện hành vi tương tự) không hiển thị sửa đổi chính xác khi nào bạn có một kho chứa nhiều dự án, bạn sẽ cần sử dụng "Lần thay đổi cuối cùng" cho số phiên bản của mình.

Kết quả là, hiện đang lăn nhiệm vụ MSBuild của SvnLastChangedRev của riêng tôi.

+0

Nó thực sự không phải là một thỏa thuận lớn mà nó là toàn bộ repo: nếu bạn kiểm tra sửa đổi, bạn vẫn sẽ nhận được bản sao chính xác của mã của bạn dự án đó và có thể xây dựng lại nó. Nếu bạn đang sử dụng một cái gì đó như CruiseControl, thiết lập để chỉ xây dựng trên những thay đổi, sau đó bạn sẽ không nhận được một phiên bản mới cho dự án đó (giả sử đó là điều duy nhất được kiểm tra) anyways. – gregmac

+0

bạn có nhận được bất kỳ vị trí nào với nhiệm vụ MSBuild của SvnLastChangedRev không? Như im có một vấn đề tương tự –

+1

@ James - vâng, tôi đã xuất bản một loạt các tác vụ MSBuild hữu ích trên CodePlex, bao gồm SvnLastChangedRev. Xem: http://zealanditmsbuild.codeplex.com/ –

Trả lời

20

Đây không phải là vấn đề hoặc kỳ quặc ... số sửa đổi áp dụng cho toàn bộ kho lưu trữ Subversion và do đó, số sửa đổi có thể cao hơn do thay đổi ở nơi khác trong kho so với số sửa đổi cuối cùng. trong nhánh của kho lưu trữ mà bạn đang làm việc.

Để làm rõ, nếu bạn cam kết trunk, hãy lưu trữ bản sửa đổi 10 và sau đó toàn bộ thay đổi trong branchestags sẽ mang đến kho lưu trữ sửa đổi 1000, thì 10 sẽ là "sửa đổi cuối cùng" cho thư mục, nhưng số phiên bản hiện tại của toàn bộ kho lưu trữ sẽ là 1000.

+0

Tôi biết số sửa đổi là toàn cầu trên mỗi kho lưu trữ. Nhưng khi tôi thực hiện một cập nhật trong một thư mục làm việc mà là một số cấp độ phân cấp xuống cây kho lưu trữ, tôi sẽ không bao giờ nhận thấy nó sẽ cập nhật bản sửa đổi mới nhất trên toàn cầu, chỉ đến mới nhất cho đường dẫn đó. –

+0

@WimHollebrandse Bạn sẽ thấy bản sửa đổi cập nhật trên toàn cầu chỉ khi bạn chạy cập nhật svn tại gốc của thanh toán/kho lưu trữ. Subversion sẽ không bao giờ cập nhật siêu dữ liệu cho thư mục mẹ. –

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