尝试从git repo中获取一些本地化XML文件。旨在定期自动执行此操作。
我成功生成了一个SSH密钥对,将公共密钥对与visualstudioonline相关联,并将我的私钥加载到我的本地身份验证代理中
我执行命令:
git archive --verbose --format=zip --output=/z/a.zip --remote=ssh://user@somedomain.visualstudio.com:22/DefaultCollection/_git/THE_PROJECT master /THE/PATH/TO/WhatIWant/
这只是挂起。它确实创建了一个0字节的zip文件,但它永远不会填充它。它从不向控制台发送任何消息,因此我不确定它在做什么
如果我使用HTTPS,那么git会失败并且"协议"
不支持"操作-
我注意到如果我在没有--remote开关的情况下运行命令,并确保我的当前目录位于repo的克隆版本中,那么一切都可以解决
这是否意味着VSO永远不会创建一个zip文件?是" git archive"在VSO上支持吗?
答案 0 :(得分:2)
您可以使用REST API通过TFS Extended Client library以编程方式实现此目的。因此,您可以创建一个带有一些参数的控制台应用程序,以编程方式从存储库下载源文件,然后从命令中调用它。
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);
}