Dep: Error while writing out vendor tree because of sirupsen/logrus

Created on 3 Jul 2017  ยท  25Comments  ยท  Source: golang/dep

What version of Go (go version) and dep (git describe --tags) are you using?

go version
go version go1.8.3 darwin/amd64

```
git describe --tags
v0.1.0-191-g4bfa359


### What `dep` command did you run?

dep init -v


Full Log:

```bash
dep init -v
Root project is "github.com/Skarlso/miner"
 4 transitively valid internal packages
 8 external packages imported from 6 projects
(0)   โœ“ select (root)
(1) ? attempt github.com/fsouza/go-dockerclient with 1 pkgs; 1 versions to try
(1)     try github.com/fsouza/go-dockerclient@master
(1) โœ“ select github.com/fsouza/go-dockerclient@master w/1 pkgs
(2) ? attempt github.com/hashicorp/go-cleanhttp with 1 pkgs; 1 versions to try
(2)     try github.com/hashicorp/go-cleanhttp@master
(2) โœ“ select github.com/hashicorp/go-cleanhttp@master w/1 pkgs
(3) ? attempt gopkg.in/yaml.v2 with 1 pkgs; 1 versions to try
(3)     try gopkg.in/yaml.v2@v2
(3) โœ“ select gopkg.in/yaml.v2@v2 w/1 pkgs
(4) ? attempt github.com/docker/go-units with 1 pkgs; 5 versions to try
(4)     try github.com/docker/[email protected]
(4) โœ“ select github.com/docker/[email protected] w/1 pkgs
(5) ? attempt github.com/Yitsushi/go-commander with 1 pkgs; 4 versions to try
(5)     try github.com/Yitsushi/[email protected]
(5) โœ“ select github.com/Yitsushi/[email protected] w/1 pkgs
(6) ? attempt github.com/kardianos/osext with 1 pkgs; 2 versions to try
(6)     try github.com/kardianos/osext@master
(6) โœ“ select github.com/kardianos/osext@master w/1 pkgs
(7) ? attempt github.com/docker/docker with 7 pkgs; 206 versions to try
(7)     try github.com/docker/[email protected]
(7) โœ“ select github.com/docker/[email protected] w/25 pkgs
(8) ? attempt golang.org/x/sys with 1 pkgs; 1 versions to try
(8)     try golang.org/x/sys@master
(8) โœ“ select golang.org/x/sys@master w/1 pkgs
(9) ? attempt github.com/Azure/go-ansiterm with 2 pkgs; 2 versions to try
(9)     try github.com/Azure/go-ansiterm@master
(9) โœ“ select github.com/Azure/go-ansiterm@master w/2 pkgs
(10)  ? attempt github.com/fatih/color with 1 pkgs; 10 versions to try
(10)      try github.com/fatih/[email protected]
(10)  โœ“ select github.com/fatih/[email protected] w/1 pkgs
(11)  ? attempt github.com/docker/go-connections with 1 pkgs; 8 versions to try
(11)      try github.com/docker/[email protected]
(11)  โœ“ select github.com/docker/[email protected] w/1 pkgs
(12)  ? revisit github.com/docker/docker to add 3 pkgs
(12)    โœ“ include 16 more pkgs from github.com/docker/[email protected]
(12)  ? revisit github.com/docker/go-connections to add 2 pkgs
(13)    โœ“ include 2 more pkgs from github.com/docker/[email protected]
(12)  ? attempt golang.org/x/net with 1 pkgs; 4 versions to try
(14)      try golang.org/x/net@master
(14)  โœ“ select golang.org/x/net@master w/1 pkgs
(13)  ? attempt github.com/opencontainers/runc with 2 pkgs; 19 versions to try
(15)      try github.com/opencontainers/[email protected]
(15)  โœ“ select github.com/opencontainers/[email protected] w/2 pkgs
(14)  ? attempt github.com/mattn/go-isatty with 1 pkgs; 4 versions to try
(16)      try github.com/mattn/[email protected]
(16)  โœ“ select github.com/mattn/[email protected] w/1 pkgs
(15)  ? revisit golang.org/x/sys to add 1 pkgs
(17)    โœ“ include 1 more pkgs from golang.org/x/sys@master
(15)  ? attempt github.com/sirupsen/logrus with 1 pkgs; 42 versions to try
(18)      try github.com/sirupsen/[email protected]
(18)  โœ“ select github.com/sirupsen/[email protected] w/1 pkgs
(16)  ? revisit golang.org/x/net to add 2 pkgs
(19)    โœ“ include 2 more pkgs from golang.org/x/net@master
(16)  ? attempt github.com/Microsoft/go-winio with 1 pkgs; 30 versions to try
(20)      try github.com/Microsoft/[email protected]
(20)  โœ“ select github.com/Microsoft/[email protected] w/1 pkgs
(17)  ? attempt github.com/pkg/errors with 1 pkgs; 11 versions to try
(21)      try github.com/pkg/[email protected]
(21)  โœ“ select github.com/pkg/[email protected] w/1 pkgs
(18)  ? attempt github.com/docker/distribution with 1 pkgs; 60 versions to try
(22)      try github.com/docker/[email protected]
(22)  โœ“ select github.com/docker/[email protected] w/2 pkgs
(19)  ? attempt github.com/mattn/go-colorable with 1 pkgs; 10 versions to try
(23)      try github.com/mattn/[email protected]
(23)  โœ“ select github.com/mattn/[email protected] w/1 pkgs
(20)  ? attempt github.com/Sirupsen/logrus with 1 pkgs; 42 versions to try
(24)      try github.com/Sirupsen/[email protected]
(24)  โœ“ select github.com/Sirupsen/[email protected] w/1 pkgs
  โœ“ found solution with 58 packages from 20 projects

Solver wall times by segment:
     b-list-versions: 27.530092011s
         b-list-pkgs:  4.888328452s
              b-gmal:  4.345379635s
  b-deduce-proj-root:  444.165341ms
         select-atom:    40.34556ms
             satisfy:   30.271191ms
            new-atom:    5.598894ms
         select-root:    5.026212ms
               other:      82.817ยตs
     b-source-exists:      61.153ยตs
            add-atom:      23.999ยตs

  TOTAL: 37.289375265s

  Using ^2.0.0 as constraint for direct dep github.com/Yitsushi/go-commander
  Locking in 2.0.0 (6b77592) for direct dep github.com/Yitsushi/go-commander
  Locking in master (1f92242) for transitive dep golang.org/x/net
  Locking in v0.4.2 (f533f7a) for transitive dep github.com/Microsoft/go-winio
  Locking in v2.6.1 (a25b9ef) for transitive dep github.com/docker/distribution
  Using master as constraint for direct dep github.com/fsouza/go-dockerclient
  Locking in master (4bc6a18) for direct dep github.com/fsouza/go-dockerclient
  Locking in master (3573b8b) for transitive dep github.com/hashicorp/go-cleanhttp
  Locking in master (0e01648) for transitive dep golang.org/x/sys
  Locking in v1.0.0 (202f255) for transitive dep github.com/sirupsen/logrus
  Locking in v0.0.8 (941b50e) for transitive dep github.com/mattn/go-colorable
  Locking in v1.0.0 (202f255) for transitive dep github.com/Sirupsen/logrus
  Locking in master (ae77be6) for transitive dep github.com/kardianos/osext
  Locking in v1.13.1 (092cba3) for transitive dep github.com/docker/docker
  Locking in v0.8.0 (645ef00) for transitive dep github.com/pkg/errors
  Using v2 as constraint for direct dep gopkg.in/yaml.v2
  Locking in v2 (cd8b52f) for direct dep gopkg.in/yaml.v2
  Locking in v0.1.1 (baf6536) for transitive dep github.com/opencontainers/runc
  Using ^1.5.0 as constraint for direct dep github.com/fatih/color
  Locking in v1.5.0 (570b54c) for direct dep github.com/fatih/color
  Locking in v0.2.1 (990a1a1) for transitive dep github.com/docker/go-connections
  Locking in v0.0.2 (fc9e8d8) for transitive dep github.com/mattn/go-isatty
  Locking in v0.3.1 (f2d77a6) for transitive dep github.com/docker/go-units
  Locking in master (19f72df) for transitive dep github.com/Azure/go-ansiterm
safe write of manifest and lock: error while writing out vendor tree: error while exporting github.com/sirupsen/logrus: /var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/.gitignore already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/.travis.yml already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/CHANGELOG.md already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/LICENSE already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/README.md already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/alt_exit.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/alt_exit_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/doc.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/entry.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/entry_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/examples/basic/basic.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/examples/hook/hook.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/exported.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/formatter.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/formatter_bench_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/hook_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/hooks.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/hooks/syslog/README.md already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/hooks/syslog/syslog.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/hooks/syslog/syslog_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/hooks/test/test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/hooks/test/test_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/json_formatter.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/json_formatter_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/logger.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/logger_bench_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/logrus.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/logrus_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/terminal_appengine.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/terminal_bsd.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/terminal_linux.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/terminal_notwindows.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/terminal_solaris.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/terminal_windows.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/text_formatter.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/text_formatter_test.go already exists, no checkout
/var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep843060556/vendor/github.com/sirupsen/logrus/writer.go already exists, no checkout
: exit status 128

What did you expect to see?

For it to work.

What did you see instead?

Did not work and failed with error message.

safe write of manifest and lock: error while writing out vendor tree: error while exporting github.com/sirupsen/logrus: /var/folders/1n/k6w9b2g51hg_dhlh_c8q9q8r0000gn/T/dep777414686/vendor/github.com/sirupsen/logrus/.gitignore already exists, no checkout
bug gps

Most helpful comment

After #813 I made a naive attempt to resolve this by changing references from Sirupsen to sirupsen, but that turned out to be way too naive, since there are dependencies in the vendor directory that import Sirupsen/logrus, and that haven't been updated to sirupsen. So IMO this definitely requires a workaround of some type in dep. Who ever thought it would be OK to have a case-insensitive filesystem anyway!

All 25 comments

You have github.com/sirupsen/logrus and github.com/Sirupsen/logrus in your dependency graph (note the difference in cases) since some of your dependencies still import github.com/Sirupsen/logrus.

We had an approach to this as described in https://github.com/sirupsen/logrus/issues/553#issuecomment-307486868 but no one got to implement it yet. ๐Ÿ˜ฉ

Well my dependencies have that. Damn that's not nice. :-( is there any kind of workaround for that?

I'm afraid that you can't solve this without updating dependencies at the moment (until we handle this case in dep).

But it's a transient dependency. I can't fix it. :( I don't depend on it. Some of my dependencies depend on it. How can I fix THAT? :)

@Skarlso yeah, until we fix it and fold cases together correctly, the only recourse you have is asking one of the projects you depend on to make the fix. Or, forking one and fixing it yourself, then pointing the import path to your fork with a source: directive in Gopkg.toml.

I'd recommend preferring lower case to upper, here.

Oh I see. Thanks @sdboyer. :-)

Would case folding require changes to the go tool or compiler?

(Assuming import paths remained mixed case).

@sdboyer's proposed solution doesn't require any changes to go toolchain or compiler. We can handle this within dep (more specifically, within gps).

So, Glide solves this with a --force flag, which detects if there was a change in a repo path, and if yes, it overrides the previous one and uses that. It's dirty, but it does work. :) For brevity, and because I dislike slack (:P) I'm going to put the proposed solution here as well.

  1. the system that deduces repo/project roots from import paths needs to be expanded to return some kind of informational structure of case sensitivity for different elements of the paths
  2. the system that manages repositories on disk needs to learn how to read those case sensitivity info structures, and we'll need a new trie implementation that works with them
  3. the solver itself will need to stop using simple map[string]<...> types, and use a custom map that, again, works with these case sensitivity info structures
  4. at least, this is what a "proper" solution looks like
  5. but the risk and complexity of that is considerable, so we'll likely have to settle for some harm reductive approaches in the meantime
  6. but yeah, i need to strategize a bit so that i can break this up into issues

Even glide has a similar issue. You won't be able to install the dependencies for the code below if you are on a case-insensitive file system. And the real issue for me is that version selection was done twice, and therefore you could have 2 versions of the same dependency.

package glidetest

import (
    l1 "github.com/Sirupsen/logrus"
    l2 "github.com/sirupsen/logrus"
)

func main() {
    _ = l1.New()
    _ = l2.New()
}

Ahhh totally forgot that that doesn't work. Right you are @ibrasho.

After #813 I made a naive attempt to resolve this by changing references from Sirupsen to sirupsen, but that turned out to be way too naive, since there are dependencies in the vendor directory that import Sirupsen/logrus, and that haven't been updated to sirupsen. So IMO this definitely requires a workaround of some type in dep. Who ever thought it would be OK to have a case-insensitive filesystem anyway!

This is also breaking our usage of dep in a Windows environment. Should dep be aware that it is running in a case-insensitive filesystem and in that case use the existing (the first one created wins) git repo?

@davidovich we may have to resort to something like that in order to stop the bleeding, but it's a pretty fundamental violation of dep's rules to do that. so, yeah..._temporary_. god, i hope ๐Ÿ˜จ

Is there an quick way to tell what transitive dep is importing Sirupsen/logrus (with a capital S)?

@tejasmanohar not currently, but #1079 will make it trivial.

Is there anyway to overcome this?

dep init -v
Failed to write dep tree. The following errors occurred: (1/1) failed to export github.com/sirupsen/logrus: /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/.gitignore already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/.travis.yml already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/CHANGELOG.md already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/LICENSE already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/README.md already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/alt_exit.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/alt_exit_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/appveyor.yml already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/doc.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/entry.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/entry_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/example_basic_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/example_hook_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/exported.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/formatter.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/formatter_bench_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/hook_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/hooks.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/hooks/syslog/README.md already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/hooks/syslog/syslog.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/hooks/syslog/syslog_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/hooks/test/test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/hooks/test/test_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/json_formatter.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/json_formatter_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/logger.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/logger_bench_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/logrus.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/logrus_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/terminal_bsd.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/terminal_linux.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/text_formatter.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/text_formatter_test.go already exists, no checkout /var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/writer.go already exists, no checkout : command failed: [git checkout-index -a --prefix=/var/folders/q_/4bc8zypd4h96hvj_bjksfsq80000gp/T/dep173764965/vendor/github.com/sirupsen/logrus/]: exit status 128 safe write of manifest and lock: error while writing out vendor tree: failed to write dep tree

@kumarsiva07 right now, it takes a lot of manual work. once #1079 is in, dep _should_ find a solution for you, if one exists.

given that you're just trying to get over the initial hump that is dep init, you might try compiling dep from that PR and running dep init for your case. at minimum, you should get a more useful error, and we could use some real-world testing of this!

I'm still encountering this on OSX with recent dep (1dc2d8b6)

@therealplato yeah I saw your note in slack - I'm honestly confused about how you arrived there ๐Ÿ˜ข

i arrived there by trying to use a top-level vendor folder with leftover cruft in subfolders from old vendoring @sdboyer

@spenczar provided a workaround (at least for me on OSX)

  • delete all folders with unwanted capitalization
  • commit that deletion
  • dep ensure

One option could be to allow exclusion of transitive dependencies, no?

Actually, it's already possible, it seems!

ignored = ["github.com/Sirupsen/logrus"]

[[override]]
  name = "github.com/sirupsen/logrus"
  version = "^1.0.5"

@therealplato that also does not make sense. dep prepares its vendor folder in a separate dir, then moves it into place.

im honestly not sure if an ignore like that would have the desired effect. it...might, but it also might have some weird side effects, as I can't recall how we deal with case normalization in ignores.

Well, at least the vendor directory seems clean.

$ find . -name logrus
./vendor/github.com/sirupsen/logrus
Was this page helpful?
0 / 5 - 0 ratings

Related issues

sdboyer picture sdboyer  ยท  3Comments

carolynvs picture carolynvs  ยท  3Comments

angryrobot picture angryrobot  ยท  3Comments

alethenorio picture alethenorio  ยท  3Comments

tapir picture tapir  ยท  3Comments