【发布时间】:2020-01-20 15:16:05
【问题描述】:
我正在用 java 开发一个简单的文本文件版本控制系统。当使用 commit 命令时,我计算最新版本和最后提交的版本之间的差异并存储它。我已经编写了代码来制作差异文件并重新生成原始文件。问题在这里,我觉得对于非常大的提交历史,我将不得不重新创建最后提交的版本,然后使用 diff。当我签出文件的先前版本时也会出现这种情况。所以使用我的算法我将不得不使用我的第一个提交(它具有所有原始数据而不是差异),然后继续为下一个差异应用重新生成算法。这需要很长时间。我期待着让它更快更高效。你能告诉我该怎么做吗?
也不是所有的 diff 都按照指定的顺序计算。也就是说,如果我有两个文件,file1 和 file2,我会这样计算 diff:diff(file1, file2); 和 diff(file2, file1);。而且我只保留较小的文件。另一个文件,我删除它。我想知道这是否是一个好方法?
我只需要一些方法来解决这个问题。不是源代码。
【问题讨论】:
标签: java version-control diff patch