在两个不同的地点,在颠覆的项目上工作的三台不同的计算机上,我曾经偶尔忘记在一个位置检查东西,这样我就不能在最新的代码上工作,当我想继续工作的时候在另一个地方。
我相信其他人也有类似的问题。
我可以做些什么来避免这个问题? 有帮助的工具? 通知我可以设置?
我在Windows7电脑上使用Visual Studio 2008和TortoiseSVN。
使用像VisualSVN这样的工具来显示哪些文件在解决方案资源管理器中被修改,以便您不要忘记提交它们:
一个简单的解决方案是右键单击项目的顶层,然后单击“提交”。 乌龟向您显示整个项目,包括“非版本”的文件。
当你设置你的源代码树时,这需要一点训练。 例如,如果将二进制输出文件与源代码混合在一起,则会使其更加困难。 还要确保没有任何包含源代码的目录被忽略。
每日构建。
一个批处理文件(或等价物),检查到一个新的目录,并建立(并在一个理想的世界运行单元测试) – 如果不建立,那么你错过了一些好评。
我没有魔杖可以提供,只是口头禅“经常犯,经常犯”; 除了避免这样的事故,或者至少在它们发生时将它们的影响降到最小,还提供了其他优点(例如,如果变更集需要恢复,则更细粒度的回滚)。 这可能需要一个分支,如果干线被认为总是包含“黄金代码”,所以你不想做不完整的变更集(和svn不完全分支和合并无痛,叹气) – 事实上这(在分布式VCS的其他优点)是我开始在开源和/或个人项目上从subversion转换到mercurial(又名hg)的一个原因,我可以在这个问题上做主!
远程控制其他机器(可能通过VPN),以便您可以在远程工作目录中获取代码,即使忘记检查它们也是如此。
和/或自动备份你的工作目录。
强迫自己进入日常工作。
在办公室的第一件事 - 做一个更新。 在办公室最后一件事 - 做一个提交(如果需要)。
当然,你应该在白天进行更新/提交(例如在办理登机手续时),但是至少要做到以上几点。
对于忘记检查,如果可能的话,我会通过一些脚本注销,如果还没有检查工作,将会首先唠叨你。 或者通过从项目文件夹中点击的图标,TortoiseSVN会显示红色的感叹号。
为了忘记添加新的文件到签入,我使用这个批处理文件:
svn st svn ci -m %1 --username "russell.wallace"
所以只要我做了一个缺少新文件的提交,我就会得到这个事实的通知,并可以立即跟进另一个提交它的提交。
克伦每天晚上都要叮嘱你吗?
我使用乌龟的方法是始终打开一个“检查修改”窗口并定期点击刷新按钮。 如果没有首先检查所有打开的窗口/应用程序是否存在未保存的数据,确实会让我关机。
顺便说一下,这样做也可以避免忘记添加东西,因为您可以设置该窗口来显示所有不被忽略的未添加内容。
我使用git-prompt.sh跟踪文件和分支的状态。 它似乎也与SVN合作。