版本控制和备份,哪个组合?

我是唯一的开发者,我有3台电脑。 另外我的一个朋友有一个帐户,但从来没有使用它。 我目前的设置是GIT +我自己的临时备份工作,克隆存储库,压缩,gnupg它,并将其发送到远程ftp。 目前为止,我的源代码/ docbook / xml文件+更小的二进制文件(主要是图标+用于docbook的一些图像)工作得非常好。

不过,我最近参与了一个Flash游戏项目,并为此创build了一个存储库,但是Flash FLA文件非常庞大(我见过+70 MB)。 和git重新包装一个低窗口大小不能再完成。 进一步我发现我的一些文件使用回车而不是换行,GIT不喜欢区分这些文件。 当我创build存储库时,我应该将它设置为在提交时自动将CR转换为LF。 但是我并不知道这些问题。

出于绝望,我尝试了Mercurial,但它的最大文件大小是10 MB。

我想也许把我的项目分成二进制文件,并保持在颠覆,因为它似乎与二进制文件确定。 和GIT的源代码。 但这将是一项艰巨的任务,听起来像是一个坏计划。

你使用什么版本控制系统? 你如何备份? 你怎么处理你的二进制文件?

这是确定的。 一个糟糕的计划,分裂你的版本控制系统!

我们每天通过SVN提交二进制文件,其中一些也是大的。 当然,注意你不能区分一个二进制文件,如果你的二进制文件是20MB,那么每次提交它时,你的Subversion服务器上就需要另外20MB的空间。

至于我们的备份,我们每晚只运行一次SVNDump,压缩和上传与您所做的相似。

所有这一切,这可能是一个更好的问题堆栈溢出的人,因为他们是比SF更重的VC用户!

(如果有足够多的人同意,它会自动移动),不要在这里重新提出这个问题。

关于CRLF – 查看git-config(1),特别是选项“core.autocrlf”,它可以用来切换转换行为。

你希望你的70M文件被备份,对吧? 如果是这样的话,无论你使用什么scheme,你至less要将它们复制到FTP站点一次。 如果它们完全是可压缩的,那么git可能会做得足够接近压缩它们的最好的工作,这在实际上是可能的。

为避免将整个存储库复制到您的FTP站点进行每个备份,我会看一下

  1. 如果可能的话,使用“git push”备份站点或从备份站点“git pull”,如果你可以安装git的话。 这只会发送缺less的东西,而不是重复发送70M文件。
  2. 如果这是不可能的,有一些软件可以通过诸如FTP之类的“哑”协议进行差分发送。 我参与了很多很多年前的“syncftp”(syncftp.sf.net)。 我的朋友Simon(写了大部分的syncftp)写了另外一个名为'gsync'的工具。 还有'sitecopy', http://www.manyfish.co.uk/sitecopy/ 。 需要注意的一点是,你需要configuration你的git,这样它就不会把文件重新包装在一起,因为复制过程是基于文件的,如果一个包文件改变了一点,它就会复制整个文件。 因此,您将在存储库中损失一些打包效率,以便在备份带宽使用中获得一些效率。

(我将保存您的CRLF文件作为另一个答案)