时间机器与源代码控制?


18

最终,我被说服开始为我的代码使用某种版本控制,而不是每天结束时压缩项目的副本。

下载了Tortoise SVN,并用它在我的硬盘上创建了一个本地存储库。我已经使用了2天了,但是我不得不说,使用它实际上比仅在Explorer中手动复制项目更麻烦。当然,您只存储增量更改,但是对于当今的廉价磁盘,当您只有小型项目时,我不能说真的。我还没有真正找到一种快速的方法来浏览我的文件Fou​​rer的旧版本。

我想要的是一个无限撤消功能,在我编码时完全透明,如果我保存要备份的文件。我不想签出,签入,甚至不想让我开始移动文件。我还没有尝试过Time Machine for OS X,但是看起来这正是我在寻找的东西。

Windows是否存在这样的程序?最好是免费的,并带有某种标记系统,这样我就可以在项目运行时标记时间戳。

也许应该补充一点,我主要是在一台计算机上独自工作。

更新: 有些人问我为什么要备份。由于我是一个人工作,因此主要是为了让我快速找到解决方案,而不必担心事情会恶化。


4
SCM和Time Machine之间的主要区别在于,使用SCM可以显式提交,并且可以检索所有提交,而使用Time Machine则可以自动(每小时)备份,而有些备份会随着时间而丢失:每周仅保存一次备份(永久保存)(并且您不选择哪一个)。
mouviciel

2
我认为,对每个构建都可以毫无错误地完成的自动提交,再加上一次通过单元测试的标签,对于许多程序员来说,在本地分支上可能会很好
Ian Ringrose

1
任何版本控制的问题在于,如果您是probject上的唯一开发人员,则很难停止尚未添加到版本控制系统中的文件。有一个单独的构建服务器可以工作,但要设置的还很多。仅备份所有文件会更安全。
伊恩·林格罗斯

Answers:


39

我认为您确实低估了源代码管理的好处。正如Dustin指出的那样,存在分支,合并和共享。另外,使用源代码控制系统可以使您轻松确定代码中的每一行的最后更改时间。SVN也可以跟踪文件的历史记录,即使文件已被重命名或移动到其他目录也是如此。即使您只有一个开发人员,合并甚至可以解决问题,因为您可以在台式机,笔记本电脑和其他计算机上工作,而不必担心会覆盖更改。


Jeff的需求(和我的需求)没有由源代码控制满足,因为这需要手动提交。能够追溯您在工作副本中进行的每分钟更改,而不必每分钟提交一次,这是有价值的。并且不会污染存储库。一些IDE(例如Eclipse)使您可以及时浏览项目文件。但这需要使用特定的IDE并设置项目。如果在独立工具中具有类似的功能,那就太好了。
Vimes 2012年

@JohnB SVN具有一个称为“自动版本化”的功能。它允许您将存储库安装为标准WebDAV文件夹,并且每次保存文件时,它将执行一次提交。如果您经常保存,则可以有效地返回到保存文件的任何时间。它不像VS.Net这样的粒度,您可以按Ctrl + Z每个字符,但无论如何应该每10分钟保存一次。如果您是一个项目开发人员,则可能会奏效,尽管我对此没有太多经验。(svnbook.red-bean.com/en/1.7/svn.webdav.autoversioning.html
基比

谢谢,基比。我在下面看到了VonC的相关帖子。这是我见过的少数选项之一,也是唯一的免费选项。下面也有一些专用产品,它们不需要您设置源代码控制服务器,这很好。但是它们要花钱,看起来好像比我需要的更多(或其中一个需要做一些UI工作)。我所需要的最接近的东西是DropBox,它是Windows资源管理器上下文菜单集成。默认情况下,它会保存30天的历史记录,如果您为Pack Rat功能付费,它将无限期保存。但这是一个云应用程序。
Vimes,2012年

21

那将是自动版本化(与Subversion一起使用):

自动版本化是一项功能,通用WebDAV客户端可以通过该功能写入DeltaV服务器(如mod_dav_svn),并且服务器在后台静默执行提交。这意味着,如果将Apache httpd用作Subversion服务器,则大多数现代操作系统都可以将存储库作为网络共享安装,并且非技术用户可以免费获得“透明”版本。(当然,技术用户仍然可以使用Subversion客户端来检查存储库历史记录。)


2
绝对是一个很好的答案,并且是与OP相似的解决方案,无需显式提交的常规备份。

12

不要将备份解决方案与版本控制混淆。它们都很重要,但目的不同。您真正应该做的是使用版本控制(svn,cvs,mercurial,git等),并自动将其备份到HDD以外的其他位置,最好是异地(付费主机或S3)。或100%远程找到某人托管您的SVN存储库。我建议不要混帐。您可以在那里建立免费的SVN存储库,而不会遇到太多麻烦。

咬一下子弹并使用SVN。它可能不像以前那样简单,但是当您必须进行非常特定的回滚或比较文件之间的更改时,您会感到很高兴。



6

全面披露:我为Altaro Software工作。

如果您想要Windows的时光机,请进入“糟糕!备份的“测试版”列表

我们是一家新的软件公司Altaro Software,我们正在开发一种称为“糟糕!”的软件备份产品/版本控制产品。备份”。糟糕!备份是传统备份产品和轻量级版本控制系统之间的混合体。糟糕!备份会自动跟踪对文档,照片和其他文件的更改,并允许您回溯到任何时间点。在某种程度上,它等效于Time Machine for Windows。

请注意,我说的是轻量级版本控制-这不是要替换适当版本控制产品的产品。我们的开发人员使用SVN和Oops!同时备份。他们使用VSN进行带有签入/签出功能的适当版本控制,但他们也使用Oops!备份他们有时会遇到的Oops时刻,并且需要快速查找以前的文件版本,而不必执行整个结帐过程。

我们在用户体验和吸引用户眼球上投入了大量资金-我们了解到eyecandy并不意味着用户体验。

我们将很快进入BETA,并正在寻找BETA测试人员-任何愿意尝试的人都可以尝试一下http://www.altaro.com/download.php。在这些页面上,您还可以查看产品屏幕截图。

您的意见和建设性的批评将不胜感激(不但要听到好消息,而且还要听到好消息)

就像我之前说的-糟糕!备份并不能代替对适当的版本控制产品的需求-而是对它的补充。它可以用作版本控制的一种方法,但是您无需签入/签出,并且必须通过创建新文件夹来手动完成分支。

对不起,插头!!

大卫·维拉(David Vella)-david@altaro.com


我认为功能列表是一个很好的开始。它支持完全恢复(如在硬件故障的情况下,一个要求的时间机器为Windows,如果你问我)?而且,尽管很少有人关心:它可以处理多个(冗余)备份磁盘吗?或者,如果不是,则采用某种方式复制完整备份(例如Time Capsule,但这需要很长时间)?对于下一发行版:我建议用于需要特定文件系统使用的流行软件的插件。就像电子邮件程序一样:查找和还原消息,而无需知道如何在文件系统上找到它们。并且:本地化?
Arjan

您好Arjan-不,它不支持磁盘映像(ala Acronis&Ghost),老实说,我不确定是否应该这样做-我们会根据反馈看到。已经存在可以用于裸机的优质产品,因此我们现在不会进入该市场,而专注于制造Oops!备份市场上最好的解决方案。相反,我们专注于版本控制部分-实际内容而不是位层。截止到今天,我们已经具有“应用程序感知”预览,因为我们支持预览MS Office文件,图片,基于文本的文件,其他-我们将继续添加。
David Vella

我说过,在某种程度上,它相当于Time Machine。据我所知,最接近Apple Time Machine的是Rebit-从未亲自测试过。目前仅提供英语-但我们已准备好开始本地化。如果您想在BETA中尝试一下,请给我发送电子邮件:)来自马耳他(欧洲)的
David Vella

+1您披露;-)(:通过精灵的“康迪斯”又名“萨拉姆”留下一些评论会后superuser.com/questions/7423/time-machine-for-windows/... / stackoverflow.com/questions/274948 /时间机器换窗/ ... / serverfault.com/questions/1918/...
阿尔扬

4

不久前,德国c't杂志提出了一种非常类似于Time Machine的解决方案。虽然文章本身适用于60cents,但脚本本身是免费的:http : //www.heise.de/ct/ftp/06/09/126/

基本上,它使用rsync将数据备份到外部NTFS格式化的驱动器。对于每个新备份,它仅将新文件存储到备份磁盘,但创建到其他所有文件的硬链接。实际上,您将看到每个备份的完整文件夹结构,但仅使用第一个完整备份所需的空间以及以后进行的任何更改。

它不像Time Machine那样花哨,但是它是相同的技术(据我所知,Time Machine也使用rsync)。


2

Time Machine是一种有点普通的备份/还原解决方案。将任何Windows备份工具与每日自动增量备份一起使用,您几乎可以做到这一点。但是,即使可以恢复以前的(每天)状态,也可能不是最快的解决方案。


2

SVN对于单独的开发人员不是很有效。BZR。我将BZR用于所有个人项目和主目录,仅将SVN用于大型工作项目。


有趣。您是否将其与某些服务器(甚至是localhost)一起使用,还是仅适用于本地文件系统?
PhiLho

1
“ SVN对于单独的开发人员不是很有效”。这是一个很笼统的声明,您认为吗?
mwjackson

1
jacko,对其他方法进行自我教育,您会同意的。
达斯汀·盖茨

1
phil,总有一个本地存储库副本,可以使一切快速进行并避免权限问题,但如果需要与团队合作,则可以选择将请求/同步推送到远程的任何内容(共享,网站,ftp,甚至更多)。阅读网站。
达斯汀·盖兹

BZR和SVN之间的主要区别似乎是BZR是分布式的。由于OP通常只能在一台计算机上单独工作,因此我不认为分布式源代码管理的好处会超过这种情况下增加的复杂性。
redtuna

2

精灵时间轴2.0已于上周发布。

我知道,我知道,“还有另一个时间轴插件!” ...但是不是。

时间轴2.0已被完全重写,到目前为止,Web上的总体共识是非常积极的。

最重要的是,Genie Timeline的新免费版本几乎提供了所有功能。

Genie Timeline 2.0 Free的规格:http : //www.genie-soft.com/Free_products/free_timeline.aspx

下载:http : //download.cnet.com/Genie-Timeline-Free/3000-2242_4-10967059.html?tag=mncol

产品的付费版本增加了加密,压缩和自动清除旧备份的功能。

披露:我是2.0版的项目负责人


+1为公开内容。另请参阅Windows的Time Machine,我认为这是继续此问题的更好位置。
Arjan 2010年

1

您要源代码管理/多重备份做什么?

在我看来,源代码控制有两个原因-配置管理和针对开发人员手指故障/愚蠢的保护(由我充分证明)。如果后者是问题所在,则下面的建议(或其他答案中推荐的FileHamster)将起作用。

如果正如Dustin Getz所建议的那样,它与配置管理,分支等有关,那么SVN或其他源代码控制程序建议比我的建议要好。

因此,没有使用过它,并且不是免费的(32美元),但是出现了谷歌搜索

TrackMyFiles- http://www.trackmyfiles.com/en/features/

  • 自动跟踪和存储对文件的更改
  • 允许您查看和还原旧文件版本
  • 重要文件版本可以明确标记
  • 与大多数文件类型兼容,例如MicrosoftWord®文档和MicrosoftPowerpoint®演示文稿
  • 通过增量压缩算法有效存储更改
  • 集成到MicrosoftWindows®File Explorer中以实现无缝操作

根据该网站提供的60天试用版

或者,如果您使用的是Vista,则内置了卷影副本。请参见http://en.wikipedia.org/wiki/Shadow_Copy


1

@Lukman和Paul,我喜欢那些用于常规文档的简化版本控制系统的想法,但我认为将它们用于源代码是一个错误-无法分支,合并和共享确实会使您退缩。


1
要看。它符合OP的要求。在我看来,源代码控制有两个原因-配置管理和针对开发人员手指故障/愚蠢的保护(由我充分证明)。如果首先是问题,我同意你的看法。如果第二,所有这些解决方案都可以。
原型保罗,

1

一些想法:

您可能喜欢SVK,它似乎是SV​​N的插件。我自己没有尝试过,但是看起来很有趣。

http://svk.bestpractical.com/view/HomePage

诸如Trac之类的工具提供了不错的SVN存储库浏览,可能值得研究。

如果您在寻找合适的行话时遇到麻烦,请搜索“快照”。您可能还希望在构建系统中构建某种存档过程,以便每次运行make时,都会自动获得快照(或任何对您的情况有意义的快照)。


1

我有cron(搜索google,然后选择一个喜欢的人),然后有一个命令行脚本,每隔几个小时在我的源文件夹中运行pkzipc。一旦将cron的启动与启动结合在一起,我就将其启动并忘记了。我在一次晚间的脑力冻结中为我节省了1次,我输入了del / f / s * .cs


1

Windows Vista Business,Enterprise和Ultimate具有内置的此功能;)


它叫什么,它到底做了什么,权衡是什么?您是否在谈论卷影副本?
redtuna

1

如果您对Apple的Time Machine感兴趣并拥有Windows平台操作系统,则需要检查一下。

http://www.genietimeline.com

Beta版即将发布...您可能想要注册...迫不及待想了解Genie Timeline ...

显然,它的功能包括实时CDP,无休止的文件版本控制,自动备份,窗口与核心的集成……我一直在等待这种软件在Windows上发布了很长时间……


评论:pc-tutorials.suite101.com/article.cfm/…我会说“自动检测最常见的用户文件”只是一种变通方法,因为它仅备份用户创建的文件。那么如何还原整个系统呢?例如,似乎没有与电子邮件软件集成。删除某些消息后该怎么办?我是否需要知道电子邮件在硬盘驱动器上的位置和位置?我可以还原一条消息吗?备份几乎所有内容并与其他软件集成,仍然使Time Machine成为其中一种。笨蛋
Arjan

1

我建议使用可以插入IDE的版本控件。这使工作变得轻而易举。只需在源代码树中单击更新/提交,就可以完成!



1

Windows Server 2003和更高版本具有“卷影复制 ”功能,该功能类似于Time Machine,但适用于联网的企业环境。如果您确实愿意,则可以在本地进行设置。

但是,对于良好的源代码控制,这确实是一个次等的解决方案。使用源代码管理,您可以查看代码库中每行代码的完整详细历史记录。除非您尝试过,否则很难理解它的价值。

卷影副本



0

如果您实际上是在寻找“ Time Machine for Windows”:Windows Vista附带了Time Warp(这是代号,我忘记了完成功能的名称)。它与OS X的Time Machine几乎相同,只是炒作较少。


1
它的名称是卷影副本,太奶奶友好。您只能选择要备份的文件类型(“音乐”,“图片”等),而不能选择应监视的文件夹。除非您告诉它立即进行备份,否则它每天仅运行一次。

0

尝试Flashbake。它可以每隔n分钟(通过cron以及大概是Windows Scheduler)备份在m分钟内未更改(可以为0)的文件。您将需要Python,因此需要Cygwin或ActiveState Pyton。它基于git并针对非技术类型而设计。


0

您可以在进行重大更改之前使用vm并拍摄快照吗?以这种方式回滚是相当轻松的-大约5分钟,您就完成了:)


虚拟机是虚拟机吗?...
Patrick Desjardins

0

SlickEdit具有与您所描述的功能相似的出色功能。每次保存要处理的文件时,它都会创建一个本地(差异)备份。然后,您可以根据需要回顾本地文件历史记录。您可以使用它来补充您的SVN存储库,SlickEdit也可以将其集成到其中。





0

Mercurial非常适合这份工作。

每当您想要为代码快照时,这就是您在命令行hg commit 中要做的全部工作:完成!

如果您要浏览文件的不同版本,则在右键单击有问题的文件时使用TortoiseHG的图形上下文菜单很容易。

而且,它比SVN更好,因为它不会乱码所有带有隐藏的.svn目录的子文件夹。


如果我不想花时间进行提交,提取...该怎么办,而只是自动跟踪所有更改的东西,例如google docs却在本地。你有什么建议?
skan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.