Subversion:你如何避免忘记检查内容?

在两个不同的地点,在颠覆的项目上工作的三台不同的计算机上,我曾经偶尔忘记在一个位置检查东西,这样我就不能在最新的代码上工作,当我想继续工作的时候在另一个地方。

我相信其他人也有类似的问题。

我可以做些什么来避免这个问题? 有帮助的工具? 通知我可以设置?

我在Windows7电脑上使用Visual Studio 2008和TortoiseSVN

使用像VisualSVN这样的工具来显示哪些文件在解决方案资源管理器中被修改,以便您不要忘记提交它们:

解决方案资源管理器中的VisualSVN状态图标

一个简单的解决方案是右键单击项目的顶层,然后单击“提交”。 乌龟向您显示整个项目,包括“非版本”的文件。

当你设置你的源代码树时,这需要一点训练。 例如,如果将二进制输出文件与源代码混合在一起,则会使其更加困难。 还要确保没有任何包含源代码的目录被忽略。

每日构建。
一个批处理文件(或等价物),检查到一个新的目录,并建立(并在一个理想的世界运行单元测试) – 如果不建立,那么你错过了一些好评。

我没有魔杖可以提供,只是口头禅“经常犯,经常犯”; 除了避免这样的事故,或者至少在它们发生时将它们的影响降到最小,还提供了其他优点(例如,如果变更集需要恢复,则更细粒度的回滚)。 这可能需要一个分支,如果干线被认为总是包含“黄金代码”,所以你不想做不完整的变更集(和svn不完全分支和合并无痛,叹气) – 事实上这(在分布式VCS的其他优点)是我开始在开源和/或个人项目上从subversion转换到mercurial(又名hg)的一个原因,我可以在这个问题上做主!

远程控制其他机器(可能通过VPN),以便您可以在远程工作目录中获取代码,即使忘记检查它们也是如此。

和/或自动备份你的工作目录。

强迫自己进入日常工作。

 在办公室的第一件事 - 做一个更新。 
在办公室最后一件事 - 做一个提交(如果需要)。 

当然,你应该在白天进行更新/提交(例如在办理登机手续时),但是至少要做到以上几点。

对于忘记检查,如果可能的话,我会通过一些脚本注销,如果还没有检查工作,将会首先唠叨你。 或者通过从项目文件夹中点击的图标,TortoiseSVN会显示红色的感叹号。

为了忘记添加新的文件到签入,我使用这个批处理文件:

 svn st svn ci -m %1 --username "russell.wallace" 

所以只要我做了一个缺少新文件的提交,我就会得到这个事实的通知,并可以立即跟进另一个提交它的提交。

克伦每天晚上都要叮嘱你吗?

我使用乌龟的方法是始终打开一个“检查修改”窗口并定期点击刷新按钮。 如果没有首先检查所有打开的窗口/应用程序是否存在未保存的数据,确实会让我关机。

顺便说一下,这样做也可以避免忘记添加东西,因为您可以设置该窗口来显示所有不被忽略的未添加内容。

我使用git-prompt.sh跟踪文件和分支的状态。 它似乎也与SVN合作。