当文件从它们下面更改时,许多编辑都会注意到。如果您对文件进行了未保存的编辑,是否有任何编辑器可以让您进行三向合并?
这种情况的常见情况是我忘记在我进行SVN更新之前保存文件,当我切换回编辑器时意识到我现在可以选择踩踏我刚刚做的更新,放弃我的更改,或者做复制/粘贴/外部差异工具的歌曲和舞蹈。
是的我在更新之前知道正确的解决方案是ctrl + s,但是我是人类,并且想要一个非常简单的解决方案来解决我的问题。
答案 0 :(得分:2)
EditPad Pro,当它检测到您打开未保存更改的文件已在磁盘上更改时,会询问您是否要从磁盘重新加载文件,忽略磁盘上的更改,或查看之间的差异磁盘上的文件以及已打开的未保存更改的版本。
这是一个双向差异,而不是你问的三向差异。我不知道任何提供三向差异的文本编辑器。如果磁盘上的文件已被破坏,则文本编辑器将不再具有原始文件的副本。这将是版本控制要解决的问题。
预防措施可能是让您的编辑器锁定您打开的文件。然后,SVN更新将在您在编辑器中打开的任何文件上失败。在EditPad Pro中,选项,首选项,文件中有一个选项。
答案 1 :(得分:1)
使用vim,您可以使用:DiffOrig 进入差异模式 可以使用:checkt
强制检查修改要自动化它,您可以将以下内容放入.vimrc:
au FileChangedShell * DiffOrig
一旦知道文件(mtime)发生变化,Vim就会进入差异分割。
答案 2 :(得分:1)
听起来像是一种解决脚下修改文件问题的坏方法。正如我经常回答的那样:你真的试图解决什么问题?
答案 3 :(得分:1)
我很少遇到这个,可能是因为一旦我的手指没有做任何事情我就会保存,而不必考虑它。
否则,我建议您在编辑器中找到集成的SVN客户端。大多数此类客户端会在进行提交或更新之前自动(或要求)保存。
答案 4 :(得分:1)
因此,您对文件进行了未保存的更改,然后对该文件进行了SVN更新,对吗?
在这种情况下,您应该在更新后保存更改并再次运行SVN更新。第二轮SVN更新将尝试合并来自存储库的更改,并告诉您是否存在冲突。
更多/最重要的更改是编辑器中未保存的更改,可以始终从存储库中再次提取SVN更新的更改。
答案 5 :(得分:0)
这似乎是源代码控制的问题,而不是编辑器。
当然可以对Emacs进行编程,但默认情况下,它似乎只是询问您是否要保存更改的文件。尝试编辑已更改的文件将为您提供将缓冲区还原为文件内容的选项。
Vi(至少我正在使用的版本)甚至没有检查文件是否已更改。 (在我编辑文件之前,它也不会检查文件是否为只读,这让我感到疯狂。也许我需要找到更好的vi。)