svn switch and git svn

本文之前就想写,但是当时对svn switch不是非常了解,而且没有解决多分支开发的问题。

到今天为止,靠着强大的git把多分支开发的问题基本解决了,就上来把这一段时间内的解决过程和最终的方案说一下,希望对仍旧被svn“蹂躏”的各位有用。

首先说下多分支开发的问题。在svn下多分支开发唯一的方法是把代码checkout到不同目录中。svn switch并不能承担分支切换的功能。svn switch从它的功能来说是让一个工作副本中包含来自多个库的内容。我能想到的典型场景是“分支”合并到主干上时,当前的主干副本来需要来自其他库,即开发完成的分支的内容。其他可能是一些“异常情况”,反正不要被switch这个单词骗了……

那么svn是否有别的命令支持分支切换么?我个人没有查到。其实从我这一段时间的research,我对svn进一步的认识是:svn没有分支的概念。得出这个结论的过程可能比较长,而且有比较多的个人标准,这里就不展开了。重点是如何解决多分支版本开发问题。

Read More

google calendar使用小记

使用google calendar有一段时间了,当初是看中了重复的事件(event)这个功能。现在经同事指点,又学到了一点新东西。另外自己对事件和任务(task)有了进一步的理解。

日历分类

你可以建立多个日历,比如按照类别的。分成多个日历之后,你可以选择性地显示日历,比如只显示个人的(personal),只显示工作的(working)。其次,你还可以选择性的和他人共享日历,把你的日程分享给其他人看。
说到日历共享,个人认为团队共享某个工作用的日历可能比填写日报更好一些。

事件和任务

google calendar中项目分事件和任务两种,任务理论上不等同于全天事件。任务应该可以被拆解成一个或多个事件。换句话说,你给自己设定某个任务,需要分派到哪天做什么。比如今天我要完成这篇文档,我设置了“[blog]google calendar使用小记”任务,过期时间设定为5月1日。晚上整理时分配今天几点写博客。
当然,个人的任务可能时间要求并不是很高,但是可以尝试这么去做。

vim recording小试

大家是否有这种经验,“不知道为什么按出recording状态,按ESC貌似无法直接退掉”的情况,个人已经有过好几次了。
与其出来烦人还不如了解它,昨天我就花了点时间学习recording。怎么说,还是有点用的。
首先说明的是recording是怎么按出来的:命令模式下按q。假如你想按退出的:q,右手有点慢的话就有可能出现recording。顺便说一句,q:出来的是command history,command history状态下:q或者enter都可以退出。
那么recording是干啥的?简单来说就是命令序列,加快工作效率的。基本使用是q开启录制,接着选择寄存器,比如1,2,a之类的。之后的到第一个q为止的命令都会加入序列中。录制完成之后@1(1这里为寄存器的名字,你也可以选择其他寄存器)就可以重复寄存器中的命令序列。举个简单的例子:

你需要复制1. 20行,除了Vyo20p(选中行复制,进入下一行,粘帖20次)之外,你可以q1Vyopq录制命令序列,20@1执行20次。
这个例子可能还不能体现recording的好处,接下来举第二个例子,注释10行代码

Read More