具有多个项目的流动环境

时间:2015-09-12 19:42:19

标签: git vagrant

我希望能够拥有一个包含多个项目的Vagrant环境。这些项目应该受到版本控制,以及Vagrant环境本身。这是我想到的示例目录树:

MyProject
├── Environment/
│   ├── WSServer/ -> ../WSServer/
│   ├── Vagrantfile
│   └── Website/ -> ../Website/
├── WSServer/
└── Website/

(“ - >”是符号链接)

这里的一个问题是VirtualBox不喜欢符号链接,并且解决这个问题的解决方案在VB v5方面似乎已经过时了。即使有解决方案,如果Environment /受版本控制,则符号链接也会被破坏。

我还以为子模块可以工作,但是还有一些问题:

  • 目前我不使用远程Git存储库,但是
  • 即使我是这样,从WSServer /或Website /中提交并推送每一个小变化都是相当繁琐和低效的,然后从Environment /拉出来看看变化。

那么,我如何成功地将Vagrant环境,WSServer /和Website / all保持在版本控制之下并将它们保存在单独的存储库中?或者更确切地说,通常/标准的方式是什么?

1 个答案:

答案 0 :(得分:1)

我建议的东西不能满足100%的要求,但这也是我在某个项目中所做的事情,如果你不介意Vagrantfile不是你的git repo的一部分,它就有效。

符号链接对vb没有好处,因为你注意到了(它试图找到vm上的目标目录,所以一般它不存在)所以我把它们用于主机但我在synced_folder上添加myproject/WSServer直接{1}}我直接在这个上面有我的git repo。所以所有的工作都是从这个文件夹完成的,我可以从这个文件夹中提交/推送,并使用synchronized文件夹直接从vm读取。

可能将上面与git子模块耦合起来可以正常工作。