适用于Windows单一开发人员的易于备份的版本控制

时间:2010-09-03 01:09:46

标签: git version-control mercurial fossil

我真的需要开始使用源代码控制,因为我会非常疯狂地跟踪我的代码和修改。

我是Windows上的一名开发人员。我在开发的大部分时间都使用Eclipse。我的一些项目保存在wamp / www文件夹中。其他非PHP项目位于一个或多个Eclipse工作区中。

我不和其他开发人员一起工作,所以我的需求就是这样:

  • 我需要能够创建本地存储库的东西。不想依赖外部网站。我需要的是版本控制,而不是外部备份。

  • 轻松备份对我来说非常重要。如果我格式化计算机,我需要轻松备份和恢复存储库。我找到了 this question ,它提出了一个名为Fossil的版本控件,在我的案例中听起来很有吸引力,因为整个系统都是一个sqlite文件。这将是非常容易备份和恢复,但如果有任何其他知名版本系统让我做同样的事情,我更喜欢一些更知名的东西。

fossil-scm.org/index.html/doc/tip/www/index.wiki

  • 我需要的东西最好与wamp一起玩。

  • 我倾向于git的一面,因为很多人都在谈论它,但我想知道这对我来说是否真的是对的。我觉得这对团队来说是最好的。

7 个答案:

答案 0 :(得分:15)

化石的强大优势之一是它专为“低级仪式”而设计。您不需要对任何事情进行太多配置,数据库文件本身可以保存在本地,而且它们大部分都不会停留。

我一直在少数项目中使用它,这些项目大多是单原则开发者,并且对它非常依恋。

它有一个小的用户社区,部分原因是它没有太多明显的营销或传福音。但该社区通过对其邮件列表的响应能力来弥补其缺乏营销的问题。

但它也是SQLite背后的版本控制,因此它既是SQLite的用户,也是SQLite的数据库文件,也是SQLite实现的重要支持工具。

即使对于单个用户,利用存储库的易复制性也是提供备份的好方法。使用最少量的CGI配置在第二台计算机上隐藏您的存储库,您可以自动同步您的工作并进行实时备份。把这台机器放在朋友家里或廉价的虚拟主机上,你就有了异地备份。

修改

查看化石homepage是一个很好的起点。可以通过内置的web interface查看任何存储库,它允许访问时间线,票证系统,wiki和项目设置。它还可用于查看已签入存储库的文档。事实上,化石网站上所有页面的链接都是由化石的副本提供的。

在一个规模合理的项目中,有一个decent book in draft form遍历了将化石用于常见任务的过程。

source repository for SQLite也由化石维护,其网络界面也由化石副本提供服务。所有SQLite存储库和化石存储库都通过执行定期fossil sync命令的cron作业在几个地理位置分离的服务器之间保持同步。

获取拥有丰富历史记录的存储库的一种简单方法是将源克隆到化石本身。要做到这一点,在你的PATH中放一个化石可执行文件的副本,然后在某个空文件夹中说

C:...>fossil  clone  http://www.fossil-scm.org/  fossil.fossil
C:...>mkdir src
C:...>cd src
C:...>fossil open ../fossil.fossil

您现在站在一个开放的化石储存库中,其中包含化石的完整源代码和修订历史。有了GCC,awk和zlib,你应该能够从源代码构建它。 (在Windows上,根据我的经验,最简单的方法是使用MSYS bash提示符构建MinGW。)

您可以定期执行fossil update以使克隆保持最新状态,我建议您尝试fossil ui以查看具有对您的克隆的管理访问权限的网络界面的全部功能。

答案 1 :(得分:8)

我认为Mercurial超过TortoiseHg对于SCM中的新手来说将是一个非常好的开始(是的,我知道git也很精彩,但对新手来说太难了)

答案 2 :(得分:4)

git非常容易备份。存储库是完全独立的,可以复制到另一台计算机或刻录到DVD。恢复就像将回购复制回本地计算机一样简单。

答案 3 :(得分:4)

如果您有第二台计算机,外部驱动器或可安装的非现场位置,您可以使用git或mercurial进行强大的源代码控制和超级简单的备份。

我发现mercurial更容易学习git,但是我会在这里使用git作为例子,因为那是我习惯的。

cd <my source folder>
git init
git add .
git commit -m "Committing all my code"
cd <my backup folder>
git clone --mirror <path to my source folder>

(现在你有两个你的源代码控制系统的副本!如果你失去一个,你有另一个)。您可以转到备份.git文件夹并输入'git log'来检查您的提交是否存在。

让我们把它们连接起来,这样镜子就可以很容易地保持同步:

cd <my source folder>
git remote add origin <path to my backup folder\foo.git>

现在,在进行更改后,将其发送到您的备份:

git push

答案 4 :(得分:3)

Git,Mercurial和Bazaar听起来都有可能满足您的需求。所有这些都将存储库的内容存储在一个文件夹中(例如,.git文件夹中的Git),这使得备份非常简单 - 只需将该文件夹复制到备份媒体中。

答案 5 :(得分:2)

Git在过去几年中获得了很大的发展势头。我打赌你根据评论和评论的雪崩选择git。但对于单个开发者来说这是一种过度杀伤。

我会说颠覆会最适合你。 备份命令是'svnadmin dump&gt; filename.svn restore命令是svnadmin load

如果您要使用wiki及其附带的缺陷跟踪,化石也非常好。

答案 6 :(得分:1)

如果您使用的是图形界面,请尝试使用Perforce。免费版具有完整版的所有功能,但您只能使用一定数量的帐户。