Gopass: Failed to add file to tree - same name for file and directory

Created on 3 Feb 2017  Â·  6Comments  Â·  Source: gopasspw/gopass

Gopass failed to open the following structure:

$ tree .password-store
.password-store
├── domain.tld
│   ├── account01.gpg
│   ├── account02.gpg
├── domain.tld.gpg

$ gopass
Failed to add file domain.tld to tree: File domain.tld exists

Some info about my environment

$ uname
Linux x86_64
$ gopass version 
gopass 1.0.0 (8cae28cc 2017-02-02 15:45:17) go1.7.5

All 6 comments

This behaviour is intentional. The error message is not ... optimal.

Similar to unix filesystems gopass isn't designed to support a folder with the same name as a file in the same folder.

wontfix even though this makes it incompatible with pass?

I think the important distiction is that domain.tld.gpg != domain.tld. These are obviously valid and distinct posix paths, though the original pass ignores the .gpg "extension", essentially allowing you to use the same name as both a password and a password folder.

Personally, I'd really like to see the behavior corrected. It's breaking, for one, if you're using scripts expecting this behavior (however unlikely), and it leaves a really awkward workaround for even accessing the original password: gopass mv domain.tld tmp && gopass mv domain.tld tmp/old-root && gopass mv tmp domain.tld.

This isn't a behavior I deliberately use, preferring to organize my passwords by domain, but I've still managed to somehow accumulate 9 "conflicts" over the course of a year.

Would a pull request be accepted to fix this incompatibility with pass? It's literally the only reason I haven't switched to gopass, and I know others who tried to switch and switched back when they couldn't access some of their secrets. This is an awesome project which I'm really grateful for the existence of, but sadly this is a needless compatibility break in a project that claims 100% compatibility.

If you're not going to fix this, then I suggest making some corrections to the README, as the following statements are not true:

  • "The stores do not impose any specific layout for your data."
  • "Because gopass is fully backwards compatible with pass…"
  • "Since gopass is fully compatible to pass…"
  • The checkmark next to "Be 100% pass compatible" in the roadmap.

We'd definitely consider a proper PR to lift this limitation, but we plan to work on the current tree implementation for one of the next releases as the current one has too many limitations.

But we should update the docs as well, since a lot of people seem to care about pass compatibility a lot more than we do: We usually just use gopass and don't go back.

Thanks!!!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sevenmaxis picture sevenmaxis  Â·  4Comments

jungle-boogie picture jungle-boogie  Â·  7Comments

nostdm picture nostdm  Â·  5Comments

Zamiell picture Zamiell  Â·  6Comments

FlorinAndrei picture FlorinAndrei  Â·  7Comments