实施SVN“;分行”“;标签”;和“;主干”;使用composer和配置文件

实施SVN“;分行”“;标签”;和“;主干”;使用composer和配置文件,svn,branch,composer-php,webmin,Svn,Branch,Composer Php,Webmin,我在这里读了很多关于SVN repos中目录“branch”、“tag”和“trunk”含义的问答,现在我想我明白了,我正在尝试实现它 我使用Virtualmin来管理我的服务器,它通过其web GUI为我创建repo。然而,一旦创建,我的repo是空的,所以我想我需要自己创建目录结构并提交它。完成后,我将项目的文件放在主干中,由于我处于稳定的版本状态,我应该将其分支到branch/xxx(这将是我开发中的一个保存点)和tags/xxx(这将是我的开发版本) 如果我在这里之前是正确的,那么我会用

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

我使用Virtualmin来管理我的服务器,它通过其web GUI为我创建repo。然而,一旦创建,我的repo是空的,所以我想我需要自己创建目录结构并提交它。完成后,我将项目的文件放在主干中,由于我处于稳定的版本状态,我应该将其分支到branch/xxx(这将是我开发中的一个保存点)和tags/xxx(这将是我的开发版本)

如果我在这里之前是正确的,那么我会用乌龟切换到我的新标签,这是我下一次提交时唯一会更改的标签。顺便问一下,使用Tortoise,我需要右键单击当前标记目录,还是仍然能够直接从项目的根文件夹提交/恢复

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

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


谢谢

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

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

您应该将中继目录签出到工作副本。要切换到分支,请使用switch命令。没有理由对每个分支都有单独的配置文件,因为您的工作副本位于同一位置,可以指向您想要的任何东西:主干、分支甚至标记。关键是工作副本的根目录应该是项目的根目录:

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

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
所以它将是完全相同的,配置文件没有理由包含不同的文件路径