使用Jgit和管道命令创建提交

时间:2015-05-15 14:08:13

标签: java git jgit git-plumbing

我正在尝试使用JGit中的管道命令构造一个提交。除了获取信息,我使用的基本上是这些命令:

treeFormatter.append(folderName, FileMode.TREE, treeObjectId);
treeFormatter.append(fileName, FileMode.REGULAR_FILE, blobObjectId);

最终

objectInserter.insert( treeFormatter );

最后将最终树设置为提交。这适用于一些提交,但与其他提交虽然文件在那里我不能推动回购。 bash说:

  

错误:解包失败:错误树(树编号)无效:错误   排序

我发现了here

树条目按包含条目名称的字节序列排序。但是,出于排序比较的目的,比较树对象的条目,就好像条目名称字节序列具有尾随的ASCII'/'(0x2f)。

所以尝试按特定顺序添加文件,基于转换为对象名称的字节(不是文件名),但是与bash的实际提交相比,我无法确定Git需要添加哪个顺序文件。

所以:任何人都知道如何使用JGit中的管道方法构建一个包含多个文件的提交?我很确定我只需要正确的排序对象的方法,但无法找出它是什么

1 个答案:

答案 0 :(得分:0)

刚刚找到解决方案,

你需要根据文件名或文件夹名称按特定顺序放置文件,我的问题是我正在寻找ObjectId.getName()这是这个哈希。