如果 master 不在,我如何让 jgit 找到不同的负责人?
How do I get jgit to find a different head if master isn't there?
我正在使用此代码创建包含已更改文件的 powerpoint:
try (Git git = new Git(repo)) {
DiffFormatter df = new DiffFormatter(NullOutputStream.INSTANCE);
df.setRepository( git.getRepository() );
Iterable<RevCommit> commits = git.log().all().call();
for (RevCommit commit : commits) {
if(commit.getParents().length != 0) {
System.out.println("LogCommit: " + commit);
List<DiffEntry> entries = df.scan(commit.getId(), commit.getParent(0).getId());
for( DiffEntry entry : entries ) {
String filename = entry.getPath(DiffEntry.Side.NEW);
if(!filename.equals("/dev/null")) {
Integer currentCount = 0;
if(fileChanges.containsKey(filename)) {
currentCount = fileChanges.get(filename);
}else {
System.out.println(" DiffEntry: " +entry.getPath(DiffEntry.Side.NEW));
}
fileChanges.put(filename, new Integer(currentCount + 1));
}
}
}
}
}
但是当我 运行 它在回购协议中时:
org.eclipse.jgit.api.errors.NoHeadException: No HEAD exists and no explicit starting revision was specified
at org.eclipse.jgit.api.LogCommand.call(LogCommand.java:154)
at .GitAccessor.getFilesChanged(GitAccessor.java:47)
at Main.main(Main.java:45)
我试图通过在没有主人的情况下制作这个回购来复制它(因为它在客户端的机器上):
https://github.com/davidahines/no_master
我已经尝试删除 HEAD、ORIG_HEAD 和 FETCH_HEAD,但似乎仍然无法得到这个错误。
我想我需要做的是以某种方式绕过这个检查,或者在 refs 文件夹中找到另一个头,但我在 jgit 中找不到。
我目前无法访问客户的存储库,因为它是闭源的。
问题是 jgit 不支持 /home/username 的波浪号快捷方式,删除后它就起作用了。
我正在使用此代码创建包含已更改文件的 powerpoint:
try (Git git = new Git(repo)) {
DiffFormatter df = new DiffFormatter(NullOutputStream.INSTANCE);
df.setRepository( git.getRepository() );
Iterable<RevCommit> commits = git.log().all().call();
for (RevCommit commit : commits) {
if(commit.getParents().length != 0) {
System.out.println("LogCommit: " + commit);
List<DiffEntry> entries = df.scan(commit.getId(), commit.getParent(0).getId());
for( DiffEntry entry : entries ) {
String filename = entry.getPath(DiffEntry.Side.NEW);
if(!filename.equals("/dev/null")) {
Integer currentCount = 0;
if(fileChanges.containsKey(filename)) {
currentCount = fileChanges.get(filename);
}else {
System.out.println(" DiffEntry: " +entry.getPath(DiffEntry.Side.NEW));
}
fileChanges.put(filename, new Integer(currentCount + 1));
}
}
}
}
}
但是当我 运行 它在回购协议中时:
org.eclipse.jgit.api.errors.NoHeadException: No HEAD exists and no explicit starting revision was specified
at org.eclipse.jgit.api.LogCommand.call(LogCommand.java:154)
at .GitAccessor.getFilesChanged(GitAccessor.java:47)
at Main.main(Main.java:45)
我试图通过在没有主人的情况下制作这个回购来复制它(因为它在客户端的机器上): https://github.com/davidahines/no_master
我已经尝试删除 HEAD、ORIG_HEAD 和 FETCH_HEAD,但似乎仍然无法得到这个错误。
我想我需要做的是以某种方式绕过这个检查,或者在 refs 文件夹中找到另一个头,但我在 jgit 中找不到。
我目前无法访问客户的存储库,因为它是闭源的。
问题是 jgit 不支持 /home/username 的波浪号快捷方式,删除后它就起作用了。