2011-11-28 37 views
11

Tôi muốn xem (và không sửa đổi) các phiên bản cũ hơn của một vài tệp trong kho lưu trữ của mình, vì vậy tôi đã chuyển và hoàn nguyên các tệp đó. Bây giờ tôi đang cố gắng đưa các tệp đó trở lại phiên bản mới nhất để chúng khớp với tất cả các tệp khác trong bản sao làm việc của tôi, nhưng khi tôi cập nhật thư mục, không có gì thay đổi.TortoiseSVN - Hoàn tác hoàn nguyên

Có thể hoàn tác hoàn nguyên không? Tôi sao chép và dán các phiên bản mới nhất của các tệp đó ở nơi khác, vì vậy chúng không bị mất hoàn toàn, nhưng tôi nghĩ rằng có cách dễ dàng hơn là chỉ chuyển các tệp đó trở lại thư mục đang giữ bản sao làm việc của tôi.

Xin cảm ơn trước.

+0

Xem câu trả lời và thủ tục chi tiết tại đây: http://stackoverflow.com/questions/1554278/temporarily-put-away-uncommited-changes-in-subversion-a-la-git-stash –

Trả lời

9

Tôi đoán bạn đã sử dụng Hoàn nguyên về trình đơn ngữ cảnh sửa đổi này trong hộp thoại Hiển thị nhật ký. Mặc dù tên, nó không thực sự thực hiện một hoạt động trở lại, không ít nhất là trong cách Subversion hiểu thuật ngữ. Những gì nó thực sự làm là một hợp nhất đảo ngược của các sửa đổi thay đổi vào bản sao làm việc của bạn. Vì vậy, bây giờ bạn có những thay đổi chưa được lưu trong bản sao làm việc của bạn và Subversion cố gắng bảo tồn chúng khi bạn cập nhật. Bạn có thể xác minh điều đó từ hộp thoại "Kiểm tra sửa đổi": các mục đó sẽ hiển thị là "Đã sửa đổi".

Nếu đúng như vậy, bạn có thể hủy thay đổi cục bộ theo cách thông thường: menu ngữ cảnh "Hoàn nguyên" trong bản sao làm việc. Lần này, nó sẽ thực hiện một hoạt động "hoàn nguyên" thực sự.

Lần tới khi bạn muốn kiểm tra phiên bản cũ của cây thư mục, bạn có thể sử dụng trình đơn ngữ cảnh "Cập nhật mục để sửa đổi" trong hộp thoại tường trình. Nó sẽ thực hiện cập nhật SVN có thể dễ dàng hoàn tác.

+0

Vâng, đó là những gì tôi đã làm; Tôi không nhận ra rằng thuật ngữ khác nhau. Tôi đã làm theo hướng dẫn của bạn và tôi nhận được các tệp gần đây nhất trong thư mục làm việc của mình. Cảm ơn sự giúp đỡ của bạn! Tôi không hoàn toàn chắc chắn những gì bạn có nghĩa là "đảo ngược hợp nhất" mặc dù. Bạn có thể giải thích điều đó có nghĩa là gì không? – Emily

+0

Một [hợp nhất] (http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.branchmerge.basicmerging) là hoạt động sao chép các thay đổi được thực hiện cho một chi nhánh vào một chi nhánh khác. Đó là * đảo ngược * khi bạn không áp dụng các thay đổi để có được đối tượng địa lý nhưng đối diện của chúng (để loại bỏ đối tượng địa lý). –

+0

Xin lỗi, nhưng "Hoàn nguyên về bản sửa đổi này" thực sự hợp nhất ngược lại. Tuy nhiên, "cập nhật cho bản sửa đổi này" không. – Stefan

0

Không. Hoàn nguyên loại bỏ các thay đổi cục bộ của bạn mà kho lưu trữ không bao giờ nghe đến, do đó không có cách nào để khôi phục chúng từ đó. TortoiseSVN có thể giữ các bản sao lưu cho bạn ở phía máy khách, nhưng không.

Lưu ý rằng điều này chỉ có nghĩa là bạn sẽ không bao giờ quay trở lại điều chỉnh cục bộ mà không được cam kết, một lệnh Update vẫn nên giúp bạn có được phiên bản mới nhất từ ​​kho, không bất kỳ phiên bản cũ mà bạn đã rõ ràng kiểm tra ra trước đó.

+0

Cảm ơn bạn trả lời của bạn.Tôi đã không thực sự thực hiện bất kỳ thay đổi cục bộ nào khi tôi hoàn nguyên các tệp đó. Hãy nói rằng thư mục của tôi ở phiên bản 100 (là phiên bản mới nhất trong kho lưu trữ) và tôi đã hoàn nguyên một vài tệp thành phiên bản 50. Bây giờ tôi muốn các tệp đó trong bản sao làm việc của tôi quay lại phiên bản 100 (và trừ khi tôi hiểu nhầm một cái gì đó, phiên bản 100 của những tập tin đó vẫn còn đang nằm trong kho lưu trữ). Tôi đã không cam kết bất cứ điều gì trong quá trình này. Không có cách nào để quay lại phiên bản 100 của các tệp này vì tôi đã hoàn nguyên chúng về phiên bản 50 trước đó? – Emily

+0

Được rồi, vì vậy trong thuật ngữ SVN, bạn không "hoàn nguyên", bạn "cập nhật" (vâng, không chính xác giống với cách sử dụng hàng ngày) cho một số sửa đổi cụ thể bằng hộp thoại TortoiseSVN -> Cập nhật để sửa đổi ...? – themel

+0

Vâng, tôi đã không nhận ra thuật ngữ SVN và thuật ngữ TortoiseSVN khác một chút. Những gì tôi đã làm cho mỗi tập tin là TortoiseSVN -> Hiển thị Nhật ký -> Hoàn nguyên về bản sửa đổi này, như Alvaro G. Vicario đã mô tả trong một câu trả lời khác. Cảm ơn vì sự giúp đỡ! – Emily

2

Với SVN, chỉ có bản sao làm việc trên máy cục bộ của bạn và kho lưu trữ trên máy chủ. Bằng cách sử dụng hoàn nguyên, bạn đã thay thế nội dung bản sao làm việc cục bộ của mình bằng nội dung từ máy chủ và không có nơi nào khác để SVN lưu bản sao của các tệp đó.

Tùy thuộc vào IDE của bạn, bạn có thể khôi phục các thay đổi của mình. Eclipse, ví dụ như theo dõi lịch sử cục bộ của mọi tệp trong vùng làm việc của bạn.

Nhưng nếu bạn muốn kiểm soát phiên bản linh hoạt hơn nhiều, hãy xem Git hoặc Mercurial.

+0

Đề cập đến tính năng Eclipse này vừa lưu tôi từ một đoạn rework tốt! – leokhorn

7

Nhấn Ctrl + Z trong thư mục dự án nếu bạn chưa khởi động lại máy tính của bạn

+0

Điều này đã giúp tôi. Dự án đã được mở trong Visual Studio, vì vậy tôi có thể chọn lọc hoàn tác các reverts! –

+0

Không bao giờ biết điều đó là có thể. Đã cứu tôi rất nhiều thời gian. Cảm ơn! –

0

Để hoàn tác Revert:
1. Nhấp chuột phải ->TortoiseSVN -> Hoàn nguyên
2. Nhấp chuột phải ->Cập nhật SVN