话说本人之前除了 Visual Studio 之外,一个 IDE 也没接触过……做 WP 开发时都是用 UltraEdit 等易上手白痴都会的轻量级编辑器的~
应该有不少程序员或者爱好者熟识 NetBeans 这款 Oracle 旗下的开源 IDE 吧,我也抱着尝鲜的态度试用了下,首先吓到我的是它超大的内存占用,还有拖沓的速度(原来习惯把程序做的卡卡的公司不止微软一家啊),但代码自动完成、错误提示、代码重构功能很不错(可惜重构在 WordPress 下不太好用),最吸引我的是它与版本控制结合的很好,默认就提供了对 CVS、Mercurial、SubVersion 的支持。
之前经常看见有些童鞋使用版本控制帮助自己码代码,这可比以前我想起来就 WinRAR 打包一份强多了(再用一次括号宣传下,用盗版软件是不对滴,推荐各位使用免费又强大的 7zip,善用佳软的介绍请按此),因为版本控制可以看到每个版本间的细微更改,回溯任意文件,对团队开发来说意义更大,成员们可以放心的编写代码而不必过于担心同步、合并、冲突的事情。
还看过有童鞋使用 Dropbox 进行版本控制,排除 Dropbox 就根本不存在的原因外,我们的校园网十二点后可是要断网的,这段时间怎么提交更新呢?所以我决定使用易用的 SubVersion。
先在这里并安装找到适合操作系统的 SubVersion,全名是 CollabNet Subversion Edge,我居然点到了 Command-Line Client 上,折腾了半个多小时也找不到建立版本库的功能 。
前面说过,NetBeans 与版本控制配合得很好,所以只要安装 SubVersion 就可以啦,至于乌龟神马的完全不需要 。
SubVersion 自带了 Apache,所以我们可以通过它建立的捷径访问后台(当然是 localhost 上咯,端口不知道是不是都一样),初始用户名与密码都是 admin,幸好后台是中文的。
首先要做的,是配置好 SubVersion 的版本库父文件夹。按我的理解,创建一个版本库可以看作是添加一个新项目,SubVersion 的多数操作都是针对版本库进行的。
选择「管理」 - 「服务器配置」,在「版本库父文件夹」键入你要放置版本库的文件夹,这个文件夹并不是你开发时使用的文件夹,而是记录一个版本库的配置、修订版本和锁定状态的资料库,版本库与项目文件夹就好比是档案馆与你的家的关系。
下一步是创建新版本库。选择「版本库」 - 「新版本库」,键入版本库的名字,单击「创建」。「创建标准的主干 / 分支 / 标签结构」根据你个人喜好勾选,不过还是推荐创建啦,这样版本会更加有序。
创建版本库后,你就可以在刚才设置的版本库父文件夹中找到你的版本库咯。
以后就不要随意修改此文件夹中的内容了,以免造成不可挽回的损失唷!
从现在开始就可以在 NetBeans 中设定 SubVersion 了。
打开 NetBeans,选择「工具」 - 「选项」 - 「其他」,在左边选择「Subversion」,键入 SVN 可执行文件的路径(例如,C:\Program Files\csvn\bin),单击「确定」保存。
下面我们就要在 NetBeans 中把资料导入版本库里啦!假设我们要进行版本控制的项目的目录位于 D:\test\,按如下步骤进行:
http://RayChow-PC:81/svn/test
访问刚才输入的资源库 URL 可以看见汇入的项目,这些目录和文件已被记录在案,任何时候你都能调出查看,哪怕他们在项目中已被修改或删除。
至此,版本库准备完毕。
什么叫做签出工作拷贝呢?按我的理解,签出就是把版本库中项目的最新版本完整的下载到本地,并与版本库建立联系,这样才能完成「提交」工作。
由于第二点中导入操作已经使项目文件夹与版本库建立了联系,因此第二点操作完成后不需要再进行签出。
在你更换项目文件夹、有其他人或其它电脑加入到你的项目中时,就需要签出来获得最新版本了。
NetBeans 进行签出工作也很简单,按如下步骤进行:
一旦项目中的文件作出修改,项目窗口中的文件名会根据以下规则改变样式:
提交是将本地项目做出的修改应用到版本库的过程。
按如下步骤进行:
更新是检查版本库的文件自上次同步后有无改变的过程。按我的理解,更新会下载版本库中新建的文件、替换上次同步后本地未作出修改而版本库版本更新的文件、删除上次同步后本地仍存在而版本库中已被删除的文件,并标示有冲突的文件。
如果是团队开发,应该经常检查更新;如果是个人开发,更新一万次也没有作用……
冲突是指上次同步后本地对某文件作出修改,提交时版本库中的版本比本地更新而导致冲突的情况。例如,我在 A 文件添加了函数 B,但提交时发现同事 C 已经在 A 文件修改了 类 D 并作出了提交,此时 A 文件已经不能继续提交了,否则会覆盖同事 C 的修改。
在更新后如果发现冲突,NetBeans 会列出冲突的地方,在右下方的版本输出控制窗口中右击文件选择「解决冲突」可以更直观的对比并解决冲突,或者……干脆直接放弃你的修改。
这两个功能在我看来没有太大区别,都是用来查阅上次更新后本地做出的修改的,唯一的不同是:「显示更改」只会列出被修改的文件,双击文件可以查看详细对比,而「比较」则直接显示列表与详细对比。
假定在比较之后你发现对某个文件的所有修改都是错误的,或许根本不应该修改这个文件,或者是从开头重新修改会更加容易,就是使用「还原修改」的时候了。
日常使用时,一般按照以下步骤进行版本控制:
以上操作均可以使用 NetBeans 方便的完成。