【问题标题】:A local repository to update games?更新游戏的本地存储库?
【发布时间】:2013-08-21 22:44:35
【问题描述】:

我有一个网吧。更新和维护文件(尤其是游戏)对我和我的员工来说一直很麻烦。此外,我不愿意为 G-Cafe 管理计划之类的东西付费。我熟悉 C、PHP、JAVA 等编程语言,但我不知道我将使用什么逻辑和算法来实现我的目标,也不熟悉网络

我的朋友建议我使用本地存储库,因此我研究了有关同一问题的主题。但事实证明,我有一个问题没有在我阅读的讨论中得到解答。

这是我如何看待我的更新将如何工作的:

我打算通过这个流程更新游戏:[(Internet -> Server) -> (Server -> Client]。如果有游戏更新,本地服务器会通过互联网下载;然后,客户端会复制或从本地服务器下载这些文件。

看到游戏有自动更新程序,我计划将所有游戏放在存储库中(在服务器中),客户端站将连接到该存储库。但话说回来,SVN 也适用于修订版,对吗?

对于如何通过 SVN / Git(当然是从服务器)更新客户端游戏有什么建议或想法吗?或者有没有其他方法?

我玩得太傻了.. :(

【问题讨论】:

    标签: git svn repository


    【解决方案1】:

    版本控制系统使用修订版,是的,这对 SVN 和 git 都适用。在新程序版本的情况下,将它们放入修订版自然是有意义的,因为它们通常只是某个时间点 XYZ 的快照。 XYZ 随心所欲,二进制程序、图像、文件等。

    但要使其真正成为修订的一部分,您还需要提交新获取的更改。这最终会对你的(比方说)游戏树进行新的修订。

    然后可以从客户端计算机获取这些修订。这可以通过每隔几分钟自动检查服务器的脚本(cronjobs?)或手动进行。

    该工作流程的好处非常明显,如果您的新版本不是您想要的(例如,稍后您发现它们已损坏),您可以将您的更改回滚到最后一个已知的工作版本。

    【讨论】:

    • 所以您打算使用 SCM 进行多 GB 二进制文件分发?
    • 问题是基于一个 SCM,所以这个答案也是基于这个
    • 你有没有试过用 20 Gb 的二进制数据创建和签出一个 svn/git 存储库? (在几次游戏刷新后很容易增长到 100)。 SCM 主要用于跟踪文本更改,而不是用于分发
    • 那是完全错误的。我见过很多具有二进制数据的存储库,是的(仅考虑图像,不太可能是文本)。当然,它们的规模越来越大,而且一个 SCM 系统比另一个多。这本身并没有错。这取决于可用资源,当然还有环境,这在原始问题中没有说明。
    • 好吧,试着在某一天检出 20Gb 的二进制文件。请记住,它会在客户端计算机上至少翻倍。还要记住,服务器上的大小会不断增长。除此之外,我同意你可以用显微镜来钉钉子。
    【解决方案2】:

    想到的一个解决方案是使用磁盘映像。

    假设您的机器都完全相同,您可以轻松地在后面保留一个主映像,它是安装和更新所有游戏的主映像(每晚、每周、每月,由您决定),然后定期推送该映像基础(可能每周,在您关闭的日子)到所有客户端计算机。

    【讨论】:

    • (如果这是一个愚蠢的问题,我很抱歉)手动推送图像或通过使用某些软件?
    • 我听说过通过 MD5 Hash 更新.. 也是一种可能的方法吗?
    • @KierBorromeo 这取决于使用的磁盘映像软件。有些可以通过网络推送,有些则必须通过sneaker-net和闪存驱动器手动推送。据我了解,MD5 Hashing 只是一种验证文件完整性的方法,在这种情况下并没有多大帮助。
    猜你喜欢
    • 2014-09-06
    • 2014-08-26
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多