Svn 移动学生如何有效地将Dropbox与源代码管理系统结合使用?

Svn 移动学生如何有效地将Dropbox与源代码管理系统结合使用?,svn,version-control,dropbox,Svn,Version Control,Dropbox,我买了一台笔记本电脑为下学期做准备,这将使我在全职工作的同时参加大学编程课程。当然,我将使用一个源代码控制系统(可能是Subversion),并有在Dropbox文件夹中创建我的存储库的想法,这将使我能够使用笔记本电脑或台式机(或者任何其他可以访问Internet的计算机)在本地签出和处理代码,然后将其提交回共享Dropbox存储库 这不是实现我目标的好方法,有什么陷阱或原因吗?(假设我可以通过做一些愚蠢的事情来避免损坏SVN存储库。) 使用web托管解决方案是否有明显的优势,超过Dropbo

我买了一台笔记本电脑为下学期做准备,这将使我在全职工作的同时参加大学编程课程。当然,我将使用一个源代码控制系统(可能是Subversion),并有在Dropbox文件夹中创建我的存储库的想法,这将使我能够使用笔记本电脑或台式机(或者任何其他可以访问Internet的计算机)在本地签出和处理代码,然后将其提交回共享Dropbox存储库

  • 这不是实现我目标的好方法,有什么陷阱或原因吗?(假设我可以通过做一些愚蠢的事情来避免损坏SVN存储库。)
  • 使用web托管解决方案是否有明显的优势,超过Dropbox的优势(即,它是免费的,并且已经在我的机器上安装好)
  • 在多个位置处理代码时,是否有其他共享策略

注意:我不打算与其他人共享Dropbox文件夹,因为我意识到多人通过
文件://
访问存储库是个坏主意。我的问题只涉及个人用户。

乍一看,这似乎是个坏主意(基本上是用不同的工作流将两个不同的版本控制系统相互层叠),但如果您是唯一的开发人员,有一种方法对您来说是有意义的

(作为旁注,Dropbox为您提供的是数据的脱机备份以及与之同步的服务器。如果您试图单独使用SVN,则必须将您的计算机配置为允许远程访问。这可能会或可能不会破坏交易,取决于您在系统管理类任务中的专业水平。)

您可以做的是在Dropbox驱动器中为给定项目创建存储库。然后在签出工作副本时,在Dropbox文件夹的外部创建它,使用
文件:
协议访问您的回购。这样,存储库在所有机器上保持同步,但每台机器都有一个单独的工作文件夹,允许您在一台机器上处理与另一台机器不同的分支(如果愿意),或者维护未提交的代码而不将其传播到另一台机器。如果有多人通过
文件:
协议访问回购协议,则会出现故障-由于可能存在竞争条件,不建议这样做


注意:与其他DVC一样,此解决方案允许您在脱机时继续提交。但请注意,这样做,然后在允许回购协议同步之前在另一台机器上离线提交可能是灾难性的!在另一台机器上进行提交之前,允许回购协议在脱机工作后进行同步非常重要。

我建议使用DVCS,而不是使用Dropbox进行Subversion。原因是,在网络连接受限/无网络连接的情况下,通过同时将同一文件从更改为计算机,可能会与Dropbox产生合并冲突。如果您试图像这样弄乱subversion存储库,那么修复存储库将非常困难,而使用popoular DVCS系统,您至少可以将损坏的repo核化,并将其本地版本克隆回Dropbox共享


我在写上述内容时意识到,您没有提及您是否使用多台具有相同Dropbox帐户的计算机,因此,如果您仅使用一台计算机使用Dropbox帐户,则上述内容并不适用(我猜如果您做了一些非常愚蠢/怪异的事情,可能会适用)。

我会使用Git和Github。然后你有了一个源代码管理,你可以很容易地从两个地方访问它


或者更理想的做法是设置您自己的服务器来托管svn或git repo,但这显然不总是一个选项。

为什么不在所有机器上直接使用svn,而不是通过Dropbox实例?这种工作流的优点是什么?Dropbox已经内置了一些基本的版本控制-这对于单人使用应该足够了。@fBreeto:我希望能够从所有机器访问相同的存储库。Dropbox是用来替代单独的独立服务器的。@James Kolpack:我不同意。我希望拥有源代码管理系统提供的所有日志消息、回滚、分支等功能。另外,Dropbox的版本控制只能持续有限的时间(我认为免费帐户只能持续30天)。是否有什么原因分布式VCS(git、mercurial、Montone等)不适合您?在我看来,DVCS显然比dropbox中的svn更简单。您描述的工作流程就是我建议做的,我对问题进行了编辑,以使其更清楚。我添加了一个潜在危险的注释。我应该补充的是,我对emacs和shell配置文件正是这样做的:我在Dropbox上有一个Mercurial存储库,我将它克隆到我使用的所有机器上。每当我对配置进行更改时,我都会将它们推回到Dropbox repo,并将它们拉到所有克隆上。到目前为止效果很好。