git - 使用 GIT-TF 导入 - 项目已经有待处理的更改

标签 git tfs git-tf tfvc

我有两个 TFS 实例,一个是 2012 年,另一个是 2013 年。我的目标是从 2012 年实例中导出一些源代码并将其导入到 2013 年实例中,同时保留 checkin 历史记录。

我采用的方法是;

  1. http://msysgit.github.io 安装适用于 Windows 的 GIT
  2. http://gittf.codeplex.com 安装 git-tf
  3. 为我的 git 存储库创建一个本地文件夹 c:\git
  4. 在该文件夹中打开 GIT Bash 提示符(因此它是当前文件夹)
  5. $ git tf clone http://old-tfs-host:8080/DefaultCollection $/myProject/myBranch --deep
  6. 删除 tf 文件夹和 git-tf 文件
  7. 复制到我的 USERMAP 文件
  8. $ git tf configure --deep --keep-author --force http://new-tfs-host:8080/DefaultCollection $/myProject/myBranch
  9. $ git tf pull
  10. $ git commit -a -m "从 TFS 2012 初始导入"
  11. $ git tf checkin --deep

处理大约 57% 后出现错误

git-tf: failed to pend changes to TFS due to the following errors. Please fix the errors and retry check in. The item $/path-to-file already has pending changes.

问题 - 如何解决文件的待处理更改?当我进行此 checkin 时,存储库中没有其他人,因此导出似乎已损坏?

我已经对另外两个分支使用了相同的方法并且取得了成功。


编辑我发现问题是文件被重命名,唯一的区别是大小写。所以在同样的改变中我有

  1. 删除$/source-file
  2. 编辑$/project-file
  3. 添加$/Source-File

显然我正在重命名它们,但是第 1 行中删除的文件与第 3 行中的文件相同,唯一的区别是文件名大小写。

所以我尝试了 $ git config --global core.ignorecase false 但这并不能解决在同一更改中删除和添加同一文件的问题。

最佳答案

我遇到了同样的问题,当您在一个变更集中删除、添加和编辑同一文件时就会出现这种情况。

如果您执行git tf checkin --preview,您将看到详细信息。

我通过这样做解决了这个问题:

git tf checkin --deep --renamemode=none

关于git - 使用 GIT-TF 导入 - 项目已经有待处理的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25731970/

相关文章:

tfs - git-tf 如何避免每次 checkin 时都指定我的凭据

git - 在不下载对象的情况下获取引用

git - 如何管理github上过时的分支

java - Eclipse for openshift 私钥认证失败错误

azure - 使用自己的构建服务器时的 Visual Studio 在线构建分钟数

git tf 配置 "A server path must be absolute"

git - 显示 Git 索引中和工作副本中更改的文件

tfs - 您会推荐 TFS 还是其他持续集成系统?

version-control - TFS 流程模板 - 创建初始版本控制文件夹结构

Git-TF 将所有更改推送到另一个 TFS 存储库