update aliases.md

This commit is contained in:
成武 2014-01-14 20:52:01 +08:00
parent b7321bbc50
commit a5f3ba2e56
1 changed files with 11 additions and 20 deletions

View File

@ -8,15 +8,15 @@
当你使用 VCS 资源库,你将只会得到类似于这样的版本号:从分支发布的标签获取,它看起来像 `2.0`。比较特殊的是,对于你的 `master` 分支,你会得到一个最新提交的 `dev-master` 版本。对于你的 `bugfix` 分支,你会得到一个最新提交的 `dev-bugfix` 版本。以此类推,这些特殊的版本标识可以用来获取最新的分支源码。
如果你的 `master` 分支使用标签发布了 `1.0` 系列版本,即 `1.0.1`、`1.0.2`、`1.0.3` 等等,任何依赖它的资源包都可能会 require `1.0.*` 这个版本约束。
如果你的 `master` 分支使用标签发布了 `1.0` 系列版本,即 `1.0.1`、`1.0.2`、`1.0.3` 等等,任何依赖它的资源包都可能会使用 `1.0.*` 这个版本约束。
如果有人想要最新的 `dev-master` 版本,他们将会碰到一个问题:其它的包可能还使用了 `1.0.*` 这个版本约束,因此在 require 这个开发版本时将会产生冲突,因为 `dev-master` 不符合 `1.0.*` 的约束。
如果有人想要最新的 `dev-master` 版本,他们将会碰到一个问题:另一些依赖它的包可能使用了 `1.0.*` 这个版本约束,因此在 require 这个开发版本时将会产生冲突,因为 `dev-master` 不符合 `1.0.*` 的约束。
这时,就可以使用别名。
## 分支别名
`dev-master` 分支是一个在你 VCS 项目上的主分支。有些用户会想要使用最新的开发版本这是相当常见的情况。因此Composer 允许你别名你的 `dev-master` 分支为一个 `1.0.x-dev` 的版本。这是通过在 `composer.json` 文件中的 `extra` 下指定 `branch-alias` 字段来完成的:
`dev-master` 指向一个在你 VCS 项目上的主分支。有些用户会想要使用最新的开发版本这是相当常见的情况。因此Composer 允许你别名你的 `dev-master` 版本为一个 `1.0.x-dev` 的版本号。这是通过在 `composer.json` 文件中的 `extra` 下指定 `branch-alias` 字段来完成的:
{
"extra": {
@ -28,29 +28,21 @@
此处的分支版本必须以 `dev-` 开头(不可比较的版本名称),对应的别名必须是可比较的开发版本名称(即,以数字开头,并以 `.x-dev` 结束)。`branch-alias` 所引用的分支必须是存在的。对于 `dev-master` 你需要在 `master` 分支上提交它。
其结果是,任何人都可以 require `1.0.*` 版本,并且他们实际将会得到 `dev-master` 版本。
其结果是,任何人都可以使用 `1.0.*` 版本约束来得到 `dev-master` 版本。
为了定义分支别名,你必须是需要别名的包的所有者。如果你想别名一个第三方包,而又不想 fork 它到自己的版本库,可以使用行内别名,我们在接下来就会提到它。
## Require 中使用行内别名
## 使用行内别名
Branch aliases are great for aliasing main development lines. But in order to
use them you need to have control over the source repository, and you need to
commit changes to version control.
分支别名是非常适合用于主开发分支的。但为了使用它们,你需要拥有对源码的控制权,并且你需要提交别名修改到你控制的版本库。
This is not really fun when you just want to try a bugfix of some library that
is a dependency of your local project.
当你只想在本地项目中尝试一些依赖库的 bug 修正时,这并不是最好的方式。
For this reason, you can alias packages in your `require` and `require-dev`
fields. Let's say you found a bug in the `monolog/monolog` package. You cloned
[Monolog](https://github.com/Seldaek/monolog) on GitHub and fixed the issue in
a branch named `bugfix`. Now you want to install that version of monolog in your
local project.
出于这个原因,你可以在 `require``require-dev` 字段中直接别名你需要的包。比方说那你找到了 `monolog/monolog` 的一个 bug。你在 GitHub 上克隆了 [Monolog](https://github.com/Seldaek/monolog) 并在名为 `bugfix` 的分支上修正了一个问题。现在你想安装这个版本到你的本地项目。
You are using `symfony/monolog-bundle` which requires `monolog/monolog` version
`1.*`. So you need your `dev-bugfix` to match that constraint.
你所使用的 `symfony/monolog-bundle` require 了 `monolog/monolog` 并约束了版本 `1.*`. 因此你需要让你的 `dev-bugfix` 满足该版本约束。
Just add this to your project's root `composer.json`:
只要在你项目根目录的 `composer.json` 文件中加入以下内容:
{
"repositories": [
@ -65,8 +57,7 @@ Just add this to your project's root `composer.json`:
}
}
That will fetch the `dev-bugfix` version of `monolog/monolog` from your GitHub
and alias it to `1.0.x-dev`.
它将会在你的 GitHub 上获取 `monolog/monolog``dev-bugfix` 版本并将其版本别名为 `1.0.x-dev`
> **Note:** If a package with inline aliases is required, the alias (right of
> the `as`) is used as the version constraint. The part left of the `as` is