tools / godep

dependency tool for go
http://godoc.org/github.com/tools/godep
BSD 3-Clause "New" or "Revised" License
5.54k stars 455 forks source link

How to godep restore from a private bitbucket repository #495

Closed mikepc closed 7 years ago

mikepc commented 8 years ago

Expected behavior

Packages in a private repository would be restored.

Actual behavior

I receive an error:

godep: error downloading dep (bitbucket.org/XXX/logging): https://api.bitbucket.org/1.0/repositories/XXX/logging: 403 FORBIDDEN godep: Error downloading some deps. Aborting restore and check.

Steps to reproduce behavior

Create a private bitbucket repository, attempt to restore using godep under go 1.5.2

godep version output

godep v74 (darwin/amd64/go1.5.2)

go version output

go version go1.5.2 darwin/amd64

Contents of Godeps.json file

{ "ImportPath": "bitbucket.org/XXX/user", "GoVersion": "go1.5", "GodepVersion": "v74", "Deps": [ { "ImportPath": "bitbucket.org/XXX/logging", "Rev": "77d14a76024aa4364f79347464dc39f1f0b3188f" },

Contents of .gitconfig

[url "git@bitbucket.org:"] insteadOf = https://bitbucket.org/

(I also tried api.bitbucket.org, with and without the sub-directories)

freeformz commented 8 years ago

godep just shells out to git. Are you sure that git is working because of .netrc or cached stuff in a local .git?

mikepc commented 8 years ago

This is in a docker image (so no cache is at hand). I'm able to go get the private repo but godep is not working, which blew my mind as well.

Running the restore with the -d command yields "unable to determine root" for the private repo, so none of the VCS setup is happening.

FROM golang:1.5.2

WORKDIR /go/src/bitbucket.org/XXX/user

ADD . /go/src/bitbucket.org/XXX/user ADD keys/.gitconfig /root/.gitconfig ADD keys/.netrc /root/.netrc

ENV GO15VENDOREXPERIMENT 1

Update aptitude with new repo

RUN apt-get update

RUN apt-get install -y openssh-server

Copy over private key, and set permissions

ADD keys/id_logging /id_logging

RUN \ chmod 600 /id_logging && \
echo "IdentityFile /id_logging" >> /etc/ssh/ssh_config && \
echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config

RUN go get github.com/tools/godep

RUN go get bitbucket.org/XXX/logging # <--- This works

RUN godep restore # <-- This does not.

RUN go get RUN go build

RUN go install

CMD user

freeformz commented 8 years ago

I'll have to setup a bitbucket private repo to rest this out, will probably take a bit because @ Gophercon.

freeformz commented 8 years ago

In the meantime, could you provide the complete output of -d ?

mikepc commented 8 years ago
godep restore -d
versionString() godep v74 (darwin/amd64/go1.5.2)
majorGoVersion go1.5
VendorExperiment true
sep /vendor/
Error determining repo root for bitbucket.org/XXX/logging
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/codegangsta/negroni",
    Root: "github.com/codegangsta/negroni",
}
dep &main.Dependency{
    ImportPath: "github.com/codegangsta/negroni",
    Comment:    "v0.1-70-gc7477ad",
    Rev:        "c7477ad8e330bef55bf1ebe300cf8aa67c492d1b",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/codegangsta/negroni",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/davecgh/go-spew",
    Root: "github.com/davecgh/go-spew",
}
dep &main.Dependency{
    ImportPath: "github.com/davecgh/go-spew/spew",
    Comment:    "",
    Rev:        "5215b55f46b2b919f50a1df0eaa5886afe4e3b3d",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/davecgh/go-spew",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/dgrijalva/jwt-go",
    Root: "github.com/dgrijalva/jwt-go",
}
dep &main.Dependency{
    ImportPath: "github.com/dgrijalva/jwt-go",
    Comment:    "v2.4.0-2-g2240de7",
    Rev:        "2240de772c17d0e303c9bbc04bca67ffdfef32c4",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/dgrijalva/jwt-go",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/google/go-querystring",
    Root: "github.com/google/go-querystring",
}
dep &main.Dependency{
    ImportPath: "github.com/google/go-querystring/query",
    Comment:    "",
    Rev:        "2a60fc2ba6c19de80291203597d752e9ba58e4c0",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/google/go-querystring",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/gorilla/context",
    Root: "github.com/gorilla/context",
}
dep &main.Dependency{
    ImportPath: "github.com/gorilla/context",
    Comment:    "",
    Rev:        "1c83b3eabd45b6d76072b66b746c20815fb2872d",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/gorilla/context",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/gorilla/mux",
    Root: "github.com/gorilla/mux",
}
dep &main.Dependency{
    ImportPath: "github.com/gorilla/mux",
    Comment:    "",
    Rev:        "9c068cf16d982f8bd444b8c352acbeec34c4fe5b",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/gorilla/mux",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/joho/godotenv",
    Root: "github.com/joho/godotenv",
}
dep &main.Dependency{
    ImportPath: "github.com/joho/godotenv",
    Comment:    "v1-10-g4ed1339",
    Rev:        "4ed13390c0acd2ff4e371e64d8b97c8954138243",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/joho/godotenv",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/joho/godotenv",
    Root: "github.com/joho/godotenv",
}
dep &main.Dependency{
    ImportPath: "github.com/joho/godotenv/autoload",
    Comment:    "v1-10-g4ed1339",
    Rev:        "4ed13390c0acd2ff4e371e64d8b97c8954138243",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/joho/godotenv",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/moul/http2curl",
    Root: "github.com/moul/http2curl",
}
dep &main.Dependency{
    ImportPath: "github.com/moul/http2curl",
    Comment:    "",
    Rev:        "1c29be06762e43e04dd954a01c66991104ce4374",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/moul/http2curl",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/mrjones/oauth",
    Root: "github.com/mrjones/oauth",
}
dep &main.Dependency{
    ImportPath: "github.com/mrjones/oauth",
    Comment:    "",
    Rev:        "fdd43ab9ffd4adbedbecf59a0ec6a7e0d3ef3970",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/mrjones/oauth",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/parnurzeal/gorequest",
    Root: "github.com/parnurzeal/gorequest",
}
dep &main.Dependency{
    ImportPath: "github.com/parnurzeal/gorequest",
    Comment:    "v0.2.13-7-g27bfb0d",
    Rev:        "27bfb0dcbcc020d11b7839af416fb8dafc2ab01c",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/parnurzeal/gorequest",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/pmezard/go-difflib",
    Root: "github.com/pmezard/go-difflib",
}
dep &main.Dependency{
    ImportPath: "github.com/pmezard/go-difflib/difflib",
    Comment:    "",
    Rev:        "792786c7400a136282c1664665ae0a8db921c6c2",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/pmezard/go-difflib",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/segmentio/go-loggly",
    Root: "github.com/segmentio/go-loggly",
}
dep &main.Dependency{
    ImportPath: "github.com/segmentio/go-loggly",
    Comment:    "v0.4.3-4-ge78f697",
    Rev:        "e78f6971ebca5835614673e2f5f6a47ca5f13501",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/segmentio/go-loggly",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/stretchr/testify",
    Root: "github.com/stretchr/testify",
}
dep &main.Dependency{
    ImportPath: "github.com/stretchr/testify/assert",
    Comment:    "v1.1.3-19-gd77da35",
    Rev:        "d77da356e56a7428ad25149ca77381849a6a5232",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/stretchr/testify",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://github.com/visionmedia/go-debug",
    Root: "github.com/visionmedia/go-debug",
}
dep &main.Dependency{
    ImportPath: "github.com/visionmedia/go-debug",
    Comment:    "v2.0.0",
    Rev:        "ff4a55a20a86994118644bbddc6a216da193cc13",
    ws:         "",
    root:       "/Users/michael/code/go/src/github.com/visionmedia/go-debug",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://go.googlesource.com/crypto",
    Root: "golang.org/x/crypto",
}
dep &main.Dependency{
    ImportPath: "golang.org/x/crypto/bcrypt",
    Comment:    "",
    Rev:        "f18420efc3b4f8e9f3d51f6bd2476e92c46260e9",
    ws:         "",
    root:       "/Users/michael/code/go/src/golang.org/x/crypto",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://go.googlesource.com/crypto",
    Root: "golang.org/x/crypto",
}
dep &main.Dependency{
    ImportPath: "golang.org/x/crypto/blowfish",
    Comment:    "",
    Rev:        "f18420efc3b4f8e9f3d51f6bd2476e92c46260e9",
    ws:         "",
    root:       "/Users/michael/code/go/src/golang.org/x/crypto",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://go.googlesource.com/crypto",
    Root: "golang.org/x/crypto",
}
dep &main.Dependency{
    ImportPath: "golang.org/x/crypto/pbkdf2",
    Comment:    "",
    Rev:        "f18420efc3b4f8e9f3d51f6bd2476e92c46260e9",
    ws:         "",
    root:       "/Users/michael/code/go/src/golang.org/x/crypto",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://go.googlesource.com/net",
    Root: "golang.org/x/net",
}
dep &main.Dependency{
    ImportPath: "golang.org/x/net/publicsuffix",
    Comment:    "",
    Rev:        "5d0a0f8cd486626821d2ba44d471ab1c9271d38f",
    ws:         "",
    root:       "/Users/michael/code/go/src/golang.org/x/net",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/bsm/ratelimit.v1",
    Root: "gopkg.in/bsm/ratelimit.v1",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/bsm/ratelimit.v1",
    Comment:    "",
    Rev:        "f14ad9c78b155f69b480cfa41cb655259baac260",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/bsm/ratelimit.v1",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/mgo.v2",
    Root: "gopkg.in/mgo.v2",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/mgo.v2",
    Comment:    "r2015.12.06",
    Rev:        "e30de8ac9ae3b30df7065f766c71f88bba7d4e49",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/mgo.v2",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/mgo.v2",
    Root: "gopkg.in/mgo.v2",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/mgo.v2/bson",
    Comment:    "r2015.12.06",
    Rev:        "e30de8ac9ae3b30df7065f766c71f88bba7d4e49",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/mgo.v2",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/mgo.v2",
    Root: "gopkg.in/mgo.v2",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/mgo.v2/internal/sasl",
    Comment:    "r2015.12.06",
    Rev:        "e30de8ac9ae3b30df7065f766c71f88bba7d4e49",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/mgo.v2",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/mgo.v2",
    Root: "gopkg.in/mgo.v2",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/mgo.v2/internal/scram",
    Comment:    "r2015.12.06",
    Rev:        "e30de8ac9ae3b30df7065f766c71f88bba7d4e49",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/mgo.v2",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/redis.v4",
    Root: "gopkg.in/redis.v4",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/redis.v4",
    Comment:    "v4.0.2",
    Rev:        "eca5d02f24a99706525f77f544deee8e7894f26c",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/redis.v4",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/redis.v4",
    Root: "gopkg.in/redis.v4",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/redis.v4/internal",
    Comment:    "v4.0.2",
    Rev:        "eca5d02f24a99706525f77f544deee8e7894f26c",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/redis.v4",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/redis.v4",
    Root: "gopkg.in/redis.v4",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/redis.v4/internal/consistenthash",
    Comment:    "v4.0.2",
    Rev:        "eca5d02f24a99706525f77f544deee8e7894f26c",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/redis.v4",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/redis.v4",
    Root: "gopkg.in/redis.v4",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/redis.v4/internal/errors",
    Comment:    "v4.0.2",
    Rev:        "eca5d02f24a99706525f77f544deee8e7894f26c",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/redis.v4",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/redis.v4",
    Root: "gopkg.in/redis.v4",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/redis.v4/internal/hashtag",
    Comment:    "v4.0.2",
    Rev:        "eca5d02f24a99706525f77f544deee8e7894f26c",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/redis.v4",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/redis.v4",
    Root: "gopkg.in/redis.v4",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/redis.v4/internal/pool",
    Comment:    "v4.0.2",
    Rev:        "eca5d02f24a99706525f77f544deee8e7894f26c",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/redis.v4",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
rr &vcs.RepoRoot{
    VCS: &vcs.Cmd{
        Name:        "Git",
        Cmd:         "git",
        CreateCmd:   "clone {repo} {dir}",
        DownloadCmd: "pull --ff-only",
        TagCmd:      {
            {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
        },
        TagLookupCmd: {
            {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
        },
        TagSyncCmd:     "checkout {tag}",
        TagSyncDefault: "checkout master",
        LogCmd:         "",
        Scheme:         {"git", "https", "http", "git+ssh"},
        PingCmd:        "ls-remote {scheme}://{repo}",
    },
    Repo: "https://gopkg.in/redis.v4",
    Root: "gopkg.in/redis.v4",
}
dep &main.Dependency{
    ImportPath: "gopkg.in/redis.v4/internal/proto",
    Comment:    "v4.0.2",
    Rev:        "eca5d02f24a99706525f77f544deee8e7894f26c",
    ws:         "",
    root:       "/Users/michael/code/go/src/gopkg.in/redis.v4",
    dir:        "",
    matched:    false,
    pkg:        (*main.Package)(nil),
    missing:    false,
    vcs:        &main.VCS{
        vcs: &vcs.Cmd{
            Name:        "Git",
            Cmd:         "git",
            CreateCmd:   "clone {repo} {dir}",
            DownloadCmd: "pull --ff-only",
            TagCmd:      {
                {Cmd:"show-ref", Pattern:"(?:tags|origin)/(\\S+)$"},
            },
            TagLookupCmd: {
                {Cmd:"show-ref tags/{tag} origin/{tag}", Pattern:"((?:tags|origin)/\\S+)$"},
            },
            TagSyncCmd:     "checkout {tag}",
            TagSyncDefault: "checkout master",
            LogCmd:         "",
            Scheme:         {"git", "https", "http", "git+ssh"},
            PingCmd:        "ls-remote {scheme}://{repo}",
        },
        IdentifyCmd: "rev-parse HEAD",
        DescribeCmd: "describe --tags",
        DiffCmd:     "diff {rev}",
        ListCmd:     "ls-files --full-name",
        RootCmd:     "rev-parse --show-cdup",
        ExistsCmd:   "cat-file -e {rev}",
    },
}
Nothing to download
mikepc commented 8 years ago

That is the -d output when I run it locally (not on the Dockerfile)

freeformz commented 8 years ago

So this is the problem: https://github.com/golang/tools/blob/master/go/vcs/vcs.go#L668 The golang/tools/vcs stuff that godep uses doesn't use .netrc at all. I wonder if they would accept a patch to support .netrc. That's probably unlikely. Of course the go tooling doesn't work the same way either. :-(

mikepc commented 8 years ago

Right on, man. Thank you for hunting that down, I appreciate it.

freeformz commented 8 years ago

See also: https://github.com/golang/go/issues/16315

mikepc commented 8 years ago

Ok - how I bypassed the problem is kind of nasty.

FROM golang:1.5.2

WORKDIR /go/src/bitbucket.org/frobl/user

ADD . /go/src/bitbucket.org/frobl/user ADD keys/.gitconfig /root/.gitconfig ADD keys/.netrc /root/.netrc

ENV GO15VENDOREXPERIMENT 1

Update aptitude with new repo

RUN apt-get update

RUN apt-get install -y openssh-server

Copy over private key, and set permissions

ADD keys/id_logging /id_logging

RUN \ chmod 600 /id_logging && \
echo "IdentityFile /id_logging" >> /etc/ssh/ssh_config && \
echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config

RUN go get github.com/tools/godep

RUN go get github.com/segmentio/go-loggly # Dependency from the logging app

RUN go get bitbucket.org/frobl/logging # Use go get here

RUN godep go install # godep go install will not force the VCS get that godep restore does

CMD user

freeformz commented 8 years ago

BTW: You should not need to go get or godep restore any vendored deps (assuming the use of vendor/) before running go install. If you do, there is a problem somewhere.

mikepc commented 8 years ago

That's true, but what is it for then? I was thinking it was something akin to npm install :\

freeformz commented 8 years ago

So I would recommend removing the following lines:

RUN go get github.com/segmentio/go-loggly # Dependency from the logging app
RUN go get bitbucket.org/frobl/logging # Use go get here

and changing the last run line to

RUN go install

This assumes using `vendor/``

freeformz commented 8 years ago

It is there for historic purposes (people using workspaces) and a few different advanced uses. The only thing godep restore does is to make the packages in your $GOPATH reflect what is in Godeps.json. Since those packages are already in vendor/ and the go tool supports vendoring (go 1.5+), there is no godep restore required as the required code is already in vendor/.

freeformz commented 8 years ago

Does this help? https://github.com/tools/godep/blob/master/FAQ.md#should-i-use-godep-restore

freeformz commented 8 years ago

I also edited the readme around restore a little as well.

mikepc commented 8 years ago

lol vendor rocks .. so hard.

My final Dockerfile -- Blows my mind.

FROM golang:1.5.2

WORKDIR /go/src/bitbucket.org/frobl/user

ADD . /go/src/bitbucket.org/frobl/user

ENV GO15VENDOREXPERIMENT 1

RUN go install

CMD user

freeformz commented 8 years ago

Looks legit to me. ;-)

e-nikolov commented 7 years ago

Have there been any developments to this issue without involving vendoring?