How to structure version control workflow for a bedrock-ansible + bedrock + sage project?

Being new to both bedrock and bedrock-ansible, and also being a git user with a fairly rudimentary level of git experience/knowledge, I’m a bit foggy on the proper way to set up version control for a new project.

Historically, for past WP work, including stuff built with sage, I’ve simply generated a working puphpet vagrant manifest, downloaded a copy of wp into the webroot (vagrant share folder), created a new theme directory for the custom theme dev work, and jammed the whole affair (vagrant config, wp, db dump, uploads, theme, plugins, etc.) into a single repository.

Now with bedrock, I’ve got:

  1. bedrock-ansible cloned in from one repo
  • bedrock cloned in from another repo
  • wordpress installed by bedrock/composer
  • my custom theme and my plugins (reorganized into the bedrock /app/ folder at present)

I’m assuming that the intended vcs workflow here is to not keep any of the bedrock stuff in the repo for my custom theme (not sure how I’d do that anyway since both bedrock-ansible and bedrock are still connected to their own repos), so… where do I git init within this structure?? What part of the overall file structure am I supposed to keep in a separate repo?

Also, subsequently, if I’m initializing this project on another dev machine, what’s that workflow supposed to look like? Something like…

  1. install bedrock-ansible dependencies
  • clone bedrock-ansible
  • clone bedrock
  • configure bedrock-ansible’s development group_vars/development file
  • vagrant up
  • clone the private repo containing my project into …where?
  • since bedrock seems to emphasize not keeping content or compiled assets with the project code, import my database/images/etc. from… where? (since they’re presumably not supposed to be in git anywhere…)

So, at a glance, it’s already looking like at least 3 distinct repos involved for a single wp website project, and this is starting to feel really complex.

What am I missing here? Surely I’m operating from a faulty paradigm, and this can’t be as convoluted as it seems?

https://roots.io/a-modern-wordpress-example/ + https://github.com/roots/roots-example-project.com will probably help you out a lot. It’s the structure we use.

Check that out first and let us know if there’s still some gap.

1 Like

Would be nice to update the bedrock-ansible readme with the “repo:”, “subtree:” etc. setting descriptions which are missing.

Yes, it would be nice.

2 Likes