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

Nab*_*bab 6 svn branch webmin composer-php

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

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

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

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

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

谢谢!

JB *_*zet 8

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

分支机构用于保持正在进行的工作.

您应该将trunk目录签出到工作副本.要切换到分支,请使用switch命令.没有理由为每个分支都有单独的配置文件,在同一个位置,可以指向您想要的任何内容:thr trunk,分支,甚至是标记.关键点是工作副本的根目录应该是项目的根目录:

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

index.php
config.txt
some_folder
    foobar.php
Run Code Online (Sandbox Code Playgroud)

您的仓库将具有以下布局:

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
Run Code Online (Sandbox Code Playgroud)

你的工作副本将是:

MyProject --> references trunk
    index.php
    config.txt
    some_folder
        foobar.php
Run Code Online (Sandbox Code Playgroud)

如果要处理功能分支,请切换到分支,然后将使用您的工作副本

MyProject --> references feature_refactor_index_page
    index.php
    config.txt
    some_folder
        foobar.php
Run Code Online (Sandbox Code Playgroud)

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