2013-02-06 33 views
6

我在这里读了很多Q/A的有关目录“分支”,“标签”和“主干”的含义实施SVN回购,现在我想我明白了,我试图实现它。的SVN“分支”,“标签”和“主干”与作曲家和配置文件

我用的Virtualmin来管理我的服务器,并通过其Web GUI我创建的回购协议。然而,一旦创建我的回购是空的,所以我想我需要自己创建目录结构并提交它。一旦完成,我把项目的文件放在trunk中,并且由于我处于稳定版本状态,所以我应该将它分支到分支/ xxx(这将成为我开发中的一个保存点),并且将标记/ xxx(将会是我的开发版)。

如果我是正确的,直到在这里,然后我用龟切换到我的新标签,而这仅仅是将在我的下一个提交更改。顺便说一下,使用Tortoise,我需要右键单击当前的标签目录,还是仍然可以直接从我的项目的根文件夹提交/恢复?

我目前项目已确定了几个绝对路径的一个配置文件 - 也许是错误的,但我没有发现任何方式,以避免它。由于我希望能够看到我的项目从任何这些分支/ trunk中运行,这是否意味着我需要为每个版本配置不同的文件?如果是这样,我应该将这个文件添加到忽略列表?我的意思是什么会被认为是良好的做法?

额外的问题:如果我想在这种情况下使用的作曲家,我composer.json和供应商目录,应该是什么?

谢谢!

回答

8

您正在混淆标签和分支。标签不应该被修改。他们通常是在每次发布应用时创建的(从主干​​或分支)。

分支用于保存正在进行的工作。

您应该检查中继目录到工作副本。要切换到分支,请使用switch命令。没有理由为每个分支设置单独的配置文件,在同一位置,可以指向任何你想要的东西:thr trunk,分支,甚至标签。关键的一点是,工作副本的根应该是你的项目的根:

因此,假设您的项目文件包含以下文件:

index.php 
config.txt 
some_folder 
    foobar.php 

你的回购将具有以下布局:

trunk 
    index.php 
    config.txt 
    some_folder 
     foobar.php 
branches 
    maintenance_1.0 
     index.php 
     config.txt 
     some_folder 
      foobar.php 
    feature_refactor_index_page 
     index.php 
     config.txt 
     some_folder 
      foobar.php 
tags 
    v1.0 
     index.php 
     config.txt 
     some_folder 
      foobar.php 

你的工作副本会是:

MyProject --> references trunk 
    index.php 
    config.txt 
    some_folder 
     foobar.php 

如果你想在特性分支工作,切换到分支,然后你的工作副本会

MyProject --> references feature_refactor_index_page 
    index.php 
    config.txt 
    some_folder 
     foobar.php 

因此,这将是exacttly一样的,而且也没有理由为配置文件包含不同的文件路径。

+0

Got it!谢谢! :) – Nabab