2013-06-26 30 views
4

我用https://stackoverflow.com/a/13710811/260865得到一个在一个git仓库中有分支的tfs仓库,它可以很好地适用于几个分支。但我没能初始化,因为所有分支:
"C:\tmp\Main>git tfs branch --init --authors=C:\tmp\authors-file.txt $/someproject/Branches/7.2.0 The name of the local branch will be : Branches/7.2.0 error: The root changeset 26907 have not be found in the Git repository. The branch containing the changeset should not have been created. Please do it before retrying!!"git tfs branch --init --all errors

C:\tmp\Main>git tfs branch --init --authors=C:\tmp\authors-file.txt $/someproject/Releases/7.0.0.1 The name of the local branch will be : Releases/7.0.0.1 An unexpected error occured when trying to find the root changeset. Failed to find root changeset for $/someproject/Releases/7.0.0.1 branch in $/someproject/Main branch(改名分支问题:https://github.com/git-tfs/git-tfs/pull/299

TFS说7.0.0.1是主要的子分支。

环境: gittfs版本0.17.1.0(TFS客户端库11.0.0.0(MS))(32位) C:\工具\ gittfs \混帐tfs.exe

有一个人解决方案呢?

+2

我也有一个问题simlar你的第一个错误没有解决方案 – JJS

+1

我也有第一个问题 –

回答

2

问题是由分支被重命名造成的。有一个issue for this here但它尚未解决。

INIT分支不处理TFS分支重新命名

如果我从我的 干线创建TFS一个分支,然后重命名分支,当我试图在重命名执行 INIT分支分支没有找到正确的 变更,并抱怨说,原本并不在GIT 仓库

“2010年TFS幕后的重命名其实是一个分支, 存在DELET e过程,这意味着我们结束了新的分支,而且还删除了旧名称的一个 分支。这是不明显的,除非你有 “在源代码管理浏览器中显示已删除项目”启用...“这就是为什么git-tfs无法处理这种情况的原因,因为git-tfs无法在父分支具有初始分支时启动 分支没有inited这是什么,我计划做的更好地处理合并的变更 并允许自动初始化父分支时根变更 没有找到 第二步之前:((后#363是合并)。

但它需要一个大的重构(需要将很多方法从一个 类移动到另一个)...

+0

现在支持分支重命名。 –

1

我发现了一种解决方法,即使它们已重命名,也可以克隆所有分支。 正如亚当所说,重命名的分支被删除并重新创建,我们需要“父”提交克隆在孩子之前。

1)查找所有被删除的分支的列表 我使用Visual Studio - >源代码控制管理 - >点击显示隐藏已删除的选项切换图标

2)在祖先订单git tfs branch --init $\Project\Branch_Location各删除分支

1

支持分支重命名的开发现在已经在master中合并(但尚未发布,将在下一个版本中为0.21)。

应该解决大多数的重命名的情况下(但TFS我们从来没有确定:()。请随意测试和report case不工作...