While designing a system encompassing development, quality assurance (QA), and production environments, each deployed with Terraform and featuring a Google Kubernetes Engine (GKE) cluster, how should you structure your source control repositories for both Infrastructure as Code (IaC) and application code, given that Anthos Config Management will be utilized, and all users will employ GitOps?