我正在开发一个小应用程序,允许我在每次更改之前修改文件并对每个文件进行版本控制。我希望应用程序做的是唯一标记每个文件,以便每当打开相同的文件时,可以撤回该特定文件的历史记录。我没有使用任何大版本控制工具。我如何以编程方式进行此操作?
答案 0 :(得分:0)
简单的解决方案。使用已存在的verison控件(例如Git),但如果你真的想这样做,那就试试吧。
每次创建新版本时,都会将该文件的先前版本复制到一个单独的隐藏目录中,并在该目录中包含一个包含该文件校验和的配置文件。校验和“很可能”是唯一的,因为它是文件的散列值(每次文件更改时,校验和都会不同 - 您需要自己计算校验和。)
当您打开文件时,只需检查目录中是否有该配置文件,并将校验和与已打开的校验和进行比较。如果它们是相同的,那么您在同一个文件上。这就是它的工作原理。
您可以使用校验和来优化它。因此,如果用户进入文件更改内容,则更改回原来的方式并保存。校验和应该返回相同的东西(除非你包括修改的日期和时间等)。
每个文件夹都应该有一个名称遵循模式(filenameVn.n,例如someTextFile.txt.v1.0),然后你就可以知道你在历史中导航到的目录应该说什么。
另一种方法是简单地复制文件并在其末尾附加一些标签(校验和可能是?版本号?),这样就不需要额外的文件夹了。
另一种方法是调用无论校验和记录的文件,并将版本的历史(以及相应的校验和)存储在单独的配置文件中,然后在想要找出所需文件时引用它调用访问。因此,每个版本将根据自己的校验和(如在Git中)引用。
总而言之,每个文件版本都会存储在某个地方,您将能够验证它们是否相同(这样您就可以通过避免存储多个文件进行优化而不会更改它们并浪费空间)并且您将能够动态确定每个版本的位置并获得对它的访问权。
希望它能让您更好地了解如何开始。