【问题标题】:Moving a Repo folder from one project to another project keeping the code history - Azure DevOps将 Repo 文件夹从一个项目移动到另一个项目,保留代码历史记录 - Azure DevOps
【发布时间】:2019-11-18 09:08:58
【问题描述】:

我有一个项目,比如说 Project - A 和一个作为 RA 的 repo。我需要将一个文件夹从 RA 移动到 Project -** B** 的另一个 Repo RB 中的另一个文件夹。问题是我想在执行此操作时保留所有提交的历史记录。谁能指导我完成这项工作?

【问题讨论】:

  • 你使用 git 还是 TFVC?
  • @Hugh Lin:我正在使用 git。我忘了提到我不想移动整个 Repo,我想要的只是将项目的特定 repo 中的文件夹移动到另一个项目的另一个 repo 中的另一个文件夹。谢谢。
  • @ROSHAN 您可以将文件夹下载为zip然后上传。请查看我的答案更新。
  • @ROSHAN 好几天没收到你的回复,能否分享一下你关于这个问题的最新信息?如果您有任何疑问,请随时在此处分享。

标签: git azure-devops


【解决方案1】:

对于Git,只需使用Import Repository 功能,您就可以从其他项目的git repo 将Git 存储库导入您的团队项目。新导入的 repo 将保留所有提交历史记录。详情请参考此document

TFVC需要用到第三个工具,可以OpsHub Visual Studio Online Migration Utility试试。作为迁移的一部分,您还可以决定迁移到 Git。使用git-tfs to create a local git repository with all your TFVC history,然后将其推送到新团队项目中的裸 Git 存储库中。或使用TFVC import tool。详情可以参考这个case

更新: 您可以将文件夹下载为 Zip,然后将解压缩文件上传到另一个项目的 repo 的文件夹中。

【讨论】:

  • 想保存历史请参考这个solution
  • @ROSHAN 该解决方案是否适合您?如果您有任何疑虑,请随时在此处分享。
  • 从您提供的链接中获得了解决方案,它对我有用。谢谢@Hugh Lin。
  • 很高兴为您提供帮助。祝您有美好的一天:)
【解决方案2】:

1.从Source repo下载代码:

git clone $sourceRepoURL  $sourceRepoFolder --single-branch --branch master 

2.在 Target repo 中创建 master 分支 - 使用 Portal 或 Git

3.上传代码到Target repo:

git remote add --mirror=fetch target $targetRepoURL
git push target --all

【讨论】:

  • 谢谢。但我不想移动整个回购。只是其中的一个文件夹到另一个项目的另一个 Repo 中的另一个文件夹。
  • 如果您想要历史记录,那么我认为文件夹不可能 - 我能想到的唯一方法是删除所有其他文件/文件夹上传后。
  • 感谢@Scorpio。我从上面得到了解决方案。
  • 没问题。值得在这里发布 - 以防其他人有同样的要求!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 2020-04-05
  • 1970-01-01
相关资源
最近更新 更多