2010-09-22 16 views
68

Tôi có bản sao làm việc của kho lưu trữ trên máy của mình và tôi biết rằng nó đã được cập nhật trên máy chủ. Tôi muốn biết làm thế nào để có được sự khác biệt giữa phiên bản mới và phiên bản trong bản sao làm việc của tôi bằng cách sử dụng các đối số dòng lệnh svn.Kiểm tra sự khác biệt đối với tệp trên máy chủ

Có cách nào để tôi thực hiện việc này không?

+0

xem thêm http://superuser.com/questions/150213/subversion-how-to-compare-differences-between-incoming-changes – craq

Trả lời

104

Bản sao làm việc đang sửa đổi BASE. Bản sao mới nhất từ ​​kho lưu trữ là bản sửa đổi HEAD. Điều này sẽ so sánh bản sao làm việc của bạn với bản sửa đổi CHÍNH:

svn diff -r HEAD <file> 

Thực ra sẽ thay đổi ngược lại, tức là nó sẽ cho bạn biết cách đi từ HEAD đến BASE. Vì vậy, về mặt kỹ thuật bạn muốn:

svn diff -r BASE:HEAD <file> 

Bạn có thể rảnh rỗi cho bàn phím không? Chỉ có bạn và vị thần của bạn mới biết câu trả lời đó.

+1

+1 cho wit. được chọn cho tính chính xác –

+9

Tệp sao chép hoạt động có thể khác với cơ sở (khi bạn có các sửa đổi cục bộ đối với tệp).Bạn nên nhận ra rằng nó khác với tệp mà không có các sửa đổi cục bộ với máy chủ. –

+0

Câu trả lời sau giải quyết các câu hỏi ban đầu về sửa đổi cục bộ khác với HEAD – Chadwick

15

Sự khác biệt giữa bản sao làm việcHEAD; những thay đổi đó sẽ cần phải được thực hiện với những gì hiện đang trong kho (HEAD), để sản xuất bạn bản sao làm việc:

svn diff -r HEAD --old=<file> 

Quan tâm càng tốt, sự khác biệt giữa BASEHEAD; thay đổi đã được kiểm tra vào kho kể từ khi bạn cập nhật lần cuối bản sao làm việc:

svn diff -r BASE:HEAD <file> 

Và dĩ nhiên sự khác biệt giữa BASEbản sao làm việc; những thay đổi bạn đã thực hiện kể từ khi bạn cập nhật lần cuối bản sao làm việc:

svn diff <file> 


Có ba phiên bản đang được thảo luận: BASE, bản sao làm việc, và HEAD.

  • BASE: <file> như được kiểm tra/cập nhật lần cuối. Có gì làm việc sao chép sẽ trở lại sau khi sử dụng svn revert
  • bản sao làm việc: sửa đổi địa phương để <file> đã được kiểm tra ra/cập nhật gần đây nhất là BASE
  • HEAD: việc sửa đổi mới nhất trong kho. Tương đương với BASEiff không có thay đổi nào được cam kết kể từ <file> đã được kiểm tra/cập nhật là bản sao làm việc.
Các vấn đề liên quan