【发布时间】:2013-04-05 15:25:38
【问题描述】:
在合并分支和主干之前,我正在正确地执行结帐。在该过程之后(合并文件夹trunk/Fontes 和branches/1.1.0/Fontes,将trunk/Fontes 作为工作副本),我在签出项目或更新工作副本时遇到问题。
我收到的消息如下:svn:E160013: '/svn/siaj/!/svn/bc/47/branches/Fontes' path not found: 404 Not Found。 (其中 siaj 是存储库的名称)。
消息告诉我问题出现在版本 47 中,这是执行合并的版本。问题是,文件夹“branches/Fontes”不存在,也从未存在。采用的结构曾经是分支/x.x.x/Fontes(其中 x.x.x 是正在开发的系统的版本)。
Java代码是这样的:
if(!SVNWCUtil.isVersionedDirectory(this.wdWorkingCopy)){
this.wdWorkingCopy.mkdir();
this.updateClient.doCheckout(SVNURL.parseURIEncoded(this.repositorio), this.wdWorkingCopy, SVNRevision.UNDEFINED, SVNRevision.HEAD, SVNDepth.INFINITY, true);
}else{
this.updateClient.doUpdate(wdWorkingCopy, SVNRevision.UNDEFINED, SVNDepth.INFINITY, true, false);
}
我错过了什么?
【问题讨论】:
-
看起来很奇怪,你能尝试使用 SVNKit 命令行执行命令并将其行为与原生 Subversion 进行比较吗?
-
确实如此。我按照您的建议做了,并且在两种方式(使用 SVNKit 命令行以及使用本机颠覆)执行命令时都没有出错。额外信息:合并是使用 tortoiseSVN 执行的。
-
我注意到一些更奇怪的东西。即使抛出上述异常,该文件夹似乎也是版本化的。问题是,如果结帐正常,为什么会出现这个问题?
-
SVN 检出可以随时取消并继续,因此即使检出未完成,目录也会很快变为版本。 SVN 对这些目录具有特殊状态 --- “不完整”
标签: java merge svnkit vcs-checkout