我目前使用Dropbox作为源和资源的“备份”解决方案 - 而且很好,花花公子并多次保存我的培根。
我现在发现自己需要一个合适的版本控制系统 - 而且我真的不想在我的Dropbox文件夹中放置一个存储库。
首先,它会很快填满我的Dropbox容量 - 另一方面,我真的不希望Dropbox和版本控制软件“争夺”文件。
所以我想做这样的事情(我正在使用Mercurial,但我确信同样的理论适用于其他VC的东西)
MYDOCS Folder <-- this is where the repo will go
.hg (for Mercurial in this case)
DROPBOX Folder
WORK FOLDER
PROJECT1
PROJECT2
PROJECT3
...
这样,我工作的所有内容都由Dropbox覆盖 - 但我的版本控制在Dropbox之外。
显然不是我的DROPBOX文件夹中的每个文件都受版本控制 - 而且我的所有工作都只有1个存储库(不理想),但任何人都可以通过这种方法看到任何其他障碍吗?
注意:MYDOCS是单独备份的(更不常见),所以这里没有文件丢失的风险。
P.S。
我在周末花了一些时间来实现这个(使用Mercurial / TortoiseHG),它看起来效果很好。
有一些障碍 - 你必须设置积极的忽略过滤器(最后我只使用“*”并手动添加代码)否则TortoiseHG每次查找更改时都会盯着1000个文件中的10个文件进行心脏病发作/要添加的新文件。
这意味着它不会在现有项目中发现新文件,这是一个小小的痛苦 - 如果Mercurial实际上有这样的INCLUDE过滤器会很好......
p.p.s。我有一个明智的想法,让这个BIT更容易。
我在Dropbox外面创建了一个名为“Repo”的新文件夹,在里面我创建了一个Directory Junction(你的链接为* nix类型)到我的Dropbox里面的目录,里面包含了我的所有源代码(我的Eclipse工作区目录 - 基本上)
然后我将我的回购放入'repo'文件夹 - 这样就不会监督我的整个Dropbox,只是我希望它的部分 - 而且它仍然不在我的Dropbox内部;)
答案 0 :(得分:4)
正如您所指出的,这种方法的主要缺点是您被绑定到单个存储库。像Mercurial这样的分布式版本控制系统的一大优势是,存储库对于创建和使用孤立的小项目来说很便宜。
为什么不使用bitbucket.org来满足您的版本控制需求?您可以根据需要创建任意数量的私有存储库,并根据需要使用尽可能多的磁盘。这里唯一的缺点是你只能分享多少用户,但考虑到你上面概述的方法,这似乎不是问题。
答案 1 :(得分:0)
当你在Dropbox中保存.hg目录时,你不会遇到存储库损坏,但你可能最终会提交更少的东西,这也是一个无赖。
答案 2 :(得分:0)
Mercurial硬编码根与工作目录处于同一级别,所以我认为你不能改变它。
但是,您可以将.hg
目录符号链接到另一个目录:
cd WORK_FOLDER
ln -s ../MYDOCS_Folder/.hg .hg
hg up null # to reset the dirstate
hg up
Mercurial将遵循符号链接并正常运行,但可能Dropbox(如果它表现得很好)不会。执行此操作时,请确保永远不要在WORK FOLDER
中执行任何操作,因为这样会搞砸。
老实说,我不推荐这种工作流程,但似乎很脆弱。