我一定是漏掉了什么。我在PowerPoint文件上使用SVN。
编辑以下内容以更好地描述步骤
步骤1:创建一个新的存储库。
步骤2:使用PowerPoint创建ppt (称为signal.ppt)。
步骤3:将signal.ppt添加到svn中。
步骤4:将signal.ppt提交到svn中。
步骤5:复制signal.ppt并将其命名为good.ppt。
步骤6:在PowerPoint中打开signal.ppt并立即关闭它。我不做任何更改,也不做文件->保存。
步骤7: I做'svn状态signal.ppt‘,svn会说没有变化。
步骤8: I比较signal.ppt和good.ppt之间的每个字节和1051字节(在6561,792字节中)是不同的。
所以问题是:“svn状态”怎么可能会错过更改呢?
还请注意,我已经尝试删除test.ppt中的一些幻灯片。一旦我这样做,问题就消失了(即'svn状态‘正确地报告了更改)。
我真的不知道这里发生了什么。
我想也许我是唯一有这个问题的人。
发布于 2022-01-04 21:43:58
我刚和我的同事谈过这件事,他想出了一个理论。我认为他是对的(但我无法百分之百地证实这一点)。
他的理论是svn依赖于Windows通知。我相信windows有一个机制来跟踪哪些文件正在被修改。在这种情况下,由于微软同时拥有窗口和powerpoint,理论上windows可以报告signal.ppt没有更改(因为我只是打开和关闭它,所以我没有做任何更改),在我们看来'svn st‘使用的是这种机制。
我们也尝试使用git和'git状态‘不存在与'svn状态’相同的问题。
总之,人们可以说,这不是一个真正的问题。即使修改了signal.ppt文件内容,也没有真正的更改,因此我不需要将更改提交到svn中。
强迫改变的一种方法是使用“触摸”:
copy /b signal.ppt +,,
另一个可能的解决方案是使用pptx文件(而不是ppt文件)。我在signal.ppt上尝试了这种方法(在powerpoint中使用保存-as signal.pptx ),它看起来很有效(在本例中,打开和关闭pptx文件不会改变文件内容(甚至一个字节都不会))。
https://stackoverflow.com/questions/70557422
复制相似问题