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
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:
gopass is fully backwards compatible with pass…"gopass is fully compatible to pass…"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!!!