是否可以将 MKS Integrity 存储库导入 git 中?

2023-12-29

我只需要源树及其历史记录。我现在不关心需求/问题。我用命令行玩了一下,看看是否可以获得主干和一些开发路径的更改包列表。我认为应该可以为每个更改包提取差异,并使用它来重放自 git 中第一次提交以来的所有更改。像这样的东西:

  1. 获取第一个提交并将其添加到 git
  2. 获取下一个CP
  3. 获取 CP 的差异
  4. 将 diff 应用于 git 工作目录
  5. 添加并提交更改到 git
  6. 重复(2.)直到最后一个CP

您还可以用检查点替换更改包(对我来说就足够了)。

一种更简单的方法是仅签出 CP 并添加/提交到 git。但随后您将无法跟踪添加、删除、移动和重命名操作。

有谁知道如何从“si diff”获得统一差异?那已经有很大帮助了。

有任何想法吗?

Edit2:
添加了一个答案,显示我实际上是如何进行迁移的......


我无法发布我编写的实际程序,因为我不是在自己的时间里完成的。不过,我可以发布我是如何做到的。使用任何脚本语言重做它应该很容易。 我编写的工具一次仅迁移一个分支。我会告诉它我想要哪个分支(例如 1.21.1)以及分支中的开始和结束修订(例如 4 和 78 将迁移从 1.21.1.4 开始到 1.21.1.78 的所有修订)。为了将所有分支都放在一个存储库中,我将提供 .git 目录以用于导入。

  • begin loop from starting revision to ending revision
    • CURRENTREV=BRANCH.loopcounter
    • 创建存储库目录
    • 将 .git 目录移动到 repo 目录中
    • 将 .gitignore 文件移动到 repo 目录中
    • chdir 进入 repo 目录
    • 通过“si createandbox -P MKS_PROJECT_PATH --yes --projectRevision=CURRENTREV”在 repo 目录中创建 mks 沙箱
    • 通过“si viewprojecthistory --rfilter=range:CURRENTREV-CURRENTREV”获取修订描述,捕获输出!
    • 从之前的输出中提取用户、日期、标签、评论
    • “git 添加。”
    • 将上面提取的信息通过管道传输到“git commit -qF -”(如果您想要像检查点注释这样的多行,则不能执行 -m )
    • 通过“si Dropsandbox --yes index.pj”删除沙箱
    • 将 .git 和 .gitignore 移动到保存位置(用于下一次迭代)
    • 删除沙箱目录中所有剩余文件
    • 移至父目录 (..)
    • 删除沙箱/repo目录
  • 创建最终的 git 目录
  • 将 .git 和 .gitignore 移动到最终的 git 目录
  • “git重置——硬头”

Done.

MKS 对其字符串使用某种 ASCII 编码,而 git 通常使用 UTF-8,因此在将元数据(用户名、评论、标签等)导入到 git 时请注意问题。

对于更多分支,请执行以下操作:

  • 在 git 目录中签出分支应启动的修订版本并创建分支(“git checkout -b NEWBRANCHNAME”)
  • 现在将 .git 和 .gitignore 移动到保存位置并删除整个目录
  • 现在做与上面相同的事情

还有一件事:“si”是 MKS 命令行工具。因此,您要么需要指定其完整路径,要么将其路径放入搜索路径中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将 MKS Integrity 存储库导入 git 中? 的相关文章

  • Git 合并提交[重复]

    这个问题在这里已经有答案了 我是 git 的新手 并且非常喜欢它 在新分支中开发时 我不断提交应用程序的各种开发 状态 现在我必须检查它以进行审查 但不希望所有内容都进入不同的提交 不同的评论和 ID 我怎样才能像第一次一样推送所有更改 g
  • git:如何在多台电脑之间正确共享本地副本

    我拉了一些公共存储库 在这里和那里做了一些更改 我将它们提交给我的本地副本 我经常从远程获取公共存储库中的更改 有时 我会处理来自不同 PC 的本地副本 并且需要在 PC 之间移动整个源代码 以便它们共享完全相同的更改 有几次我搞砸了复制并
  • 使用 Git“正确”合并代码

    我刚刚通过合并 FETCH HEAD 并获取我最近的更改而不是他的更改来覆盖我同事的代码 我想恢复到合并之前 然后进行合并 强制在他接触文件的地方接受他的更改 但在没有任何其他更改的地方进行合并 我的 git 日志 使用 l2 创建 现在看
  • 在 git 中标记多个分支?

    我有一个有两个分支的 git 存储库 一个用于制造 测试的代码 另一个是实际的生产固件 它们几乎相同 现在是时候剪切一个版本并发送给制造商了 所以我自然想在两个分支上放置一些适当的标签 但是 似乎 git 不允许我在两个分支上放置相同的标签
  • 从 Jenkins Pipeline 捕获 shell 脚本输出

    我正在尝试提取 git 分支并在 Jenkinsfile 中提交信息 如下所示 def commit sh returnStdout true script git rev parse HEAD trim def branch sh ret
  • Access 2007 数据库和应用程序的版本控制

    我需要对 Microsoft Access 2007 数据库和应用程序进行版本控制 目前 所有内容都包含在单个 mdb 文件中 该应用程序包括 Forms VBA code 实际数据库 我假设我需要将数据库与表单 代码分开 我希望能够将表单
  • 使用 loadtxt 简化多个文件的导入 (Python)

    我想简化使用 loadtxt 导入多个文件的方式 我执行以下操作 rc1 loadtxt 20120701 Gp xr 5m txt skiprows 19 rc2 loadtxt 20120702 Gp xr 5m txt skiprow
  • git-review -> 将草稿提升为代码审查

    我创建了一个 Gerrit 草稿 git review D 完成草稿后 如何创建代码审查以便最终将其合并到主版本中 如果我只是这样做 git review 我得到这个输出 git review remote remote Processin
  • git 远程更新和 fetch 之间的区别?

    Is git remote update相当于git fetch 是的 也不是 git remote update从所有遥控器获取 而不仅仅是一个 不看代码就知道是否remote update只是一个 shell 脚本 可能 它基本上为每个
  • Git Svn 的问题,为什么为什么我永远不能 dcommit?

    我有一个 git svn 存储库 git svn clone http myrepo myrepo 我不想在master工作 git checkout b development 黑客了一段时间 git checkout master gi
  • 说它已提交,但在 GitHub 中它没有显示

    我刚刚在 Ubuntu 机器上安装了 Rails 我设置了 git 并创建了一个 ssh 密钥来链接到我的帐户 我创建了一个要提交的存储库 并创建了一个示例项目来测试 名为first app 当我提交时 它说一切都已提交 但我去了 gith
  • 如何在 SourceTree 中执行 gitcherry-pick --continue ?

    解决冲突后 如何继续使用 SourceTree 进行挑选 如果我正在执行变基操作并且遇到冲突 那么在单击提交 SourceTree 解决冲突后 我可以继续进行变基操作 但如何继续樱桃采摘操作呢 cherry pick有效地将提交 A 中的更
  • 化石入门

    我刚刚开始接触化石 我选择化石的理由是 跨平台 单个可执行文件 单个存储库文件 典型扩展名 fossil 据说很容易使用 但它们不是全部吗 我有几个问题 上下文 假设我想跟踪几个目录中每个文件的更改 适当地命名为 dir1 dir2 等 假
  • 处于分离头状态时如何保存更改?

    使用 Git 时 我必须返回到特定的提交 我做了一些更改 现在我想提交它们 这样做的正确方法是什么 我的项目现在处于分离头状态 如果我提交 我的更改会被保存吗 git commit 否则 我应该怎么做才能不丢失我的更改 免责声明 git 并
  • 变基中的传入和当前

    有一个与此类似的问题 但其范围太笼统 而且响应过于复杂 我的问题是非常准时 当从我的分行MyBranch并进行像这样的变基git rebase master并发生冲突 这是传入的变化 哪个是目前的变化 请不要关闭这个问题 将其链接到之前所说
  • 无法将本地更改推送到远程位桶

    我在本地存储库中添加了一个新的自述文件 当我推送到开发分支时 出现此错误 分支 refs heads develop 只能通过拉取请求进行修改 与项目管理员检查您的分支权限配置 到 ssh bitbucket companyname com
  • 如何在 Windows 上更新 GIT_SSH 环境变量

    我正在使用 TortoiseGit 并且刚刚将 Windows 版 Git 从旧版本升级到 2 7 2 在此过程中 位置ssh exe已移至C Program Files x86 Git bin ssh exe to C Program F
  • 如何将 wiki 移动到 Azure DevOps 中的其他项目

    我需要将 wiki 从一个项目移至其他项目 我们正在使用 Azure DevOps 并且这两个项目位于同一组织中 我在 DevOps 中没有看到任何工具或选项 wiki 是 git 存储库 您可以克隆两个存储库 将数据从当前项目复制到第二个
  • 无法变基:以下未跟踪的工作树文件将被合并覆盖

    我正在尝试重新调整我的分支并压缩我的大部分提交 当我这样做时 我收到以下错误 error The following untracked working tree files would be overwritten by merge sr
  • SmartGIT 不要求 ssh 密钥

    切换到新计算机后 我必须再次安装 Windows 版 SmartGIT 现在尝试克隆我的 fedorahosted org repository 密钥存储在 C User myusername ssh SmartGIT 附带了全新安装 并且

随机推荐

  • 如何部署到现有的powerBI工作区?

    我正在尝试实施 powerBI部署管道 https learn microsoft com en us power bi create reports deployment pipelines overview 我已经为每个环境 开发 测试
  • 在 MySQL 的 where 子句中使用 BLOB

    我正在开发一个应用程序 需要通过检查存储在 MySQL 数据库中的指纹来对数据进行一些验证 建议使用 AFIS 等专有软件 但我想知道是否可以通过使用来完成检查select 语句的 where 子句中的 BLOB 列用于过滤数据 这可能吗
  • 如何取消对 Excel 工作簿的保护

    我有一个受密码保护的 Excel 工作簿 整个文档 而不仅仅是一个工作表或一组工作表 如果没有密码 您将无法打开该文件 我知道密码 所以我能够打开它 但没有明显的方法来关闭密码保护 具体来说 我想在 VBA 中执行此操作 因为最终我希望能够
  • 存储我的应用程序特定数据的正确位置在哪里?

    我正在开发一个小型 C Winforms 游戏 我想要做的事情之一是保存应用程序特定的数据 然而 我有点难以理解应该存储的正确位置 据我所知 应用程序可能存储多种类型的数据 因此保存数据的位置也不同 1 应用属性 设置 例如应用程序存储数据
  • 使用 cypress 选择下拉列表项

    我需要使用 cypress 测试 angularjs 应用程序的下拉菜单 我需要单击下拉列表 然后从下拉列表中选择或单击一个项目 我尝试如下 它适用于一个实例 但不适用于其他时间 因为第二个 get 方法中的 id 号在动态生成时不断变化
  • 评级问题

    我在使用 jquery ui 单选按钮集创建评级代码时遇到问题 它将集成到内容管理中 因此我不想使用 ID 并限制编码限制 我已经使用数组完成了 90 的工作 但是当我从下到上选择时 它无法正常工作 任何人都可以帮忙解决这个问题吗 谢谢
  • 如何在 Silverlight 4 应用程序中获取 Outlook 2003 数据

    是否可以将 Outlook 2003 自动化与 Silverlight 4 结合使用 或者也许有一些不同的方法可以在 Silverlight 应用程序中使用 Outlook 2003 MAPI 我正在使用 Silverlight 4 并尝试
  • Bootstrap模式弹出确认防止多次点击

    button name remove levels on click function e var form this closest form e preventDefault confirm modal backdrop static
  • 从 Python 脚本子进程获取输出

    这可能是一个愚蠢的问题 但我有一个启动子进程的 Python 脚本 也是一个 Python 脚本 并且我需要该子进程返回三个整数 如何从启动子进程的 Python 脚本获取这些返回值 我是否必须将整数输出到标准输出 然后使用 check o
  • SharedPreferences.onSharedPreferenceChangeListener 未被一致调用

    我正在注册一个像这样的首选项更改侦听器 在onCreate 我的主要活动 SharedPreferences prefs PreferenceManager getDefaultSharedPreferences this prefs re
  • 适用于 Android 的 Google Play 音乐 API

    我正在开发一款 Android 音乐应用程序 我需要两件事 获取艺术家的专辑封面 专辑名称 曲目名称等 打开 Google Play 页面购买这张专辑 首先我目前正在使用iTunes API http www apple com itune
  • 如何操作 jqGrid 的搜索/过滤器?

    我有一个带有导航栏的 jqGridsearch true and multipleSearch true 我想在我的 UI 中添加一个按钮 自动向搜索添加附加规则 我尝试直接操作过滤器的 postData 但以这种方式添加的值不会显示在搜索
  • Java VS C# 中的 intBitsToFloat 方法?

    在 C 中将位转换为浮点数时 我得到了错误的数字 让我们使用这个位number 1065324597 In Java 如果我想从位转换为浮点数 我会使用intBitsToFloat method int intbits 1065324597
  • 在 BigQuery 中安排查询

    我有一个 BigQuery 查询 它将两个表联合起来 每日 Google Analytics 导出 我想要的是将查询保存为视图或表 但随着新的 Google Analytics 数据加载到 BigQuery 中 最终视图 表每天会自动更新
  • 如何使用 FileProvider 共享任意路径的文件?

    我的应用程序允许用户下载一些内容并将其存储在他选择的文件夹中 我想创建一个 ContentProvider 来共享这些文件 但当下载的文件存储在应用程序默认路径之外时 我不知道该怎么做 我试图声明以下文件路径
  • 所有 gms/firebase 库必须使用完全相同的版本规范 Android Studio

    我知道这个问题已经被问过很多次了 但我无法弄清楚 让我解释一下 5 月 2 日 Firebase 宣布 Firebase Android SDK 现在拥有独立的版本号 检查这里 Firebase Android 发行说明 https fir
  • .NET webservice - 快速确认,但继续在后台处理

    我正在构建一个将由供应商的应用程序使用的 NET Web 服务 但我不确定如何完成以下任务 供应商将致电我的网络服务并提供一些信息 但希望快速返回确认信息 仅说明我收到了他们的信息 他们不关心我用它做什么 也不想确认我已经完成处理 我传递的
  • 重新排序数组

    比如说 我有一个如下所示的数组 var playlist artist Herbie Hancock title Thrust artist Lalo Schifrin title Shifting Gears artist Faze O
  • 将 Bladejs 与 Meteor 结合使用

    我最近将节点刀片智能包添加到我的流星中 并且静态内容显示良好 但是 我无法使用任何模板变量 在我安装 Blade 之前 模板变量与车把配合得很好 有人知道我做错了什么吗 控制台输出 ReferenceError player is not
  • 是否可以将 MKS Integrity 存储库导入 git 中?

    我只需要源树及其历史记录 我现在不关心需求 问题 我用命令行玩了一下 看看是否可以获得主干和一些开发路径的更改包列表 我认为应该可以为每个更改包提取差异 并使用它来重放自 git 中第一次提交以来的所有更改 像这样的东西 获取第一个提交并将