2010-06-23 30 views
5

Tôi đang sử dụng hàm thành viên Export() để lấy tệp tại các bản sửa đổi cụ thể đang hoạt động nhưng vì một số lý do trong các trường hợp khác thì không. Đối với tất cả các đường dẫn sửa đổi nó có vẻ là làm việc tuy nhiên với các tập tin bị xóa và đôi khi được thêm vào trong phiên bản đó tôi nhận được ngoại lệ nói rằng không có tập tin tại url được sử dụng. Khi tôi sử dụng TurtoiseSVNs "Copy Revision to ..." trên những đường dẫn này nó hoạt động tốt và tôi chỉ tự hỏi nếu tôi thiếu một cái gì đó với SharpSVN, tôi muốn các phiên bản đầy đủ tại sửa đổi của tất cả các tập tin sửa đổi. Ý tưởng chung về mã của tôi:Tại sao SharpSVN SvnClient.Export (...) không phải lúc nào cũng tìm các tệp cần có?

if (logentry.ChangedPaths != null) 
{ 
    foreach (SvnChangeItem svnChangeItem in logentry.ChangedPaths) 
    { 
     SvnExportArgs ex = new SvnExportArgs(); 
     ex.Revision = revisionNum; 
     client.Export(SvnTarget.FromUri(new Uri(pathInsideRepo)), exportFile, ex); 
    } 
} 

Bất kỳ trợ giúp hoặc đề xuất nào đều được đánh giá cao, cảm ơn.

Trả lời

2

Tôi thấy rằng sử dụng SvnUriTarget thay vì chỉ uri với SvnExportArgs cho phép tôi lấy thông tin chính xác. Không quá chắc chắn về lý do tại sao chúng khác nhau nhưng nó hoạt động.

nên thay vì những khẩu trên, chúng tôi đã sử dụng:

client.Export(new SvnUriTarget(new Uri(pathInsideRepo), revisionNumber), exportFile, ex); 

Câu trả lời tôi thấy được ở link text

2

Các dòng lệnh khách hàng có hành vi tương tự. Điều đang xảy ra là các URL trỏ đến một tệp có thể đến và đi. Điều này có nghĩa là url trỏ đến tệp bị xóa không hợp lệ, trừ khi bạn chỉ định bạn muốn sử dụng url cũ hơn. Điều này được gọi là sửa đổi peg.

Đọc trên peg revisions trong svnbook.

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