10

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

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

我不与其他开发人员一起工作,所以我的需求是不同的:

  • 我需要一些可以让我创建本地存储库的东西。不想依赖外部站点。我需要的是版本控制,而不是外部备份。

  • 轻松备份对我来说真的很重要。如果我格式化我的计算机,我需要轻松地备份和恢复存储库。我发现这个问题暗示了一个名为 Fossil 的版本控制,在我的情况下这听起来很有吸引力,因为整个系统是一个 sqlite 文件。这将非常容易备份和恢复,但如果有任何其他知名的版本系统可以让我做同样的事情,我更喜欢更知名的东西。

化石-scm.org/index.html/doc/tip/www/index.wiki

  • 我需要一些最好与 wamp 配合使用的东西。

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

4

7 回答 7

15

化石的一大优势是它是为“低仪式”而设计的。您不必对任何东西进行太多配置,数据库文件本身可以保存在本地,而且大部分情况下它都不会妨碍您。

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

它有一个小的用户社区,部分原因是它没有太多公开的营销或布道。但是该社区通过在其邮件列表上的响应非常快来弥补其缺乏营销。

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

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

编辑:

请参阅化石主页以获得良好的起点。任何存储库都可以通过内置的Web 界面查看,该界面允许访问时间线、票证系统、wiki 和项目设置。它还可用于查看签入存储库的文档。事实上,化石网站上的所有页面链接都由化石副本提供。

有一本不错的草稿书,介绍了在合理规模的项目中使用化石完成常见任务的过程。

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

获取具有丰富历史的存储库的一种简单方法是将源克隆为化石本身。为此,将化石可执行文件的副本放在您的 PATH 中,然后在某个空文件夹中说

C:...>化石克隆 http://www.fossil-scm.org/fossil.fossil
C:...>mkdir src
C:...>cd 源
C:...>化石打开../fossil.fossil

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

您可以定期执行fossil update以使您的克隆保持最新状态,我建议您尝试fossil ui通过对您的克隆进行管理访问来查看 Web 界面的全部功能。

于 2010-09-14T07:35:43.270 回答
8

我认为这Mercurial对于TortoiseHgSCM 中的新手来说是一个非常好的开始(是的,我知道这git也很棒,但恕我直言,这对新手来说太难了)

于 2010-09-03T01:14:11.190 回答
4

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

于 2010-09-03T01:13:57.917 回答
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
于 2010-09-03T01:27:07.587 回答
3

Git、Mercurial 和 Bazaar 听起来都可能满足您的需求。它们都将存储库的内容存储在一个文件夹中(例如,Git 在一个.git文件夹中),这使得它们的备份相当简单——只需将该文件夹复制到您的备份介质中即可。

于 2010-09-03T01:13:59.553 回答
2

在过去的几年里,Git 获得了很大的发展动力。我敢打赌,您会根据大量评论和评论选择 git。但对于单个开发人员来说,这太过分了。

我会说颠覆最适合你。备份命令是 'svnadmin dump > filename.svn 恢复命令是 svnadmin load

如果您要使用 wiki 和它附带的缺陷跟踪,Fossil 也非常好。

于 2010-09-03T09:45:36.527 回答
1

如果您追求图形界面,请尝试 Perforce。免费版具有完整版的所有功能,但您仅限于一定数量的帐户。

于 2010-09-03T09:52:42.143 回答