【发布时间】:2023-03-12 20:26:02
【问题描述】:
我需要在使用 JGit 创建的分支上按顺序签出标签。
CheckoutCommand checkout = new Git(testRepository).checkout();
if (!branchExists())
checkout.setCreateBranch(true).setName("branch-for-test").setStartPoint(key);
else
checkout.setName(key);
checkout.call();
其中key 是String,其中包含我要签出的提交的名称(key 循环更改)。我不想每次结帐时都创建一个分支,因为我不需要。显示以下错误:
org.eclipse.jgit.api.errors.JGitInternalException: Could not rename file target\TestRepository\server\db\scripts\postgresql\._db_script.sql6197897692249726905.tmp to target\TestRepository\server\db\scripts\postgresql\_db_script.sql
at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:320)
在这发生之前,我试图在 else 语句中使用
checkout.setName("branch-for-test").setStartPoint(key);
它没有抛出任何错误,但也没有检出标签。
【问题讨论】:
-
branchExists()是做什么的?它是否检查名为branch-for-test的分支是否存在?如果是这样,创建分支可以移到循环之外,对吧? -
目的是验证分支是否已经创建,在这种情况下我想在现有的分支中结帐
-
签出到同一个分支应该可以。您应该找到“无法重命名”异常的原因。您是否在引发异常的行(或之前)设置了断点以查看发生了什么(例如目标文件是否存在等)?
-
抱歉这么晚才回复。有一个临时文件无法重命名。