depとは、golangのpackageをローカルで管理するためのツール
Gopkg.lockに書かれたpackageのリビジョンを変更する方法を試したので残しておく
環境
- go: 1.9.3
- dep: v0.4.1
概要
Gopkg.lockファイルに依存関係にある各packageとリビジョンが以下のように書かれている
Gopkg.lock
[[projects]]
name = "github.com/xxxx/xxxx"
packages = ["."]
revision = "f587xxxxxxxxxxxxx"
version = "v1.2.0"
この状態から、branch = “master”のバージョンに変える方法を書いていく
1. Gopkg.lockを編集
(直接編集するのはアンチパターンのようですが)Gopkg.lockを編集する 下のように、versionを削除し、branchとrevisionを追加する revisionにはcommit idを設定する
Gopkg.lock
[[projects]]
branch = "master"
name = "github.com/satori/go.uuid"
packages = ["."]
revision = "36e9xxxxxxxxxxxxxxxxxxxxx"
dep ensure
で指定したバージョン、リビジョンのパッケージがvenderディレクトリ以下にダウンロードされる
2. depコマンドで指定する
depコマンドでバージョンを指定して、追加してやる
dep ensure -add github.com/xxxx/xxxx@master
実行すると、指定したバージョンのパッケージがvenderディレクトリ以下にダウンロードされ 各tomlファイルにバージョン情報が追記&編集される
Gopkg.toml
[[constraint]]
branch = "master"
name = "github.com/xxxx/xxxx"
Gopkg.lock
[[projects]]
branch = "master"
name = "github.com/xxxx/xxxx"
packages = ["."]
revision = "36e9xxxxxxxxxxxxxxxxxxxxx"
しかし、どちらも方法も
dep ensure --update
すると
Gopkg.lock