如何解决C#Azure DevOps Git:无法推送新目录
我正在尝试使用适用于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
}
}
请参见下面的屏幕测试:目录是自动创建的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。