3

我喜欢在发布版本时备份项目的源代码集。我使用 GExperts 项目备份,它似乎将项目管理器中的所有文件收集到 ZIP 文件中。您也可以将任意文件添加到此文件集中,但我始终意识到我不一定获得所有文件这一事实。除非我专门通过使用子句并将我拥有的所有单元添加到项目中,否则我永远无法确定存储重新创建可安装/可执行文件所需的所有文件。

我考虑过滚动一个应用程序来遍历一个项目,跟踪所有使用的单元并查看所有搜索路径并查看是否有该单元可用的源文件,并构建一个文件列表以这种方式备份,但是,嘿-也许有人已经完成了这项工作?

4

4 回答 4

12

您应该(强烈推荐)查看版本控制。

例如SVN(颠覆),CVS

这将允许您控制所有源的修订。它将允许您添加或删除源文件、回滚合并以及与管理项目源相关的所有其他好东西。

这将节省您的 a$%# 一天。

于 2011-03-08T04:06:19.510 回答
1

您可以通过两种方式解释您的问题:

  1. 如何确保备份至少足够的文件以便构建项目
  2. 如何确保我备份的文件不多,以便我仍然可以构建项目

第一个是确保您可以构建系统,第二个是允许您清理未使用的文件。

对于两者来说,一个包含单独构建系统的版本控制系统是可行的。

然后,对于每组新的更改,您可以使用这些步骤来确保两个条件都成立:

  1. 在您的日常开发系统中,将源代码的新版本签入您的版本控制系统。
  2. 在您单独的构建系统上,获取最新版本的源代码控制系统。
  3. 在构建系统上构建项目;如果失败,请转到第 1 步,并将缺少的文件从您的开发系统添加到您的版本控制系统
  4. 开始从项目中删除(一个接一个)您怀疑不需要的文件,然后重建直到失败。
  5. 当构建失败时,从版本控制系统中恢复该特定文件,然后使用下一个候选者继续步骤 3
  6. 当构建成功时,您拥有最少的文件集。
  7. 现在对版本控制系统和构建机器中的文件进行不同的概述。
  8. 将版本控制系统中但不在构建机器上的文件标记为已弃用或已删除。

大多数版本控制系统都有很好的方法在您的开发或构建系统中的文件与版本控制系统中的文件之间产生差异(通常针对您在版本控制系统中添加/删除/更新文件的每个历史时间点进行细粒度)。

您想要一个单独的构建系统(或两个单独的开发系统)的原因是您希望它们独立:您使用一个用于开发,另一个用于检查构建是否仍然正常。

这是未来您可能希望将其扩展到持续集成系统(运行单元测试、自动创建产品设置等等)的第一步。

——杰伦

于 2011-03-08T07:11:59.400 回答
1

要获取编译成可执行文件的所有单元的列表,您可以让编译器生成一个 MAP 文件。该文件将包含所有使用的单位的条目。

于 2011-03-09T10:02:42.090 回答
1

我不确定您是否在询问版本控制或如何确保您拥有所有文件。

我偶尔运行的一个有用的实用程序是一个程序,它为我的 dcu 输出文件夹中的所有文件创建一个 DirList。将扩展名从 .dcu 更改为 .pas 会为我提供所有源代码文件的列表。

当然它会遗漏 .inc 文件和其他非 .pas 文件,但也许这种思路会在某些方面对您有所帮助?

这个实用程序对我的价值在于,第二个内务实用程序会列出我的源代码树中没有相应 .dcu 文件的所有 .pas 文件。这(在完全编译所有程序之后)通常会显示一些不再使用的“垃圾”.pas 文件。

于 2011-03-08T13:37:20.057 回答