0

我正在从 TFS 迁移到 GIT。救恩是那么近,却又那么远;)

我有一个包含许多文件夹、主干和分支的项目 P。我有兴趣克隆其中一个树干和相关的分支。

树干以下的所有分支都是树干的分支。没有任何东西被重新定位或重命名。据我所知,所有分支都正确配置了父母。


方法一:用分支克隆

git tfs clone [TFS URL] $/[Path]/[To]/[Trunk] repo --with-branches --debug --resumable --workspace="repo-ws"

当遇到第一个合并变更集时, git tfs 会寻找其他分支,确认它找到的每个分支的父级(这一切看起来都很好)并正确识别分支提交。我看到'changeset x fetched'然后进程退出并出现警告和无法获取的分支列表(包括第一个合并变更集中涉及的分支)

日志

C6345 = 01a40cfde6632218d5b95f3fed494b3c9913f74b  
GC Countdown: 190  
Looking for changeset 6346 in git repository...  
=> Commit not found!  
Looking for changeset 6346 in git repository...
Tfs branches found:  
- $/[Team Project]/[The Branch]  
Looking to find branch '$/[Team Project]/[The Branch]' in all TFS branches...  
Looking for all branches...  
Found parent branch : $/[Team Project]/[The Trunk]  
Found C5051 on branch $/[Team Project]/[The Branch]

-- 其他分支在这里登录 --

=> Working on TFS branch : $/[Team Project]/[The Branch]  
Looking for changeset 5051 in git repository...

-- 其他分支在这里登录 --

Fetching remote :default  
Try fetching changesets...  
info: refs/remotes/tfs/default: Getting changesets from 6346 to current ...  
Looking for changeset 6346 in git repository...  
Looking for changeset 6346 in git repository...  
Changeset fetched!

-- gc 在这里登录 --

warning: Some Tfs branches could not have been initialized:
- $/[Team Project]/[The Branch]

-- 其他分支在这里登录 --

进程退出此处引用问题 461


方法2:克隆然后初始化所有分支 git tfs clone [TFS URL] $/[Path]/[To]/[Trunk] repo --debug --resumable --workspace="repo-ws" cd repo && git tfs branch --init --all

这里的日志实际上与上面的相同。当我执行分支初始化时,我看到 git-tfs 搜索分支,然后找到父级,然后分支变更集以上述分支初始化警告结束。


在单独的主干/分支上进行验证 为了测试事物的行为,我在干净的主干上创建了一个类似的场景。在主干 (T) 上提交一些提交,然后在分支 (B) 上提交一些提交,在 B 上提交一些提交,在 T 上提交一些提交,然后将 B 合并到 T,然后在 T 上提交和在 B 上提交(只是为了反映我的产品场景) . 使用 Git TFS 上面的任何一种方法都可以正确克隆 TFS 存储库并管理分支(方法 2 不会以与重新设置主干相同的方式显示合并)。


我的下一步是逐步检查 git-tfs 代码,看看我是否可以解决问题,但考虑到我正在通过 VPN 工作,这很耗时,大约 4000 次提交到代码库中。它需要永远。

我正在寻找关于什么可能会破坏 git tfs 进程的指针。我可以看什么,有什么常见的场景吗?有什么快速调试的方法?

4

1 回答 1

1

从源代码构建最新版本已经解决了这个特殊问题。自上一个版本 (0.20) 以来已经进行了许多提交。

于 2015-02-10T23:48:29.217 回答