Given the following recipe:
user "biocbuild" do
supports :manage_home => true
home "/home/biocbuild"
shell "/bin/bash"
action :create
end
subversion "/home/biocbuild" do
user "biocbuild"
repository "https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks"
svn_arguments "--depth empty"
svn_username "readonly"
svn_password "readonly"
end
It creates /home/biocbuild/MEAT0
as expected, but does NOT create /home/biocbuild/.subversion
which I expect and rely on.
Similarly, if I change the second resource from a subversion
resource to an execute
resource:
execute 'shallow MEAT0 checkout' do
command "svn co --depth empty --non-interactive --username readonly --password readonly https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/ MEAT0"
cwd "/home/biocbuild"
user 'biocbuild'
not_if {File.exists? "/home/biocbuild/MEAT0/.svn"}
end
…it also fails to create the /home/biocbuild/.subversion
directory.
If I run the command manually on my node:
svn co --depth empty --non-interactive --username readonly --password readonly https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/ MEAT0```
…that does create the /home/biocbuild/.subversion
directory.
Why doesn’t that directory get created via chef using either of the two methods listed?
If I run the subversion
or execute
resource as root
, then it creates the .subversion directory, but in the wrong place and with the wrong permissions.
This suggests as workaround (move .subversion directory, recursively chown it and the repository I checked out to be owned by the appropriate user) but I should not have to do that. Is this a bug?