jGIT 跟踪文件位置更改

问题描述 投票:0回答:1

GIT 文件位置可能会通过 GIT PULL 或分支的更改而更改。 如何跟踪文件位置变化? 我正在使用 jGIT,这是一个用于 GIT 的 Eclipse 库。 目前我做的是:

final PullCommand pullCommand = git.pull().setRemote("origin").setRemoteBranchName(git.getRepository().getBranch());
git jgit
1个回答
0
投票

值得记住的是,Git(以及 JGit)跟踪内容,而不是文件。当文件被移动或重命名时,Git 只会看到使用新名称添加了一个文件,并使用旧名称删除了一个文件。

使用

DiffFormatter::scan
可以获得在存储库的两个状态(例如两次提交,或一次提交和工作目录)之间更改的文件列表。该方法返回一个
DiffEntry
列表,每个描述一个添加、删除或修改的文件。

可以使用

DiffFormatter
FollowFilter
配置
setDetectRenames(true)
以使用启发式方法来检测重命名。查看生成的
DiffEntry
changeType
或比较
oldPath
newPath

如果您打算跟踪工作目录的更改,您可以考虑使用文件观察器。这还包括在您的应用程序之外进行的更改。

© www.soinside.com 2019 - 2024. All rights reserved.