Separate git repository per module
mityacor opened this issue · 1 comments
Description of problem
We don't have one big repo, but each puppet module lives in its own git repository.
Can I still use octocatalog-diff ?
I was trying to follow advanced-using-without-git, but it still tries to find a repository in
/opt/rh/ruby200/root/usr/local/share/gems/gems/octocatalog-diff-1.4.0/lib/octocatalog-diff/catalog-util/git.rb:67:in 'new': could not find repository from '/home/dmitry.korochkin/puppet' (Rugged::RepositoryError) from /opt/rh/ruby200/root/usr/local/share/gems/gems/octocatalog-diff-1.4.0/lib/octocatalog-diff/catalog-util/git.rb:67:in 'branch_sha' from /opt/rh/ruby200/root/usr/local/share/gems/gems/octocatalog-diff-1.4.0/lib/octocatalog-diff/catalog-util/cached_master_directory.rb:112:in 'git_repo_checkout_bootstrap' from /opt/rh/ruby200/root/usr/local/share/gems/gems/octocatalog-diff-1.4.0/lib/octocatalog-diff/catalog-util/cached_master_directory.rb:49:in 'run' from /opt/rh/ruby200/root/usr/local/share/gems/gems/octocatalog-diff-1.4.0/lib/octocatalog-diff/cli.rb:99:in 'cli' from /opt/rh/ruby200/root/usr/local/share/gems/gems/octocatalog-diff-1.4.0/bin/octocatalog-diff:34:in '<top (required)>' from /opt/rh/ruby200/root/usr/local/bin/octocatalog-diff:23:in 'load' from /opt/rh/ruby200/root/usr/local/bin/octocatalog-diff:23:in '<main>'
Command line:
/opt/rh/ruby200/root/usr/local/bin/octocatalog-diff -d --bootstrap-then-exit --bootstrapped-from-dir=/etc/puppetlabs/puppet --bootstrapped-to-dir=/home/test/puppet
Platform and version information
- Your OS: Linux RHEL6
- Your Ruby version: ruby 2.0.0p353
- Your version of Puppet: 3.8.7
- Your version of octocatalog-diff: 1.4.0
Since you're looking to override bootstrapping, I suggest that you skip the --bootstrap-then-exit
step entirely. There is no value, only more complexity, in wrapping a bootstrap script through octocatalog-diff in your situation.
I'd suggest something like this (untested):
#!/bin/bash
olddir=$(mktemp -d /tmp/octocatalog-diff-old-checkout.XXXXXXXX)
newdir=$(mktemp -d /tmp/octocatalog-diff-new-checkout.XXXXXXXX)
cleanup() {
rm -rf "$olddir"
rm -rf "$newdir"
}
trap cleanup EXIT
cd "$olddir"
# check out all your stuff from master branch
cd "$newdir"
# check out all your stuff from feature branch
bundle exec bin/octocatalog-diff --bootstrapped-from-dir "$olddir" --bootstrapped-to-dir "$newdir" "$@"