就像许多程序员一样,我很容易定期发现“灵感”,在那里我将突然看到“光明”,并对我的代码进行大手术。 通常情况下,这种方法效果很好,但是有些时候我后来发现,由于缺乏睡眠/咖啡因,或者只是对问题的理解不完善,我做了一些非常愚蠢的事情。
发生这种情况时,下一步是扭转伤害。 最容易的是,这意味着在我的编辑器中撤消堆栈…除非我在某个时候closures了文件。 接下来是版本控制,但如果我在最近的提交(我习惯性地不提交破坏构build的代码)和灵感时刻之间进行更改,它们就会丢失。 它不在存储库中,所以代码从来不存在。
我想以这样的方式设置我的工作环境,我不需要担心这个,但是我从来没有想出一个完全令人满意的解决scheme。 理想的情况是:
我考虑的选项:
有谁知道一个工具或组合工具,可以让我得到我想要的? 还是我有自相矛盾的要求? (我强烈怀疑)
更新:经过更仔细的检查我已经使用 (叹气)的工具,事实certificate,我的文本编辑器有一个非常好的多备份function,几乎可以完美地满足我的需求。 它不仅可以将所有备份存储在“隐藏”文件夹中(可以将其添加到VCS的全局忽略),而且允许在编辑器中直接浏览甚至与备份进行比较。
问题解决了。 感谢您的build议,乡亲们!
大多数编辑器在保存到备份文件之前存储文件的最新版本。 您可以自定义该过程以附加修订版号而不是正常的代字号。 每次保存时,都会有一份文件的副本。 如果这会占用太多的磁盘空间,您可以选择为每个更改创建差异,并自定义您的编辑器以顺序应用修补程序,直到找到所需的修订。
分布式版本控制。 (mercurial,git等…)
故事的要点是没有签出,只有存储库的克隆。
只有在您将提交回主分支之前,您的提交才可见。
想做激进的实验改变? 克隆存储库,在您的计算机上执行大量提交。 如果解决了,推回去; 如果没有,那么只是回滚或垃圾回购。
如果您使用Windows Vista 7或Windows server 2003或更高版本,则可以使用卷影复制。 基本上,您的文件的属性窗口将有一个新的选项卡“以前的版本”,跟踪文件的以前的版本。
该服务应该自动生成快照,但为了安全起见,您可以在“灵感”之后立即运行以下命令:
'vssadmin create shadow /for=c:\My Project\'
它屡次救了我的屁股。
卷影复制
我认为是切换编辑的时候了。 Emacs有一个变量版本控制,它决定了Emacs在保存文件时是否会自动创建多个备份,命名为foo。〜1〜,foo。〜2〜等等。其他变量决定保留多少备份拷贝。