2016-11-03 3 views
0

gitリポジトリからローカライゼーションXMLファイルを取得しようとしています。これを自動的に定期的に行うことを目指します。VisualStudioOnlineのgitアーカイブがハングしているようです

私は、コマンドを実行visualstudioonlineと公衆1を関連付ける、SSH鍵ペアの生成に成功し、私のローカル認証エージェント

に私の秘密鍵をロードした:

git archive --verbose --format=zip --output=/z/a.zip --remote=ssh://[email protected]:22/DefaultCollection/_git/THE_PROJECT master /THE/PATH/TO/WhatIWant/ 

これだけでハングアップ。それは0バイトのzipファイルを作成しますが、決してそれをいっぱいにしません。これは、どちらかのコンソールにメッセージをポンプことはありませんので、私はHTTPSを使用する場合、私はそれが

をやっているかわからないんだけど、その後gitのは、「プロトコルでサポートされていない操作」

で失敗する - 私はあることに注意してください

--remoteスイッチなしでコマンドを実行し、現在のディレクトリが複製されたバージョンのリポジトリ内にあることを確認したら、すべてが動作します。

これはVSOが決してzipファイルを作成できないということですか? "git archive"はVSOでサポートされていますか?

+0

(SSHとクローンリモートリポジトリが正常に動作します) –

+0

  1. プロジェクト
  2. シンプルなコード

に拡張クライアントパッケージをインストール/追加いくつかのブログ記事は、作者がSSH経由でVSOに接続できず、コマンドを発行するための端末を手に入れることができないと言っていたので、おそらく関連しています。私は今朝、いくつかの "Connection reset by 12.34.56.78 port 22"メッセージをコンソールに表示したので、接続のSSH部分がタイムアウトしていると思います。私はそれを答えとして提案することはできませんが、GIT ARCHIVEをリポジトリの一部として利用するための将来の訪問者のために、TFS/VSTSでサポートされているREST APIがあります(あなたはリポジトリの一部のzipアーカイブをCURL/WGETできます) –

+0

VSTS/TFS REST APIのドキュメントは、https://www.visualstudio.com/en-us/docs/integrate/api/overviewにあります。 –

答えて

1

TFS Extended Client libraryからREST APIを使用してプログラムで達成できます。したがって、いくつかのパラメータを持つコンソールアプリケーションを作成して、プログラムからリポジトリからソースファイルをダウンロードし、それをコマンドから呼び出すことができます。私はキャッチ、私は同じ結果を得る

var u = new Uri("https://XXX.visualstudio.com"); 
       VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.WindowsCredential(new NetworkCredential("username", "password"))); 
       var connection = new VssConnection(u, c); 

       var gitServer = connection.GetClient<GitHttpClient>(); 
       Stream s= gitServer.GetItemZipAsync(project:"ScrumGitStarain", repositoryId:"LocalPushTest",path: "/ClassLibrary1").Result; 
       using (var fileStream = File.Create(@"D:\t.zip")) 
       { 
        s.CopyTo(fileStream); 
       } 
関連する問題