SharpSVNを使用して最新のリビジョン番号を取得する方法は?SharpSVNから最新のリビジョン番号を取得する方法は?
答えて
レポジトリからヘッドリビジョンを取得するための最も安価な方法は、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));
}
まあ、(単に/トランク/ URIを指して)簡単にGoogle検索が私のことを与え、それが動作:
http://sharpsvn.open.collab.net/ds/viewMessage.do?dsForumId=728&dsMessageId=89318
[OK]を、私は自分でそれを考え出し:
SvnInfoEventArgs statuses;
client.GetInfo("svn://repo.address", out statuses);
int LastRevision = statuses.LastChangeRevision;
また、私は多くのことをグーグルが、私は本当に最後のリビジョンを取得するために働いていた唯一の事でした:
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;
}
他の解決策がコメントアウトされています。自分で試してみて、違いを見てください。 。 。
このコマンドは、すべてのリビジョンを取得して1つのリビジョン番号を取得します。これは少し残酷で、確かに情報を入手する最速の方法ではありません。 –
私はSvnWorkingCopyClient使用して作業コピーの最新バージョンをチェックしています:リモートリポジトリについて
long localRev = version.End;
を通じて
var workingCopyClient = new SvnWorkingCopyClient();
SvnWorkingCopyVersion version;
workingCopyClient.GetVersion(workingFolder, out version);
ローカルの作業リポジトリの最新バージョンが利用可能であるが、
を使用しますvar client = new SvnClient();
SvnInfoEventArgs info;
client.GetInfo(targetUri, out info);
long remoteRev = info.Revision;
代わりに
これは、コマンドラインからsvnversionツールを使用するのと同じです。お役に立てれば。
これは非常に古い質問です。これは、上位2つの回答でうまく答えられています。それでも、私はリポジトリと作業コピーの両方からリビジョン番号を取得する方法を説明するために次のC#メソッドを投稿しています。たとえば、自動化されたビルド・プロセスでは、問題とみなされます。
/// <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;
}
}
(このコードは、それがからコピーされたプログラムのための具体的な物事のカップルを含んでいますが、それは理解しにくいSharpSvnの部品を作るべきではありません。)
- 1. JavaプログラムでSVN作業コピーの最新リビジョン番号を取得する
- 2. svnからリビジョン番号を取得するバッチスクリプト
- 3. 最新のダイヤル番号を取得する方法アンドロイド
- 4. 指定された日付から最新のSVNリビジョン番号を取得するには?
- 5. NSISスクリプトにSVNリビジョン番号を取得
- 6. SharpSVN - 以前のリビジョンを取得するには?
- 7. eclipse explorerビューからリビジョン番号を隠す方法は?
- 8. Mavenを使ってSubversionからリビジョン番号を取得するには?
- 9. Svnリビジョン番号からアプリケーションとブランチ名を取得するには?
- 10. C++のファイルから行番号を取得する方法は?
- 11. プログラムでSVNリビジョン番号を取得するには?
- 12. 現在のリビジョン番号と以前のリビジョン番号のsvn diffを取得するコマンド
- 13. SharpSVNとリビジョンの新規/修正ファイル
- 14. TFS - リビジョン番号をリセットする方法はありますか?
- 15. 最新の2つのバージョン番号を持つレコードを取得する方法
- 16. svnadmin load、リビジョン番号の保存方法
- 17. TFS APIを使用して最新のチェンジセット番号を取得する方法
- 18. 前回のローカルリビジョンのリビジョン番号を最終更新前に調べる方法はありますか?
- 19. Android - 最後の番号を取得する方法
- 20. ID番号からオブジェクトインスタンスの情報を取得する方法
- 21. ユーザから1つの番号を取得する方法
- 22. ユーザーからアプリケーションのバージョン番号を取得する方法
- 23. バッチファイルにSVNリビジョン番号を取得する
- 24. SVNリビジョン番号
- 25. SVNリビジョン番号
- 26. マージは常にファイルのリビジョン番号を更新しますか?
- 27. マルチプロジェクトリポジトリのリビジョン番号
- 28. 行番号でXDocumentからXElementを取得する方法
- 29. pythonで.mobiファイルからISBN番号を取得する方法
- 30. タイル通知から番号を取得する方法
このコードのように私のために働いていません(SvnClientクライアント=新しいSvnClient()){SvnInfoEventArgs info; Uri repos =新しいUri( "svn:// india01/repository/branches/mybranch1"); client.GetInfo(repos、out情報); lblMsg.Visible = true; lblMsg.Text =(string.Format( "{0}の最後のリビジョンは{1}"、repos、info.Revision)); } ' いつでも私は自分のウェブページを走らせているだけでそれだけを検索しています。 これに対する解決策です。 – picnic4u
リポジトリ全体ではなく、特定のパスの最新のリビジョンが必要な場合は、代わりに 'info.LastChangeRevision'を返すことができます。 – styfle