我正在尝试使用JGit中的管道命令构造一个提交。除了获取信息,我使用的基本上是这些命令:
treeFormatter.append(folderName, FileMode.TREE, treeObjectId);
treeFormatter.append(fileName, FileMode.REGULAR_FILE, blobObjectId);
最终
objectInserter.insert( treeFormatter );
最后将最终树设置为提交。这适用于一些提交,但与其他提交虽然文件在那里我不能推动回购。 bash说:
错误:解包失败:错误树(树编号)无效:错误 排序
我发现了here
树条目按包含条目名称的字节序列排序。但是,出于排序比较的目的,比较树对象的条目,就好像条目名称字节序列具有尾随的ASCII'/'(0x2f)。
所以尝试按特定顺序添加文件,基于转换为对象名称的字节(不是文件名),但是与bash的实际提交相比,我无法确定Git需要添加哪个顺序文件。
所以:任何人都知道如何使用JGit中的管道方法构建一个包含多个文件的提交?我很确定我只需要正确的排序对象的方法,但无法找出它是什么
答案 0 :(得分:0)
刚刚找到解决方案,
你需要根据文件名或文件夹名称按特定顺序放置文件,我的问题是我正在寻找ObjectId.getName()这是这个哈希。