我希望能够拥有一个包含多个项目的Vagrant环境。这些项目应该受到版本控制,以及Vagrant环境本身。这是我想到的示例目录树:
MyProject
├── Environment/
│ ├── WSServer/ -> ../WSServer/
│ ├── Vagrantfile
│ └── Website/ -> ../Website/
├── WSServer/
└── Website/
(“ - >”是符号链接)
这里的一个问题是VirtualBox不喜欢符号链接,并且解决这个问题的解决方案在VB v5方面似乎已经过时了。即使有解决方案,如果Environment /受版本控制,则符号链接也会被破坏。
我还以为子模块可以工作,但是还有一些问题:
那么,我如何成功地将Vagrant环境,WSServer /和Website / all保持在版本控制之下并将它们保存在单独的存储库中?或者更确切地说,通常/标准的方式是什么?
答案 0 :(得分:1)
我建议的东西不能满足100%的要求,但这也是我在某个项目中所做的事情,如果你不介意Vagrantfile不是你的git repo的一部分,它就有效。
符号链接对vb没有好处,因为你注意到了(它试图找到vm上的目标目录,所以一般它不存在)所以我把它们用于主机但我在synced_folder
上添加myproject/WSServer
直接{1}}我直接在这个上面有我的git repo。所以所有的工作都是从这个文件夹完成的,我可以从这个文件夹中提交/推送,并使用synchronized文件夹直接从vm读取。
可能将上面与git子模块耦合起来可以正常工作。