hg-git--hg下直接操作git

hg和git各有各的优势,git一直以来对windows的支持都不太好(尤其是有中文文件名的情况下),所以我一直都用hg。但是很多时候需要clone git的代码仓库,这个时候就安装一个msys-git吧(这个家伙的块头也不小,带了一个基本上完整的MinGW)。

今天无意中发了hg-git,可以直接使用hg的命令操作git仓库,而且不需要安装git。最简单的安装方法:

1
easy_install hg-git

然后修改 =~/.hgrc=

1
2
3
[extensions]
hgext.bookmarks =
hggit =

接下里就是repo操作了:

1
hg clone git://github.com/schacon/munger.git

接着这里看起来是不是很爽:

1
2
3
4
$ cd hg-git # (a Mercurial repository)
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
$ hg push git+ssh://git@github.com/schacon/hg-git.git
$ hg push

大功告成

windows下编译subversion的Python绑定(附下载)

由于svn的python绑定一直没有推出python2.7的版本,所以只好自己编译了。参考链接:http://www.lejordet.com/2009/03/compiling-subversion-python-bindings-on-windows/

  1. 首先下载swig的windows bin,下载地址:http://www.swig.org/download.html,并解压到目录A
  2. 下载subversion源代码:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=10339&expandFolder=10339&folderID=260,并解压到目录A
  3. 在下面的链接中下载对应版本的deps(windows下要下载zip格式的文件,不然vc的dsp文件会用错误的line ending而无法打开),并解压到目录A
  4. cd到目录A,执行命令生成vc的solution文件(注意自己对应相应的目录,并使用绝对路径)
1
gen-make.py -t vcproj --vsnet-version=2008 --with-swig=c:homesrcsubversionswig --with-zlib=c:homesrcsubversionsubversionzlib --with-apr=c:homesrcsubversionsubversionapr --with-apr-util=c:homesrcsubversionsubversionapr-util --with-apr-iconv=c:homesrcsubversionsubversionapr-iconv
  1. cd到apr目录,用vc打开apr.dsw,并编译工程
  2. cd到apr-util目录,编译apr-util.dsw,当询问xxx project已经存在,是否加载的时候,选择yes。有些工程可能编译不过,不用管它
  3. 编译根目录下subversion_vcnet.sln,有些工程编译不过,不用管它
  4. 创建一个目录B,拷贝subversionbindingsswigpython下svn目录到B
  5. 在B目录下创建一个目录libsvn,拷贝bindingsswigpython下的*.py到libsvn
  6. 在根目录下搜索*.dll,并拷贝到libsvn目录下
  7. 重命名所有已_开头的dll为pyd。
  8. 拷贝B目录下的svn和libsvn目录到Libsite-packages目录下
  9. 测试是否正常工作:在python的cmd下输入
1
from svn import core
  1. 如果有错误发生,一般是缺少dll的问题,再次确认所有dll都拷贝到libsvn目录下。 这里附上我的编译结果(解压到Libsite-packages目录下即可使用): svn-python-1.6.13.win32-py2.7.7z  svn-python-1.6.13.win32-py2.7.zip 

chrome for cause作弊码

没有想到的是竟然真的有人去弄了个作弊码。由于对js不熟,不知道到底有没有什么副作用。木哈哈

1
javascript:var i=0,loop=setInterval(function(){var newwin=window.open("http://www.google.com");setTimeout(function(){newwin.close();},500);if(++i>=250) clearInterval(loop);},500);void 0;