git - windows单一开发者易于备份的版本控制

标签 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,因为很多人都在谈论它,但我想知道它是否真的适合我。我有一种感觉,它最适合团队。

最佳答案

fossil 的强大优势之一是它专为“低调仪式”而设计。您无需进行任何配置,数据库文件本身可以保存在本地,而且大部分情况下都不会妨碍您。

我一直在少数项目中使用它,这些项目大多是单一原则开发人员,并且越来越喜欢它。

它有一个小的用户社区,部分原因是它没有太多公开的营销或传播。但是该社区通过在其邮件列表上非常敏感来弥补其营销不足。

但它又是SQLite背后的版本控制,所以它既是SQLite数据库文件的使用者,也是SQLite实现的重要支撑工具。

即使对于单个用户,利用存储库易于复制的优势也是提供备份的好方法。使用最少的 CGI 配置将您的存储库 stash 在第二台机器上,您可以自动同步您的工作并进行实时备份。将那台机器放在 friend 家里或便宜的虚拟主机上,你就有了异地备份。

编辑:

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

有一个decent book in draft form介绍了在合理规模的项目中使用 Fossil 完成常见任务的过程。

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

获取具有丰富历史的存储库的一种简单方法是将源克隆到化石本身。为此,将 fossil 可执行文件的副本放入您的 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 以查看具有管理权限的 Web 界面的全部功能克隆。

关于git - windows单一开发者易于备份的版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632385/

相关文章:

svn - 我应该有 1 个还是多个存储库?

delphi - Windows 7 中的 Delphi 代码存储在哪里?

ssh - 使用 SSH 别名时如何克隆远程仓库

php - 将我的 Yii 项目置于版本控制之下时,我应该忽略哪些文件和目录?

备份文件中的 gitlab 包

Ruby Gem 安装在 gem 目录中创建空文件夹

Github 推送错误。没有权限

git - 如何在 *Windows* 中将 Mercurial 存储库转换为 Git...?

email - 一旦有人推送到某个存储库,是否有可能让 Mercurial 向地址列表发送电子邮件?

git - 如何将多个 url 附加到单个 git 远程?