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