首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程"main“java.lang.StackOverflowError中的git-tf签入异常

线程"main“java.lang.StackOverflowError中的git-tf签入异常
EN

Stack Overflow用户
提问于 2012-10-25 18:48:46
回答 1查看 837关注 0票数 4

我正在尝试使用现有的git存储库并使用git-tf将其签入到TFS预览视图中,并且当我尝试进行签入时会收到一个错误。以下是我迄今所做的工作。

  1. git克隆-b https://github.com/.git来克隆我想签入的分支。我想在TFS中签入一个没有名为master的分支。
  2. cd进入本地路径的代码。
  3. git配置https://.tfspreview.com/DefaultCollection $/然后,我将git配置为配置TFS连接。
  4. git tf签入之后,我得到以下错误:

签入$/: 0% git-tf:没有头参

  1. 因此,通过执行以下操作,我创建了一个主分支,因为我没有一个主分支: git分支-b母版
  2. 切换回我退房的分支: git结账。
  3. 又试了一次: git tf签入。
  4. 这让我克服了第一个错误。但是,我得到了以下错误,我不知道该如何处理。

有人知道如何通过运行git tf签入来克服下面的错误吗?

谢谢!

代码语言:javascript
复制
Connecting to TFS...
Checking in to $/Sandbox/HammerheadGitTest/sCRM: 
Exception in thread "main" java.lang.StackOverflowError
    at java.io.RandomAccessFile.seek(Native Method)
    at org.eclipse.jgit.storage.file.PackFile.read(PackFile.java:614)
    at org.eclipse.jgit.storage.file.WindowCache.load(WindowCache.java:314)
    at org.eclipse.jgit.storage.file.WindowCache.getOrLoad(WindowCache.java:393)
    at org.eclipse.jgit.storage.file.WindowCache.get(WindowCache.java:204)
    at org.eclipse.jgit.storage.file.WindowCursor.pin(WindowCursor.java:334)
    at org.eclipse.jgit.storage.file.WindowCursor.copy(WindowCursor.java:203)
    at org.eclipse.jgit.storage.file.PackFile.readFully(PackFile.java:526)
    at org.eclipse.jgit.storage.file.PackFile.load(PackFile.java:684)
    at org.eclipse.jgit.storage.file.PackFile.get(PackFile.java:227)
    at org.eclipse.jgit.storage.file.ObjectDirectory.openObject1(ObjectDirectory.java:439)
    at org.eclipse.jgit.storage.file.FileObjectDatabase.openObjectImpl1(FileObjectDatabase.java:172)
    at org.eclipse.jgit.storage.file.FileObjectDatabase.openObject(FileObjectDatabase.java:157)
    at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:122)
    at org.eclipse.jgit.revwalk.RevWalk.getCachedBytes(RevWalk.java:856)
    at org.eclipse.jgit.revwalk.RevCommit.parseHeaders(RevCommit.java:136)
    at org.eclipse.jgit.revwalk.RevWalk.parseHeaders(RevWalk.java:965)
    at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:814)
    at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:725)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:260)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)
    at com.microsoft.gittf.core.util.CommitWalker.detectAutoSquashedPath(CommitWalker.java:286)

最后两行一遍又一遍地重复了很长时间。

EN

回答 1

Stack Overflow用户

发布于 2012-10-26 21:47:30

我在codeplex.com上得到了一个关于这个问题的回应。我得到的答案是:

你好,

您之所以看到这个问题,是因为您试图签入一个很大的提交树,它可能超过2000-3000提交的深度。我们的代码有一些递归逻辑来标识要签入的提交。这个逻辑,因为它本质上是递归的,将JVM调用堆栈的大小推到1800以上,这是JVM使用的默认限制,在此之上,JVM将抛出您正在看到的StackOverFlowException。这是JVM的一个限制,幸运的是,有一个方法可以使用一个参数来扩展堆栈大小,以克服这个错误。

您需要在git-tf部署目录中更新git-tf.cmd (git-tf,如果不是在windows中运行),并将-Xss3m追加到对“java.exe”的调用中。

我们有一个用户故事来使这个场景在将来变得更好。

谢谢你,尤哈纳

以下是答案的链接:http://gittf.codeplex.com/workitem/43

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13075221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档