我正在尝试使用适用于C#.Net的Azure DevOps Git API,并且在大多数情况下我已经弄清楚了。但是我在将新目录推送到存储库时遇到问题。
以下是到目前为止的相关代码片段;
创建提交
GitCommitRef commit = new GitCommitRef()
{
Comment = "Add a sample file",
Changes = new GitChange[]
{
new GitChange()
{
ChangeType = VersionControlChangeType.Add,
Item = new GitItem() { Path = "/TESTFOLDER", GitObjectType = GitObjectType.Tree, IsFolder = true },
NewContent = null
//NewContent = new ItemContent()
//{
// Content = Utilities.ReadFile(fileNamePath),
// ContentType = ItemContentType.RawText
//}
},
new GitChange()
{
ChangeType = VersionControlChangeType.Add,
Item = new GitItem() {Path = "/TESTFOLDER/" + fileName, GitObjectType = GitObjectType.Blob, IsFolder = false },
NewContent = new ItemContent()
{
Content = Utilities.ReadFile(fileNamePath),
ContentType = ItemContentType.RawText
}
}
创建推送
GitPush toPush = new GitPush()
{
RefUpdates = new GitRefUpdate[] { newBranch },
Commits = new GitCommitRef[] { commit }
};
// Create the push with the new branch and commit
GitPush push = gitClient.CreatePushAsync(toPush, repo.Id).Result;
当它使用该提交执行Push时,错误提示“提供的参数无效。参数名称:newPush”。
我在文档中找不到任何可以帮助我弄清楚如何将“ fileName”文件放置在同时创建的目录中的问题?
该错误似乎是由于GitChange
中的TESTFOLDER
目录的对象引起的GitChanges
。
您无需GitChange
为TESTFOLDER
目录指定新对象。由于@StriplingWarrior注释git中不允许有空目录。
您只能GitChange
为文件指定一个新对象。如果文件所在的目录不存在。它将自动创建。
见下文:
GitCommitRef commit = new GitCommitRef()
{
Comment = "Add a sample file",
Changes = new GitChange[]
{
new GitChange()
{
ChangeType = VersionControlChangeType.Add,
Item = new GitItem() {Path = "/TESTFOLDER/" + fileName, GitObjectType = GitObjectType.Blob, IsFolder = false },
NewContent = new ItemContent()
{
Content = Utilities.ReadFile(fileNamePath),
ContentType = ItemContentType.RawText
}
}
从我的测试中看到以下屏幕:目录已自动创建。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句