如何通过JGit的DiffCommand知道哪个分支发生了变化?

时间:2017-01-12 19:00:36

标签: git jgit

我似乎无法找出一种快速简便的方法来确定给定master来自哪个树(旧的或新的)。在我的情况下,我只对缺陷/工作树中的“外向”(可以这么说)变化感兴趣......来自其他/主分支的任何新的“传入”变化都没有意义。

IOW,我只想要那些我已经改变的文件的路径名,版本和更改类型尚未在其他/主分支中...我当然不会需要或想要解析文件内容的变化。当然,主分支的变化最终会引起人们的兴趣,但它们使我的程序化用例变得混乱。

代码段:

master

1 个答案:

答案 0 :(得分:0)

您可以使用DiffEntry::getChangeType()方法确定是否添加,更改或删除了文件。

例如:

switch( diffEntry.getChangeType() ) {
  case ADD:
    // file does not exist in oldBranch, file is new in newBranch
    break;
  case DELETE:
    // file did exist in oldBranch, file was deleted in newBranch
    break;
  case MODIFY:
    // file exists in oldBranch and newBranch, content was changed
    break;
  case COPY:
  case RENAME:
    // file was copied or moved to a new location
    break;
}

这是你在找什么?