多年来,我一直在以简单的方式编程:我将源文件保存在由语言和项目组织的目录中,偶尔进行手动备份,如果我很聪明,我会在尝试之前复制新版本;这就是它。
我最近决定开始使用版本控制。在查看了大量文章和页面,并尝试了不同的文章和页面后,我最终选择了Subversion(尽管由于BASE,它的规模翻了一倍)。
我现在需要一些关于我无法找到有用信息的方面的建议。首先,我要检查我是否有使用RCS的基本过程:
就是这样吗?那么新项目呢?我是否必须在文件夹中创建一个新项目然后导入它?
我也遇到了目录结构的问题,但首先,我应该布置我的设置。我是一名在家用机器上工作的开发人员。我的Data目录中有以下几种布局:
X:\Data \H \3rdParty \Graphics \Controls \ThisControl \ThatControl \Libraries \Classes \CFoo \CBar \VC \Big \CoolApp \res \Small \CoolerApp \res \misc \Test \CFooTest
......等等。
我在IDE的Include路径中经常使用几个头目录(例如 3rdParty \ Graphics , Classes \ CFoo 等)。之前的依赖关系已经存在问题,但现在使用RCS,情况更糟。例如, CoolApp 可能包含 ThisControl 和 CFoo 。以前,这可能不太理想,因为如果我在 CoolApp 上修改 CFoo 并打破它,其他使用它的应用程序如 CoolerApp 因此也会被打破。
我这样做的原因不是复制 CFoo 等。人。 CoolApp 以及其他人的目录是因为尝试将每个副本的更新合并回 \ H 文件夹中的主副本而烦恼。
我原以为通过使用正式的RCS,可以避免这种问题。但是,现在发生的事情是,当我将项目从 \ VC \ CoolApp 等导入SVN存储库时,组件如 CFoo ,* Libraries \ **因为它们在外部目录中而没有被包括在内,因此没有版本化 - 从而使整个观点失败。
我正在寻找有关如何处理此类情况的提示。例如,如果我在 \ H 中有 CWidget ,并且 WidgetTest (包含 CWidget 的测试容器)在< em> \ VC ,然后我将如何构建这样的东西,使得 WidgetTest 和 CWidget 得到版本化,同时为其他版本尽可能地简化它使用 CWidget 来包含和使用最新版本的应用程序?
此外,我只能将我的所有项目导入到同一个存储库目录中,丢失 Big \ , Small \ , Test \ 等结构。我无法让Subversion保持这一点。
最后,原始项目目录变成了什么?我已经看过至少有一篇文章说,一旦将它们导入存储库就可以删除它们。如果是这样的话,我可能只是把它们拉上来把它们拿走。
哦,我目前使用我的Apache服务器设置Subversion,以及安装了VisualSVN,SVNServe和CollabNet SVN Server。我已经让每个人都去工作,但是我会喜欢一些建议,因为我确定我只需要一个。
非常感谢你。
答案 0 :(得分:2)
颠覆书免费在线提供了几个建议的存储库配置:
此页面提供了进一步阅读的良好链接:
http://svnbook.red-bean.com/en/1.5/svn.tour.importing.html#svn.tour.importing.layout
关于SVN的一个非常好的事情,对于CVS来说并非如此,因为移动目录非常简单。因此,不要感到有压力想出一个“最终”组织权利的蝙蝠。做一些有效的事情,玩结构,直到你更喜欢它。
另外值得一提的是,SVN对数据使用了写时复制技术。因此,随时随地制作整个目录的“svn cp”副本。
答案 1 :(得分:2)