0

I'm using Godeps to save my dependencies with my go project.

For now my Godeps.json file looks like this:

{
    "ImportPath": "github.com/some/repo",
    "GoVersion": "go1.6",
    "GodepVersion": "v74",
    "Packages": [
        "gopkg.in/mgo.v2",
        "github.com/sendgrid/sendgrid-go",
        "gopkg.in/olivere/elastic.v3"
    ],
    "Deps": [
        {
            "ImportPath": "github.com/sendgrid/sendgrid-go",
            "Comment": "v2.0.0-22-g6ea8b2b",
            "Rev": "6ea8b2b2d54b2e54efcf8668867289a1838d96fd"
        },
        {
            "ImportPath": "github.com/sendgrid/smtpapi-go",
            "Comment": "v0.4.0-7-gb88787c",
            "Rev": "b88787cc8801ef961d7daef0bcb79ae3f50bfd52"
        },
        {
            "ImportPath": "gopkg.in/check.v1",
            "Rev": "4f90aeace3a26ad7021961c297b22c42160c7b25"
        },
        {
            "ImportPath": "gopkg.in/mgo.v2",
            "Comment": "r2016.02.04-1-gb6e2fa3",
            "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da"
        },
        {
            "ImportPath": "gopkg.in/mgo.v2/bson",
            "Comment": "r2016.02.04-1-gb6e2fa3",
            "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da"
        },
        {
            "ImportPath": "gopkg.in/mgo.v2/internal/sasl",
            "Comment": "r2016.02.04-1-gb6e2fa3",
            "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da"
        },
        {
            "ImportPath": "gopkg.in/mgo.v2/internal/scram",
            "Comment": "r2016.02.04-1-gb6e2fa3",
            "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da"
        },
        {
            "ImportPath": "gopkg.in/olivere/elastic.v3",
            "Comment": "v3.0.40",
            "Rev": "7a92d18eaf7a9f95d603e70970fb5adcd4dc62f1"
        },
        {
            "ImportPath": "gopkg.in/olivere/elastic.v3/backoff",
            "Comment": "v3.0.40",
            "Rev": "7a92d18eaf7a9f95d603e70970fb5adcd4dc62f1"
        },
        {
            "ImportPath": "gopkg.in/olivere/elastic.v3/uritemplates",
            "Comment": "v3.0.40",
            "Rev": "7a92d18eaf7a9f95d603e70970fb5adcd4dc62f1"
        }
    ]
}

If I want to install a new dependency using go get:

go get "github.com/robfig/cron"

This will override my Godeps.json file and it will store only the latest package I have installed, and further more It will delete the packages from my vendor folder.

How can I add this dependency instead of replace it?

Shikloshi
  • 3,761
  • 7
  • 32
  • 58
  • 1
    Besides that "using `go get`" won't update your deps (before you explicitly did it through `godep update` or similar, just ditch Godep and use govendor - saved me a lot of headache ;-) – Havelock Jun 21 '16 at 07:50
  • @Havelock Very good advice. – Shikloshi Jun 21 '16 at 09:02

1 Answers1

0

If you do not run godeps save then the new dependency will not be saved in your Godeps.json. It's hard to imagine why you would want two version of the same library though, but if you really want to do it, then during deployment of your project, first do godep restore and then install your dependency as go get "github.com/robfig/cron".This will then prevent a replacement

Raj Kumar
  • 1,547
  • 14
  • 19