【问题标题】:How do I uniquely tag file and it's various versions?如何唯一标记文件及其各种版本?
【发布时间】:2013-02-24 18:31:14
【问题描述】:

我正在开发一个小型应用程序,以允许我在每次更改之前修改文件和版本每个文件。我希望应用程序做的是唯一标记每个文件,以便每当打开同一个文件时,可以拉回该特定文件的历史记录。我没有为此使用任何大版本控制工具。请问这个程序如何在语法上执行?

【问题讨论】:

  • 我很困惑,你的问题是如何编写自己的版本控制系统,这样你就不必使用现有的了?
  • 你说你使用现有的版本控制解决方案 - 显而易见的问题是“为什么不呢?” - 我建议你尝试使用 Git、Mercurial 或类似的东西。您不一定需要使用服务器或类似的东西进行集中式 版本控制。当地的东西可能很好。
  • 我宁愿有自己的代码来为我做这件事。

标签: c# .net io


【解决方案1】:

简单的解决方案。使用已经存在的版本控件(例如 Git),但如果你真的想这样做,那么试试这个。

每次创建新版本时,将文件的先前版本复制到单独的隐藏目录中,并在该目录中有一个配置文件,其中包含该文件的校验和。校验和“很可能”是唯一的,因为它是文件的哈希值(每次文件更改时,校验和都会不同 - 您需要自己计算校验和。)

当您打开文件时,只需检查目录中是否存在该配置文件,并将校验和与已打开的校验和进行比较。如果它们相同,那么您在同一个文件中。这就是它的工作原理。

您可以使用校验和来优化它。因此,如果用户进入文件更改内容,则更改回原来的方式并保存。校验和应该返回相同的东西(除非您包括修改的日期和时间等)

每个文件夹都应该有一个遵循模式的名称(filenameVn.n 例如 someTextFile.txt.v1.0),然后您将能够弄清楚您在历史记录中导航到的目录应该说什么。

另一种方法是简单地复制文件并在其末尾附加一些标签(可能是校验和?版本号?),这样您就不需要额外的文件夹了。

另一种方法是调用文件,无论记录的校验和是什么,并将版本历史(连同相应的校验和)存储在一个单独的配置文件中,然后在你想知道你想要什么文件时引用它访问被称为。所以每个版本都会根据自己的校验和来引用(就像在 Git 中一样。)

因此,总结每个文件版本将存储在某处,您将能够验证它们是否相同(因此您可以通过避免存储多个文件而没有更改并浪费空间来优化)并且您将能够动态确定每个版本的位置并访问它。

希望它能让您对如何开始有更多的了解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2023-03-12
    • 1970-01-01
    • 2012-01-27
    • 2019-05-01
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多