0

我正在寻找 Git 和 Seapine Surround SCM 之间的双向桥梁,类似于git-tfsgit-svn。当我一直在写这篇文章时,我突然想到这是一个非常高的要求,所以我很期待评论/答案是不可能的。

我发现了这个问题,但我认为它并没有真正涵盖我想要的内容。我不想从 Surround 迁移出来,我也不关心 Git 是否知道 Surround 中的文件历史记录。

我的公司使用了无法满足我需求的环绕单片机。我一直在 Cygwin 中使用 git 来打乱代码,但 Surround 非常适合在单个 SCM 存储库下切换 Git 分支。通常,SCM 会告诉我在切换 Git 分支后我已经修改了一些文件,但是当我要求 diff 时,它会告诉我这些文件是相同的。这是一个可用的解决方案,但很明显它不是一个非常流畅的解决方案,因为 Git 和 Surround 实际上并不相互交谈,也不是真正的快速朋友。

我不能 100% 确定我上面提到的桥梁是我需要的完美类似物。我在下面包含了我的要求和用例。如果有其他可用的解决方案使我能够执行我的用例,我会全力以赴。

我们将(最终)切换到 TFS,所以我希望有一个相对简单的解决方案(如果存在的话)。我愿意花一些时间研究和配置东西,但我真的不知道从哪里开始。如果有人有关于如何解决这个问题的提示,我什至有一些带宽来编写我自己的解决方案。

假设我无权做任何事情,但检查现有的存储库并提交给它们。我不能分支,创建新的回购,无论如何。

要求:

  • 适用于 Windows 7。
    • 理想情况下,这意味着它可以在 Git bash 或 Cygwin 中使用,但 GUI 解决方案也是可以接受的。
  • 最少/无配置(即交钥匙解决方案或只需要我将其指向正确目录的东西)。
    • 假设您对 Git、Cygwin 和 Surround 有一定的熟练程度,并且已经安装了所有这三个。
    • 考虑到这是一台公司计算机,我有很大的自由度来安装我需要的任何东西。
  • 最好是有据可查的。

用例:

  • 使用 Git 管理并行错误修复和功能实现。
    • 如果我提交对 Git Master 的更改,我希望将它们签入 SCM 存储库。
    • 如果我将一个分支合并到 Git Master,我希望 SCM 查看这些更改并将它们暂存以供签入。
    • 如果我从 Master 创建一个分支,我不希望它在 SCM 中创建相应的分支:至少不会自动创建。如果这是一个选项可能会很好,但绝对不是必需的。

我暂时把细节留在这里。但是,如果我没有充分解释我的问题以及我希望如何解决这些问题,我可以解释任何这些东西。

4

1 回答 1

1

这是我的实验性hacky解决方案。它根本不是双向的桥梁,但它允许我使用 Git 处理我的本地工作区,而不会中断 Surround(到目前为止)。

为避免扰乱环绕声:

  • 在 Surround 工作目录中初始化一个 Git 存储库。
    • Surround(至少是我公司的 IT 设置的方式)忽略 .git 文件夹。
    • 将 .MySCMServerInfo 添加到 .gitignore。确保模式在子目录中查找:**/.MySCMServerInfo应该可以解决问题。
  • 将这个新的 Git 存储库克隆到不同的物理位置。
    • Surround 无法发现此克隆存储库的任何更改,因此您可以做任何您想做或需要的事情,而无需 Surround 更明智。

将本地工作空间的更改转移到中央环绕存储库是整个事情的棘手部分,我还没有解决问题。

  • 确保您的 Surround 工作目录具有来自 repo 的最新版本。
  • 使用 Git 将这些更改合并到克隆的存储库中(即 Surround 未跟踪的存储库)。
  • 根据需要解决任何合并冲突。
  • 将更改提交到您的克隆存储库。
  • 将克隆存储库中的更改获取到原始存储库。
  • 检查环绕声中的更改。

这一点都不优雅,但在我等待 TFS 时,它为我的本地工作区带来了很多 Git 功能。

于 2014-10-30T17:26:47.743 回答