Nolan's Blog

a PHP JS UI APP developer

svn

家庭服务器svn向服务器提交更新的方案

本机 Win10
家庭服务器 Win10
远程服务器 CentOS

最近在家里搞了一台闲置主机作为HomeServer,原装正版Win10就懒得折腾了,毕竟只是用来存放文件以及SVN及DB备份用而已,顺道跑跑一些计划任务。

首先因为家里路由设置是每天重启一次,所以IP会变动,影响阿里云白名单,这个可以用过阿里云API来处理(后面也会用到),具体见阿里云各APISDK

然后就想着通过本地的SVN可以向第三天机器提交代码,这么做目的有2个

1.可是实现代码版本本地化,降低服务器放svn服务的风险,以及客户风险。

2.可以作为中继,利用hook再次作为子机,向其他svn主机提交更新,控制本地组频繁提交导致版本过多问题。

设置方案:

  1. 设置一个域名解析到家庭IP(会变)
  2. 利用IP查询接口查询当前外网IP,如变更则提交阿里云云解析API,更新解析地址。
  3. 利用Win自带的计划任务定时执行IP检测任务
  4. HomeServ安装VisualSVN,提供本地SVN服务
  5. 提交版本库等等(不累述
  6. 在远程服务端SVN CO本地版本库,记得这里要使用域名(当然,如果这里做一个计划任务获取最新IP也是可以的,方法很多)
  7. 设置HOOK
    • 下载 putty 完整包
    • 生成公钥密钥(不累述
    • 利用 puttygen 工具讲 openssh 的私钥转成 putty 的密钥
      • 选择 Import key 引入文件
      • 按 Save private key 保存ppk格式密钥
    • 公钥文件上传到远程服务器 ~/.ssh 下,权限文件夹700 / 文件600
    • 利用命令plink -v -batch host获取密指码 aa:bb:cc:xxxx
    • hook 编辑:plink.exe -hostkey "aa:bb:cc:dd.....ee:ff" -i "..\serv.ppk" root@IP地址 "export LANG=zh_CN.UTF-8; svn update /html/repo; exit;"
  8. 测试完成

第7步遇到的坑比较多,记录一下,因为不想给远程环境追加可执行SHELL的能力,所以采用了SSH链接,刚开始使用了自带的OPENSSL,单独执行完全没有问题,但是用HOOK执行,总是没有结果,会卡住。

所以怀疑是用户问题(事实也确实是),但因为Adminstrator无法登录(家庭版没有组策略,但是如果再去折腾组策略,似乎就是不断地挖坑了)所以看不到问题点,输出也没有内容。于是换了Plink,Plink给了正确的反馈,发现原来是提示是否保存服务端证书的提示卡住了,用命令行输入Y。。。?!#¥#@¥

输入Y是不可能的了。。。也没有-y的参数,就很尴尬了。

翻了一下plink参数,发现了 -hostkey 参数,所以,我只要有了那段密指码就能解决问题了,谷歌一下就找到了这个命令 plink -v -batch host,利用它就能获取到完整密指码了,就是上面的 aa:bb:cc:dd…

到此就可以顺利的让hook利用ssh连接到远程,做任何事情了。可扩展的功能就很多了 23333

继续阅读》

, , ,

Github 简单的安装与使用教程

一直以来都是做公司项目,根本没机会做几个开源项目.导致我的github账号下都没有几个项目.
(国内二线城市相对于一线, 整个互联网的认知都略显落后…
近来发动小伙伴都上github去做做汉化, 开发插件啥的, 结果小伙伴都不会用这厮…所以写出来传授一下吧…

一.Github介绍

Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。(就像我们的SVN一样

GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

原文: http://www.eoeandroid.com/thread-274556-1-1.html

快去注册账号!!

继续阅读》

, , , ,

SVN的安装配置

一.安装subversion

首先安装服务端程序subversion1.x.x和客户端程序TortoiseSVN-1.x.x.xxxx(是两个网站)。subversion在服务器端客户端都需要安装,TortoiseSVN只要在客户端安装就行。TortoiseSVN的语言包下载和TortoiseSVN的下载都在其官网的同一页。

如果使用了eclipse并且用插件的话,则可以不用TortoiseSVN。

从 http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz 下载最新版的Subversion源码包解压后运行
或者直接yum啦

./configure –prefix=/subversion
make
make install

二.创建资料库

/subversion/bin/svnadmin create /home/sub_ku

继续阅读》

, , ,

Powered by WordPress.org.