diff --git a/README.md b/README.md index 20472b4..54467fc 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,23 @@ git-vendor ========== -A work in progress git command for managing golang vendor dependencies. +A git command for managing vendored dependencies. `git-vendor` is a wrapper around `git-subtree` commands for checking out and updating vendored dependencies. +By default `git-vendor` conforms to the pattern used for vendoring golang dependencies: + +* Dependencies are stored under `vendor/` directory in the repo. +* Dependencies are stored under the fully qualified project path. + * e.g. `https://github.com/brettlangdon/forge` will be stored under `vendor/github.com/brettlangdon/forge`. + +## Usage +See https://brettlangdon.github.io/git-vendor for the current MAN page documentation. + `git-vendor` provides the following commands: -* `git vendor add ` - add a new vendored dependency in `vendor/` -* `git vendor list` - list all current vendored dependencies, their source, and current vendored ref. -* `git vendor update ` - update a vendored dependency to ``. +* `git vendor add [--prefix ] []` - add a new vendored dependency. +* `git vendor list []` - list current vendored dependencies, their source, and current vendored ref. +* `git vendor update []` - update a vendored dependency. ## Installation Manually: @@ -21,14 +30,21 @@ make One-liner: ```bash -curl -sSL https://git.io/vz8AK | sudo bash /dev/stdin +curl -sSL https://git.io/vzN5m | sudo bash /dev/stdin ``` ## Example ```bash $ # Checkout github.com/brettlangdon/forge@v0.1.6 under vendor/github.com/brettlangdon/forge -$ git vendor add https://github.com/brettlangdon/forge v0.1.6 +$ git vendor add forge https://github.com/brettlangdon/forge v0.1.6 ++ git subtree add --prefix vendor/github.com/brettlangdon/forge --message 'Add "forge" from "https://github.com/brettlangdon/forge@v0.1.6" + +git-vendor-name: forge +git-vendor-dir: vendor/github.com/brettlangdon/forge +git-vendor-repository: https://github.com/brettlangdon/forge +git-vendor-ref: v0.1.6 +' https://github.com/brettlangdon/forge v0.1.6 --squash git fetch https://github.com/brettlangdon/forge v0.1.6 warning: no common commits remote: Counting objects: 405, done. @@ -38,21 +54,18 @@ Resolving deltas: 100% (227/227), done. From https://github.com/brettlangdon/forge * tag v0.1.6 -> FETCH_HEAD Added dir 'vendor/github.com/brettlangdon/forge' + $ # List current vendored dependencies $ git vendor list -vendor/github.com/brettlangdon/forge - commit: a7afbba3821d74c5b722c9195b954effa3d7420f +forge@v0.1.6: + name: forge dir: vendor/github.com/brettlangdon/forge - ref: v0.1.6 repo: https://github.com/brettlangdon/forge + ref: v0.1.6 + commit: 3335840c5f0ad9e821006588f1b16a3385d9c318 $ # Update existing dependency to a newer version -$ git vendor update vendor/github.com/brettlangdon/forge v0.1.7 -warning: no common commits -remote: Counting objects: 411, done. -remote: Total 411 (delta 0), reused 0 (delta 0), pack-reused 410 -Receiving objects: 100% (411/411), 68.91 KiB | 0 bytes/s, done. -Resolving deltas: 100% (231/231), done. +$ git vendor update forge v0.1.7 From https://github.com/brettlangdon/forge * tag v0.1.7 -> FETCH_HEAD Merge made by the 'recursive' strategy. @@ -60,12 +73,14 @@ Merge made by the 'recursive' strategy. vendor/github.com/brettlangdon/forge/scanner.go | 4 ++++ vendor/github.com/brettlangdon/forge/test.cfg | 1 + 3 files changed, 7 insertions(+) + $ # List current vendored dependencies $ git vendor list -vendor/github.com/brettlangdon/forge - commit: fcaa3c0cf3792fe3ad724c43d6db75f06fc5ecd5 +forge@v0.1.7: + name: forge dir: vendor/github.com/brettlangdon/forge - ref: v0.1.7 repo: https://github.com/brettlangdon/forge + ref: v0.1.7 + commit: 071c5f108e0af39bf67a87fc766ea9bfb72b9ee7 ```