版权声明:本文为神州灵云作者的原创文章,未经神州灵云允许不得转载。
本文作者:Joy
前言
TortoiseSVN是一个免费开源的客户端,操作简单且功能强大,是程序员的好帮手。但它毕竟是免费软件,在一些功能上相比一些商业软件,还是有差距的,比如谁用谁知道的shelve功能。在更新过TortoiseSVN新版本后,我惊喜的发现菜单中出现了shelve / unshelve的选项,经过一翻仔细研究,虽然略有瑕疵,但基本可用。需要注意的是,这个功能还在试验阶段,个人建议配合export功能使用,方可保证代码万无一失。
Shelve的使用场景
如果你在做一个项目A,这个过程中,可能需要修改多个代码文件。不巧的是,项目A还未完成,甚至部分代码都无法编译通过,此时有一个更加重要而且紧急的项目B需要你的参与。那么,你不得不暂时放下项目A工作,来切换到项目B上来,但这时你又发现,项目B与项目A有许多代码耦合,之前项目A上你已经做的修改会影响的项目B。此时,你需要清理你的workspace中关系项目A的临时代码,才能开始项目B的工作。那么shelve功能就是用来管理这些临时改动的代码的。
使用方法
Shelve功能的使用大致可分为四个步骤。
第一步:在commit界面,选择需要shelve备份的源码文件。如图Fig. 1所示。
第二步:为了方便管理多个shelve备份,你需要为每个shelve记录添加适当的名称和尽可能详细的备注,因为有时候你再从其他项目切换回来,可能已经是一周或者更久之后,那时可能很难记清楚一些开发进度的具体细节(Fig. 2)。接下来点击“Shelve”按钮即可完成shelve过程。
第三步:Unshelve备份文件。现在你已经结束了手上的紧急项目,要回到之前已经shelve的项目上,继续之前的工作。在你的源码目录上右键SVN选项中找到”Unshelve”并点击。
第四步:选取unshelve目标。你有可能shelve过多个项目,并且某些项目甚至shelve过多个版本,这里你可以选取要恢复目标,然后点击“Apply”(Fig. 4),那么之前的修改就会出现在你的commit文件列表里了。
注意
Shelve功能为TortoiseSVN客户端功能,与server无关,更新TortoiseSVN客户端即可获得该功能。Shelve操作不会影响svn server上的代码。
重要的事情再说一遍,Shelve功能目前仍处于试验阶段,而且TortoiseSVN是免费软件,也不会有别人为你的代码丢失负责。个人建议与export功能配合使用(如图Fig. 5),export可以将文件导出到另外一个单独的目录中。