【发布时间】:2010-11-02 15:02:54
【问题描述】:
多年来,我一直在以一种简单的方式进行编程:我会将源文件保存在按语言和项目组织的目录中,偶尔进行手动备份,如果我很聪明,我会在尝试之前复制一份新版本;差不多就这些了。
我最近决定开始使用修订控制。在检查了一堆文章和页面,并尝试了很多不同的之后,我最终选择了 Subversion(尽管它由于 BASE 使项目规模翻了一番)。
我现在需要一些我似乎无法找到有用信息的方面的建议。首先,我正在检查我是否具备正确使用 RCS 的基本流程:
- 将我的所有项目导入到 SVN 存储库中
- 删除原件
- 从存储库中签出项目
- 继续努力
- 提交
就这样?那么新项目呢?我必须在文件夹中创建一个新项目然后导入它吗?
我的目录结构也有问题,但首先,我可能应该布置一下我的设置。我是在我的家用机器上工作的单一开发人员。我的数据目录中有以下布局:
……等等。
我的 IDE 的包含路径中有几个我经常使用的头目录(例如 3rdParty\Graphics、Classes\CFoo 等)。依赖关系之前已经存在问题,但现在有了 RCS,情况就更糟了。例如,CoolApp 可能包含 ThisControl 和 CFoo。以前,如果我在开发 CoolApp 时修改了 CFoo 并破坏了它,其他使用它的应用程序(例如 CoolerApp)就不太理想了因此也会被破坏。
我这样做而不是复制 CFoo 等的原因。人。 CoolApp 和其他人的目录是因为尝试将每个副本中的更新合并回 \H 文件夹中的主副本很麻烦。 p>
我原以为通过使用正式的 RCS,可以避免此类问题。但是,现在发生的情况是,当我将项目从 \VC\CoolApp 等导入 SVN 存储库时,CFoo、*Libraries\** 等组件等不包含在内,因为它们位于外部目录中,因此没有版本控制——从而破坏了整个观点。
我正在寻找有关如何处理这种情况的提示。例如,如果我在 \H 中有 CWidget,在 \H 中有 WidgetTest(一个包含 CWidget 的测试容器) em>\VC,那么我将如何构造使得 WidgetTest 和 CWidget 都得到版本控制的东西,同时尽可能地简化它以供其他人使用使用 CWidget 来包含和使用最新版本的应用程序?
另外,我只能将所有项目导入到同一个存储库目录中,丢失了 Big\、Small\、Test\等结构。我无法让 Subversion 保留它。
最后,原始项目目录会变成什么?我至少看过一篇文章说一旦将它们导入存储库就可以删除它们。如果是这样,我可能会将它们压缩并收起来。
哦,我目前在我的 Apache 服务器上设置了 Subversion,并安装了 VisualSVN、SVNServe 和 CollabNet SVN 服务器。我已经让每个人都工作了,但我很想得到一些建议,因为我确信我只需要一个。
非常感谢。
【问题讨论】:
标签: svn directory dependencies components structure