2011-08-19 54 views
1

我是SVN新手,所以请原谅我,如果我在这里说绝对垃圾。SVN Externals - Checkout整个项目或部分

什么,我想实现的是以下几点:

我想在我的项目中的两个库:供应商和本地。

供应商回购将包含我正在使用的框架的源代码,本地回购将包含在框架内运行的所有本地代码。我还应该注意到,我的本地源代码将通过符号链接与供应商交叉。

我想让我的存储库分开存放,我希望能够检查我的本地存储库并在不检出整个项目的情况下对其进行检查。虽然有时整个项目将不得不结账。

理想我需要能够检出,工作并提交到以下几点:

  1. 本地代码只
  2. 供应商代码仅
  3. 联合供应商和本地代码的

SVN外部是否允许这种行为?如果不是,那么最好如何实现呢?

+0

基于文件或目录的符号链接?基于目录的sylinks可以转换为svn:externals。 – Robert

+0

目录和文件符号链接。将主要目录 – David

回答

1

我看不出有什么理由使用svn:externals来解决您的问题。如果你需要做的就是检查出不同的项目,你可以组织你的资料库,像这样:

/ 
    local/ 
     branches/ 
     tags/ 
     trunk/ 
    vendor/ 
     <vendor-specific project structure> 

当你需要你的本地代码,运行svn co <server>/local/<branch>当你需要你的供应商代码运行svn co <server>/vendor/<whichever resource(s) you need>。有什么我错过了吗?

0

SVN外部将允许你1)和2)。对于3),您将不得不执行多个提交命令 - 每个修改的存储库上都有一个。

但脚本很容易(至少在linux上)。另一方面,我建议你在不同的级别上与你的供应商集成 - 例如,在java中,通过在你的服务器上构建JAR实现单独的回购和集成会更好。

0

通过分离您的本地和供应商存储库,您无法通过简单的步骤检出整个项目(本地+供应商)。我想你只有一个存储库,包括你的本地和厂商的源代码。现在您可以:

1)为您的本地目录定义外部函数,以便在签出时获取供应商代码。 (满足项目1)

2)为供应商目录定义一个外部函数,以便在签出时获取本地代码。 (项目2满意)

3)如果你想签出你的本地和供应商的源代码,这只是检查你的根(/ trunk)文件夹。(项目3得到满足)

如果你仍然坚持有两个独立的仓库,项目1和2很容易被外部满足。对于第三项,您可以编写一个简单的脚本来检查您的本地+供应商代码到您的工作文件夹中。