[PATCH] Mult-repo support via submodules

Brian Candler b.candler at pobox.com
Sat Nov 26 11:11:01 CET 2016

On 26/11/2016 06:47, Lance R. Vick wrote:
> This change makes `pass` commit to the innermost Git repository (as
> identified by the presence of a `.git` file/folder) that contains a
> file, when it is changed.

I strongly support this feature, and many thanks for preparing the 
patch. It applies cleanly to master.

The way I would prefer to use this is when the top level is *not* a git 
repo - i.e. ~/.password-store is just a shell directory, and inside this 
are separate git checkouts (or symlinks to the git checkouts, which is 
how I'm testing this now).  I'm just trying to avoid the complexity of 
another (unwarranted) git repo with .gitmodule cruft in it, and 
unnecessary commits.

I realise the following isn't going to work:

     pass git submodule add git at github.com:project/passdb.git Project

but I am quite happy to do:

     cd ~/.password-store; git clone git at github.com:project/passdb.git 


     cd ~/.password-store; ln -s ../git/passdb Project

Quick testing shows:

- the functionality of reading passwords is fine:

pass   # lists all passwords

pass foo   # lists all passwords under foo only

pass foo/bar   # lists all passwords under foo/bar only

pass -c foo/bar/baz   # gets the password to clipboard

- "pass git pull" fails because the top level is not a git repo. That's 
fine (although ideally it would recurse and git pull each repo)

I guess that's my fault for not having a top-level repo, which would let 
me do: pass git submodule foreach "git pull"

- "pass git pull foo" fails with the same error (ideally it would cd 
into foo and "git pull")

Finally, if this is committed, will similar changes need to be made to 
qtpass? Or does qtpass just invoke the 'pass' script under the hood?



More information about the Password-Store mailing list