用作曲家和配置文件实现SVN“分支”,“标签”和“主干”

时间:2013-02-06 00:12:48

标签: svn branch composer-php webmin

我在这里读了很多Q / A关于SVN repos中目录“branch”,“tag”和“trunk”的含义,现在我想我明白了,我正在尝试实现它

我使用Virtualmin管理我的服务器,它通过其Web GUI为我创建了回购。但是,一旦创建我的repo是空的,所以我想我需要自己创建目录结构并提交它。一旦完成,我将项目的文件放在trunk中,当我处于稳定版本状态时,我应该将它分支到branch / xxx(这将是我开发中的一个保存点),以及标签/ xxx(将是我的开发版)。

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

我当前的项目有一个配置文件定义了几个绝对路径 - 可能是错的但我没有找到任何方法来避免它。因为我希望能够看到我的项目从任何分支/主干运行,这是否意味着我需要为每个版本配置不同的配置文件?如果是这样,我应该将此文件添加到忽略列表中吗?我的意思是什么是好的做法?

额外的问题:如果我想在这种情况下使用Composer,我的composer.json和vendor目录应该在哪里?

谢谢!

1 个答案:

答案 0 :(得分:8)

你会混淆标签和分支。标签不应该被修改。它们通常是在您每次发布应用程序时(从主干或分支机构)创建的。

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

您应该将trunk目录签出到工作副本。要切换到分支,请使用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

所以它完全相同,并且配置文件没有理由包含不同的文件路径。