私はいくつかのカスタムスクリプトにMicrosoft.TeamFoundationServer.Client NuGetパッケージを使用しています。 VSFSのTFSソース管理にブランチを作成したいのですが、TFVCかGitかどうかにかかわらず、このパッケージ内のどの種類のブランチも作成できないようです。私は何かを逃しているのですか、パッケージですか?Microsoft.TeamFoundationServer.Client NuGetパッケージを使用してTFSソース管理にブランチを作成するにはどうすればよいですか?
答えて
.NET client libraries for Visual Studio Team Services (and TFS)を使用しているとします。 TFVCの場合、 "Microsoft.TeamFoundation.VersionControl.Client"を使用する必要があります。次のコードサンプルです:それは、REST APIを介してVSTSへのアクセス、 "Microsoft.TeamFoundationServer.Client" の場合:
using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
namespace ConsoleApplica
{
class Program
{
static void Main(string[] args)
{
string URL = "https://xxxxx.visualstudio.com/";
TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(URL));
VersionControlServer vcs = ttpc.GetService<VersionControlServer>();
string sourcepath = "$/ProjectNmae/SourceBranch";
string targetpath = "$/ProjectNmae/TargetBranch";
vcs.CreateBranch(sourcepath,targetpath,VersionSpec.Latest);
}
}
}
更新。しかし、TFVCとGit用のRest APIはブランチを作成できません。ブランチを作成することはできません。したがって、 "Microsoft.TeamFoundationServer.Client"の中のメソッドを見ることはできません。
Team Foundation Server 2015およびVisual Studioチームと統合 デスクトップベース、ASP.NET、およびその他のWindowsアプリケーションからのサービス。 パブリックREST APIを使用して、バージョン管理、作業項目の追跡、ビルド、および moreへのアクセスを提供します。
VSTS GITリポジトリの場合、Microsoft.TeamFoundation.SourceControl.WebApi.GitHttpClient
と2つのRefsメソッドを使用してブランチを作成できます。
ブランチを作成中にVSTS visualstudio.comのブラウザのdevtoolsでXHR要求を調べると、それらの動作を確認できます。彼らは最新のソースブランチ
- まずそれから、彼らはレフリーが
まずあなたがGetRefsAsync
を使用してからあなたの新しいをベースにするソース枝を見つけ修正送ります。 https://www.visualstudio.com/en-us/docs/integrate/api/git/refs#just-branches
私の例では、から枝分かれしたいと考えています。
(この例では)コンソールアプリで書かれたので、(GetAwaiterを無視した。のgetResult()あなたのコードは、非同期メソッドにある場合)
var client = new GitHttpClient(uri, creds);
var masterRefs = client.GetRefsAsync(repo.Id, filter: "heads/master").GetAwaiter().GetResult();
var masterRef = masterRefs.FirstOrDefault(x => x.Name == "refs/heads/master");
これはあなたに、最新のコミットIDを与えますから支店を作る
その後、このコードは、従来のTFSのために実際にある https://www.visualstudio.com/en-us/docs/integrate/api/git/refs#modify-one-or-more-refs
GitRefUpdate newRef = new GitRefUpdate
{
Name = "refs/heads/your-new-branch",
NewObjectId = masterRef.ObjectId,
OldObjectId = "0000000000000000000000000000000000000000",
};
// create branch
var updateResult = client.UpdateRefsAsync(new[] { newRef }, repo.Id).GetAwaiter().GetResult();
- 1. TFS APIを使用して子反復を作成するにはどうすればよいですか?
- 2. イベント管理を使用してカスタムカレンダーを作成するにはどうすればよいですか?
- 3. ソース管理なしでフリースタンディングパッチを作成するにはどうすればいいですか?
- 4. ソース管理としてTFSを使用してVisual Studio 2012でGulpを作成
- 5. TFSでブランチを作成してトランクを削除すると、ソース管理の履歴がコピーされる
- 6. REST APIを使用してTFS/TFVCにラベルを作成するにはどうすればよいですか?
- 7. アプリケーションのソース管理でPythonのバージョンを管理するにはどうすればよいですか?
- 8. 既存のプロジェクトでソース管理を使用するにはどうすればよいですか?
- 9. Sql Server Management Studioでソース管理を使用するにはどうすればよいですか?
- 10. Gradleを使用してソースのZIPを作成するにはどうすればよいですか?
- 11. Azure関数でVSTSパッケージ管理でNuGetパッケージを使用するには?
- 12. RTCソース管理で複数のブランチ/ストリームを作成する
- 13. NodeJS Azure関数でパッケージ管理を使用するにはどうすればよいですか?
- 14. igraphパッケージを使用してデータフレームからグラフを作成するにはどうすればよいですか?
- 15. バージョン管理を利用して写真コレクションを管理するにはどうすればよいですか?
- 16. コーデッククッカーNugetパッケージを削除するにはどうすればよいですか?
- 17. ソース管理から開いたプロジェクトのNugetパッケージでの問題
- 18. ユーザーのビルドオプションを使用してmeteorJSパッケージを作成するにはどうすればよいですか?
- 19. NuGet Publish後にVisual Studio Team ServicesでNuGetパッケージを更新するにはどうすればよいですか?
- 20. NLua nugetパッケージが、私は使用にそれを使用してこのnugetパッケージを.NET 4.6.1クラスライブラリを作成しようとしていますVS 2017
- 21. 既存のTFSソース管理プロジェクトを使用する新しいTFS ALMプロジェクト
- 22. TFSからNugetパッケージを削除することができない - パッケージ管理を養う
- 23. rails 5でアクティブな管理者用のテーブルレスモデルを作成するにはどうすればよいですか?
- 24. javascriptでjavaで作成したパッケージを使用するにはどうすればよいですか?
- 25. 新しいGoogle Cloud管理ポータルでGQLクエリを作成するにはどうすればよいですか?
- 26. メニューに表示されないNuGetパッケージを管理する
- 27. dotnetを使用したNugetパッケージのNugetパッケージでの配布管理
- 28. 複数回使用するNugetパッケージを管理する方法
- 29. ActionScriptを使用してモバイルアプリでイメージアセットのサイズを管理するにはどうすればよいですか?
- 30. GitHubリポジトリをセットアップしてコラボレーション用にブランチを作成するにはどうすればいいですか?
新OBJECTIDとしてmasterRefからのObjectIdを使用して修正する参考文献送ります。私はvstsのための新しいパッケージを使用しています、そして、そのコードは、それらのパッケージには存在しません。 –
@AlexMarshall申し訳ありませんあなたの質問を慎重にチェックしなかった。私は私の答えを更新しました。 –
この機能を追加する予定はありますか?私のチームはpowershellを使用してスクラムプロセスの大部分をスクリプト化してオーバーヘッドを減らし、分岐をプログラムで作成する必要があります –