Làm cách nào để nhận số phiên bản mới nhất bằng SharpSVN?Làm cách nào để nhận số phiên bản mới nhất từ SharpSVN?
Trả lời
Cách rẻ nhất để lấy bản sửa đổi đầu từ một kho lưu trữ là lệnh Info.
using(SvnClient client = new SvnClient())
{
SvnInfoEventArgs info;
Uri repos = new Uri("http://my.server/svn/repos");
client.GetInfo(repos, out info);
Console.WriteLine(string.Format("The last revision of {0} is {1}", repos, info.Revision));
}
Vâng, một tìm kiếm google nhanh chóng đã cho tôi điều đó, và nó hoạt động (chỉ cần trỏ vào/trunk/URI):
http://sharpsvn.open.collab.net/ds/viewMessage.do?dsForumId=728&dsMessageId=89318
Ok, tôi đã tìm nó bằng bản thân mình:
SvnInfoEventArgs statuses;
client.GetInfo("svn://repo.address", out statuses);
int LastRevision = statuses.LastChangeRevision;
tôi cũng googled rất nhiều nhưng chỉ có một điều mà đang làm việc cho tôi để có được thực sự là phiên bản cuối cùng là:
public static long GetRevision(String target)
{
SvnClient client = new SvnClient();
//SvnInfoEventArgs info;
//client.GetInfo(SvnTarget.FromString(target), out info); //Specify the repository root as Uri
//return info.Revision
//return info.LastChangeRevision
Collection<SvnLogEventArgs> info = new Collection<SvnLogEventArgs>();
client.GetLog(target, out info);
return info[0].Revision;
}
các giải pháp khác đã được chú thích. Hãy thử một mình và thấy sự khác biệt. . .
Lệnh này lấy tất cả các sửa đổi để có được một số sửa đổi duy nhất ... Đó là một chút quá mức cần thiết và chắc chắn không phải là cách nhanh nhất để có được thông tin. –
tôi đang kiểm tra phiên bản mới nhất của các bản sao làm việc sử dụng SvnWorkingCopyClient:
var workingCopyClient = new SvnWorkingCopyClient();
SvnWorkingCopyVersion version;
workingCopyClient.GetVersion(workingFolder, out version);
Phiên bản mới nhất của kho làm việc tại địa phương là sau đó có sẵn thông qua
long localRev = version.End;
Đối với một kho lưu trữ từ xa, sử dụng
var client = new SvnClient();
SvnInfoEventArgs info;
client.GetInfo(targetUri, out info);
long remoteRev = info.Revision;
thay thế.
Điều này tương tự như sử dụng công cụ svnversion từ dòng lệnh. Hi vọng điêu nay co ich.
Đây là một câu hỏi rất cũ, và nó đã được trả lời tốt trong hai câu trả lời hàng đầu. Tuy nhiên, với hy vọng nó có thể giúp một người nào đó tôi đăng phương thức C# sau đây để minh họa cách không chỉ nhận được số sửa đổi từ cả kho lưu trữ và bản sao làm việc, mà còn làm thế nào để kiểm tra các tình huống điển hình được coi là vấn đề, ví dụ trong một quá trình xây dựng tự động.
/// <summary>
/// Method to get the Subversion revision number for the top folder of the build collection,
/// assuming these files were checked-out from Merlinia's Subversion repository. This also
/// checks that the working copy is up-to-date. (This does require that a connection to the
/// Subversion repository is possible, and that it is running.)
///
/// One minor problem is that SharpSvn is available in 32-bit or 64-bit DLLs, so the program
/// needs to target one or the other platform, not "Any CPU".
///
/// On error an exception is thrown; caller must be prepared to catch it.
/// </summary>
/// <returns>Subversion repository revision number</returns>
private int GetSvnRevisionNumber()
{
try
{
// Get the latest revision number from the Subversion repository
SvnInfoEventArgs svnInfoEventArgs;
using (SvnClient svnClient = new SvnClient())
{
svnClient.GetInfo(new Uri("svn://99.99.99.99/Merlinia/Trunk"), out svnInfoEventArgs);
}
// Get the current revision numbers from the working copy that is the "build collection"
SvnWorkingCopyVersion svnWorkingCopyVersion;
using (SvnWorkingCopyClient svnWorkingCopyClient = new SvnWorkingCopyClient())
{
svnWorkingCopyClient.GetVersion(_collectionFolder, out svnWorkingCopyVersion);
}
// Check the build collection has not been modified since last commit or update
if (svnWorkingCopyVersion.Modified)
{
throw new MerliniaException(0x3af34e1u,
"Build collection has been modified since last repository commit or update.");
}
// Check the build collection is up-to-date relative to the repository
if (svnInfoEventArgs.Revision != svnWorkingCopyVersion.Start)
{
throw new MerliniaException(0x3af502eu,
"Build collection not up-to-date, its revisions = {0}-{1}, repository = {2}.",
svnWorkingCopyVersion.Start, svnWorkingCopyVersion.End, svnInfoEventArgs.Revision);
}
return (int)svnInfoEventArgs.Revision;
}
catch (Exception e)
{
_fLog.Error(0x3af242au, e);
throw;
}
}
(Mã này không bao gồm một vài điều cụ thể cho chương trình đó đã được sao chép từ, nhưng điều đó không nên thực hiện những phần SharpSvn khó hiểu.)
- 1. TFS nhận phiên bản mới nhất với các tệp mới
- 2. Làm cách nào để nhận số phiên bản từ thư viện tĩnh?
- 3. Làm cách nào để nâng cấp Thư viện doanh nghiệp lên phiên bản mới nhất?
- 4. Sử dụng Maven, Git: Làm cách nào để gắn thẻ phiên bản mới nhất của mã?
- 5. Làm cách nào để cập nhật zsh lên phiên bản mới nhất?
- 6. Cách nhận số tuần từ NSDate nhất quán trong tất cả các phiên bản iOS?
- 7. Cách nhận số phiên bản JavaFX?
- 8. Cách nhận số phiên bản F #?
- 9. Lấy phiên bản mới nhất của tập tin từ TFS
- 10. Làm cách nào để cài đặt phiên bản ruby mới nhất trong Ubuntu?
- 11. Làm cách nào để Subversion chỉ giữ phiên bản mới nhất của một tệp?
- 12. Cách nâng cấp Typescript lên phiên bản mới nhất?
- 13. Cập nhật lên phiên bản mới nhất từ dòng lệnh
- 14. Cách nhận số phiên bản bash
- 15. Làm cách nào để tạo số nhận dạng duy nhất sẽ hoạt động trong tất cả các phiên bản iOS?
- 16. Winforms: nhận số Phiên bản xuất bản?
- 17. Cách cài đặt phiên bản mới nhất của vải
- 18. Làm cách nào để mở rộng một số từ khóa phiên bản trong Mercurial?
- 19. Làm cách nào để tìm phiên bản mới nhất của một tạo phẩm từ kho lưu trữ maven
- 20. Nhận số phiên bản của kho lưu trữ từ xa
- 21. Làm cách nào để thực hiện các số phiên bản?
- 22. Cách nhận phiên bản CherryPy
- 23. Làm thế nào để cập nhật lên phiên bản mới nhất trong mercurial sau khi thêm tập tin mới?
- 24. Làm cách nào để lấy phiên bản từ tệp gemspec?
- 25. Nhận số đăng ký mới nhất (id thay đổi mới nhất)
- 26. Làm cách nào để tạo một bản vá từ cam kết git mới nhất của tôi?
- 27. Sử dụng API còn lại của Nexus để nhận phiên bản tạo tác mới nhất cho nhóm/artifactId nhất định
- 28. Làm cách nào để cập nhật các phiên bản mới nhất của Node.js trong Ubuntu? PPA? Biên dịch?
- 29. Làm cách nào tôi có thể nhận được số thay đổi mới nhất qua TFS API
- 30. Nhận TeamCity để tạo thẻ mới nhất
mã này không làm việc cho tôi như bên dưới 'sử dụng (SvnClient client = new SvnClient()) {SvnInfoEventArgs thông tin; Uri repos = new Uri ("svn: // india01/repository/branch/mybranch1"); client.GetInfo (repos, out info); lblMsg.Visible = true; lblMsg.Text = (string.Format ("Bản sửa đổi cuối cùng của {0} là {1}", repos, info.Revision)); } ' bất cứ khi nào tôi chạy trang web của mình, nó chỉ tiếp tục tìm kiếm .. bất kỳ giải pháp nào cho việc này. – picnic4u
Nếu bạn muốn sửa đổi mới nhất cho một đường dẫn nhất định (không phải toàn bộ repo), bạn có thể trả lại 'info.LastChangeRevision'. – styfle