【发布时间】:2012-10-30 03:23:04
【问题描述】:
我知道模板。我知道之前有人问过这个问题(here 和here)。请让我详细解释一下我的情况,希望您能理解我为什么再次问这个问题。
我使用名为 PowerBuilder 的 IDE(和语言)。 PowerBuilder (PB) 将源代码和二进制目标代码一起存储在 PBL (pibble) 文件中。一个 PBL 可以包含多个类的源代码。因此,将 PBL 置于版本控制之下是不切实际的。应该独立修订每个单独的类。但是,由于 IDE 使用的是 PBL 文件本身,并且由于 PBL 中存在目标代码,因此在克隆存储库时需要将这些文件推出。如果需要,我可以详细说明。
PB IDE 为 MSSCCAPI 接口提供挂钩,以便它可以支持源代码控制提供程序。它适用于 Visual Source Safe 6!但是 Mercurial 没有可用的 MSSCCAPI 提供程序。 (我之前有asked。)是的,我正试图让创建 PB 的人支持更新的 API,但不知道这需要多长时间。但是,IDE确实提供了它自己的基本 SCC 功能。这不是一个“真正的”解决方案;它更像是“这会让你度过难关,你这个便宜的 b*****d,直到你可以购买真正的 SCC 程序”类型的东西。但是,它的工作原理是将每个类的源导出到单独的文本文件中,并为每个类创建一个相应的“状态”文件(PRP 文件)。文本文件? Mercurial可以追踪这些!仅供参考,这个基本的“通过”SCC 选项不会保留历史记录或处理合并。
让我详细介绍一下这些 PRP 文件。 PB 的内置 SCC 解决方案是围绕排他锁构建的。退房,入住,所有这些旧东西。它通过 PRP 文件管理这些签出和签入。它还通过相应的 PRP 文件的存在知道什么 是 和什么 不是 在修订控制之下。
首先是 PRP 文件。我需要将这些推出(并为新类添加),以便 IDE 可以看到应该跟踪相应的类。如果没有 PRP 文件,IDE 不会导出语法,并且在 Mercurial 中无法跟踪任何内容。但是,如果我继续跟踪 PRP 文件的更改,那么这意味着我也在推出类的排他锁,而没有人想要这样。所以我需要添加 PRP 文件,但不跟踪对它们的任何后续更改。
对于二进制 PBL 文件,我也需要相同的内容。如前所述,我需要它们存在以便 IDE 知道哪些 PBL 构成了代码库,但是目标代码、编译和类相互依赖的复杂性意味着动态重新创建它们是不可行的。所以我需要将 PBL 添加到 Mercurial,但我真的不想跟踪对这些 PBL 的更改。虽然我可能能够使用 PRP 文件的模板,但我不能对这些二进制 PBL 文件这样做。
希望这能充分解释我的情况。我很抱歉这个问题太长了,但我想确保你清楚地了解我所面临的问题,这样我就不会得到一堆即兴的“这是 X 的副本”回应。感谢您的耐心等待以及您可以提供的任何指导。
【问题讨论】:
-
Mercurial 是最终的、未讨论的选择或替代方案吗?
-
> “Mercurial 没有可用的 MSSCCAPI 提供程序” - 但是旧版本呢,have 支持哪个?
-
@Lazy Badger,您发布的文件会导致 PowerBuilder 崩溃。我怀疑它与我在第三段中链接的问题中测试和提到的提供商相同。这就是为什么我说没有可用的提供者。 :(
-
也许克隆旧的 HgSCC 版本并开始调试?当你问之前我看了一下被撕掉的东西,它看起来并没有那么多,但我记得它看起来并不容易重新集成(例如,在一个可以提取新代码的叉子中)接口的 HG 侧)。不过,修复旧代码库可能并不难。 PBSCC 代理确实有效,因此您可以将其用作 MSSCCAPI 端的参考。另一个角度是破解 PBSCC Proxy 与 HG 对话。除了在 SVN WC 的数据中达到峰值之外,它还运行命令行客户端。
-
休,在某种程度上,我正在破解 PBSCC 代理。虽然我没有直接修改它的库,但我正在尝试将其版本数据库用于其最初预期之外的目的(将其“数据库”推入 Hg”。分叉 HgSCC 源对我来说绝对是一种教育体验具有强大的学习曲线。
标签: version-control mercurial powerbuilder