问题标签 [git-tfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
635 浏览

git - 无法让 git-tfs 为我克隆

尝试使用 git-tfs 克隆 TFS 目录我正在使用以下命令:

我创建了 mygit 使用: git init mygit

我正在尝试获取 tfs 中 Servers/YYYYY 的目录。但它始终告诉我“指定的 git 存储库目录不为空”。

我没有尝试在其中放入任何东西,只是做了初始化。

有没有人经历过这样的事情?它的任何部分是否公然,明显是错误的?

谢谢。

0 投票
2 回答
704 浏览

git - 同一项目的多个 TFS 服务器

对于同一个项目,我想使用 2 个 TFS 服务器,因为我有 2 组开发人员,他们只能访问自己的 TFS,而我可以访问两者。

用 git 很容易做到这一点。看看我的 .git/config 文件。该项目同时使用 github 和 bitbucket 进行远程操作。

现在,有 2 组开发人员同时在 bitbucket 和 github 上工作。我合并他们的更改并将它们推送到两台服务器。

我这样做是有商业原因的。

我想知道是否可以使用 TFS。

顺便说一句,我宁愿拥有 2 个 TFS 服务器,但也可以接受 1 个 TFS 和 1 个 git 服务器。

0 投票
2 回答
200 浏览

git - 防止 git 存储库中的文件被 git-tfs 检入 TFS

我正在开发一个 TFS 存储库,强烈建议不要签入不必要的文件。

就目前而言,某些文件,例如.gitignore,属于不必要的类别。有什么办法可以防止 git-tfs 将这些文件签入 TFS,同时仍然跟踪 git 中的更改?

我知道这个解决方案,但它阻止 git 本身引用有问题的文件。但是,我只对从 TFS 签入中屏蔽文件感兴趣。

0 投票
1 回答
1780 浏览

tfs - 如何从 git-tfs 克隆操作中排除某些分支

我正忙于试验 git-tfs 做 tfs 到 git 的转换。我了解下面的 cmd 将克隆所有内容并将 TFS 分支转换为 git 存储库:

有许多分支我不想移动 - 有没有办法可以排除一个或多个特定分支?

谢谢

0 投票
1 回答
67 浏览

git - 使用 GIT-TFS 合并本地存储库

我有两个本地存储库。假设 REPO-A 和 REPO-B。REPO-B 是外部供应商提供的 REPO-A 的更新版本。REPO-A 使用 GIT-TFS 进行管理,而 REPO-B 是一个 GIT 存储库。我为 REPO-B 创建了一个 VS 项目,但现在我想将 REPO-B 的新源文件(相同)与 REPO-A 合并。对此的任何帮助都会很棒。

0 投票
2 回答
454 浏览

git-tfs - 带有 TFVC 源的 TFS 2013 Git 构建定义

在 TFS 2013 中,是否有任何方法可以创建自定义构建工作流(通过自定义 .xaml 文件),该工作流使用来自 TFS-Git 项目和 TFVC 项目的源代码?

在 Git 项目中创建 Build Def 时,Source Settings 选项卡仅允许选择单个 Git 存储库。

在 TFVC 项目中创建 Build Def 时,Source Settings 选项卡允许来自任何 TFVC 项目的多个路径。

我需要的是一种将上述功能组合到单个构建定义中的方法。这可能吗?如果是,如何?

我唯一的要求是它必须是基于 Git 的构建定义,所以理想情况下我需要一个 TFS 活动,它允许我传入多个 TFVC 路径并将它们复制到构建文件夹。但我会接受任何建议。

提前致谢!!

0 投票
1 回答
2659 浏览

git - 不能忽略 *.vssscc、*.vspscc 文件

我正在使用Git-TFGitTeam Foundation 版本控制 (tfvc)之间的桥梁)

git tf pull将.vssscc、.vspscc文件下载到存储库并提交。因此,如果我使用git push下一个,它将这些文件上传到远程存储库中,这对我来说不是所需的行为。

我试图git tf pull了解.gitignore文件。基于这篇文章,我在.gitconfig中添加了以下几行

并称为git apply-gitignore。据我了解,它从存储库中删除文件(不是物理上的,只是意识)。接下来我不得不跑git commit -a -m "TFS2Git",最后git push -u origin master --force它工作正常并将源推送到远程存储库(GitHub)中,没有不需要的文件

接下来,我做了一些虚假更新并将远程源拉入本地存储库并通过git tf checkin. 不幸的是,它实际上从解决方案中删除了不需要的文件

是否有解决此问题的解决方法?

0 投票
1 回答
566 浏览

git - Git-Tfs 克隆意外停止并发出警告

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

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

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


方法一:用分支克隆

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

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

日志

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

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

-- gc 在这里登录 --

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

进程退出此处引用问题 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 进程的指针。我可以看什么,有什么常见的场景吗?有什么快速调试的方法?

0 投票
1 回答
556 浏览

git - 如何解决 Git-TFS verify 发现的差异

Git-TFS 有一个验证命令,帮助描述如下:“验证命令有助于识别从 TFS 获取、克隆或快速克隆的不准确性。” 我有一个专有存储库,我正在从 TFS 迁移到 Git。运行git tfs verify显示我的 Git 存储库中有大量文件丢失,这些文件存在于 TFS 中,并且在进行同步之后立即出现。这种情况以前发生过一次,我炸毁了整个存储库并重新开始,但现在我又遇到了同样的问题。我之前已经使用 Git-TFS 成功克隆了这个存储库(在我们开始迁移到 Git 之前,当时我只是在本地使用它)所以我知道它可以成功,但我宁愿不炸毁整个存储库并重新开始。

是否有一种自动方法来修补 verify 命令显示的差异,而无需重新克隆整个 repo?我可以在 TFS 中检查项目并在必要时手动复制所有文件,但我希望有更好的方法。

0 投票
1 回答
623 浏览

git - 将大型、不同的 TFS 团队项目迁移到 Git

我有一个大型的 TFS 团队项目。

在与 Git-TFS(我们的 TFS 团队项目中有一些时髦的东西)战斗之后,我有了一个完整的本地 git 存储库。

它太大而无法适应 BitBucket 1GB 软限制。

Team 项目包含不同产品的分支。

-- 基础产品(主干)
--- 客户端 A 产品(来自主干)
--- 客户端 B 产品(来自主干)
---- 客户端 B 功能分支(来自 B)
--- 客户端 C 项目(来自主干)
- --- 客户 D 项目(来自 C)
----- 客户 E 项目(来自 D)

如您所见,在 TFS 中进行分支时,我们对自己并不友善。

进行浅克隆显示任何分支的单个提交大约为 150-200MB。任何给定分支的完整历史记录不到 1GB

我提议为每个分支做一个 git repo,并在分支提交后推送分支历史。这意味着没有一个分支有共同的祖先,当想要进行跨 TFS 分支合并时会强制进行无根据的合并。我还建议通过执行积极的 GC 并删除一些大对象来存储只读的完整历史存储库,这使我可以将全部内容压缩到一个存储库中。这至少开辟了在未来某个时候进行移植或替换+rebase 以将“当前”回购与历史回购结合的可能性。

我无法在任何时候都干净利落地削减历史记录(和变基),以在 1GB 限制下提供合理的共同祖先和回购空间。

任何人都可以帮助制定更好的迁移策略吗?

更新1:这个问题的子文本是......当产品出现分歧时,分支结构有多重要。我们遇到的一个重要问题是分支之间的合并提交关系。如果我修剪历史记录,它还会迫使我在某些情况下处理合并提交历史记录(因为我们已经完成了从一个分支的早期部分到另一个分支的晚期部分的疯狂合并)

更新 2:我有另一种策略,无需所有合并历史记录,但保留原始父分支血统。使用 -c 选项的 Git TFS 快速克隆可在所需时间点创建起点。Git TFS pull --rebase --all 然后初始化一个降序分支 Git TFS branch --init [branch name] 然后再次拉取等

这给出了合并提交历史的共同祖先和分配,这允许更小的存储库,但以合并历史为代价。