1 安装git

yum -y install git

2 建立git用户

useradd -s /usr/bin/git-shell git

3 创建证书登录,方便提交版本

cd /home/git/
mkdir .ssh
vi .ssh/authorized_keys
# 把本地用户的公钥加进来
chown git:git -R .ssh
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

4 创建仓库

mkdir test.git
cd test.git/
git --bare init

chown git:git -R test.git

5 本地下载并提交

aquan:git hqlulu$ git clone git@server.domain:/path/to/test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
aquan:git hqlulu$ cd test/
aquan:test hqlulu$ vi a.txt
aquan:test hqlulu$ git add a.txt
aquan:test hqlulu$ git commit -m test
[master (root-commit) 14d99af] test
1 file changed, 1 insertion(+)
create mode 100644 a.txt
aquan:test hqlulu$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@server.domain:/path/to/test.git'
aquan:test hqlulu$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 198 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To server.domain:/path/to/test.git
* [new branch]      master -> master


6 备份本地库到远程并且添加远程库同步

#复制本地库镜像,比如这个Xcode项目刚开始只是本地git库
git clone --mirror ~/Xcode/ABC/
Cloning into bare repository 'ABC.git'...
done.

#同步文件到服务器,也可以是别的方式
rsync -av ABC.git server.domain::DIR/

#回到本地项目,添加远程库
git remote add origin git@server.domain:/path/to/ABC.git

Tags: ,
监控本地http请求其实就是把流量都导向一个代理服务器即可,代理服务器加上日志记录,就可以了。
如果有两个服务器,那其实操作很简单,就是简单的导向代理,本机的话,略微麻烦些。

1 安装squid

安装squid很简单,比如
yum -y install squid


简单配置一下即可,本机使用的话,可以运行在本机,修改一条记录
http_port 127.0.0.1:3128 transparent


仅本机,可以把权限问题放开,deny all 改成 allow all
http_access allow all


service squid start 启动squid

2 运行iptables脚本
nat表里,把80请求导向squid的3128端口即可,但会有个死循环
squid代理,也是80请求,所以,我们简单的把squid的请求过滤即可


//清空规则
iptables -t nat -F
//也可以设置一些白名单,比如某些目标ip
iptables -t nat -A OUTPUT -p tcp --dport 80 --dst 123.57.1.1 -j ACCEPT
//squid用户发出的请求过滤掉
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner squid -j ACCEPT
//把其他80端口请求导向代理
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128


3 查看结果

tail -f /var/log/squid/access.log
1471921782.672    252 1.2.3.4 TCP_MISS/301 467 HEAD http://g.cn/ - DIRECT/203.208.39.210 text/html
1471922623.099  41199 1.2.3.4 TCP_MISS/000 0 GET http://g.cn/ - DIRECT/g.cn -
1471922632.107   5052 1.2.3.4 TCP_MISS/000 0 HEAD http://g.cn/ - DIRECT/g.cn -
1471922634.520     63 1.2.3.4 TCP_MISS/301 332 HEAD http://z.cn/ - DIRECT/54.222.60.252 text/html

一般tab版式的app需要用到UITabBarController,但里面还需要UINavigationController,所以布局方式类似这样:

点击在新窗口中浏览此图片

UITabBarController作为最初入口,里面包含多个UINavigationController
一般带来的问题是,push后,tabbar不隐藏,这里有个简单方式处理

建立一个 MyNavigationController


@interface MyNavigationController : UINavigationController

@end


简单重写push代码即可

#import "MyNavigationController.h"

@interface MyNavigationController ()
@end

@implementation MyNavigationController

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    viewController.hidesBottomBarWhenPushed = YES;
    [super pushViewController:viewController animated:animated];
}

@end


点击在新窗口中浏览此图片

让那几个UINavigationController使用刚才的类即可
这样app还是按平时那样push就可以了,无需增加额外代码,tabBar即可隐藏
    //test notification
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    int max = 1024;
    for (int i=0; i<max; i++) {
        UILocalNotification *notify = [[UILocalNotification alloc] init];
        NSTimeInterval sec = 2.0f + i*2;
        notify.fireDate = [NSDate dateWithTimeIntervalSinceNow:sec];
        notify.alertBody = [NSString stringWithFormat:@"%i", i];
        [[UIApplication sharedApplication] scheduleLocalNotification:notify];
    }
    
    NSLog(@"num = %li", [[UIApplication sharedApplication] scheduledLocalNotifications].count);


为了测试app支持的通知数量,用以上代码测试,尝试创建1024个通知,每次通知会报数。
一方面看真实通知到的数量,另外一方面看通知队列里的数量。

经过测试,9.x支持64个,不能更多
8.x貌似还是可以支持不限制个数,但比真实的1024少一些,不知道具体哪里不同
其他没测试,现在主流这两个系统了
前段时间给YTKKeyValueStore提出多一个计算表里行数的方法
也被接纳并且合并了,但是在pod里使用
pod 'YTKKeyValueStore'

pod install 后发现并没有自己提出的代码
可能要对方发布新版本才能使用

那问题来了,如果自己发现某个项目有bug或者自己增加功能,怎么引用呢?

自己项目是
https://github.com/hqlulu/YTKKeyValueStore

那可以到
https://github.com/hqlulu/YTKKeyValueStore/releases

建立一个release,比如tag version为0.1.3
然后,在项目里可以引用某个版本,指定地址和版本,比如:

pod 'YTKKeyValueStore', :git => 'https://github.com/hqlulu/YTKKeyValueStore', :branch => '0.1.3'


在项目里测试成功哦~

另外一个简单的方式,引用某个提交的名称即可:
pod "XLForm", :git => 'https://github.com/hqlulu/XLForm', :commit => '80663f914b9e696d72040109f09e72fe23ad6f5a'

分页: 3/362 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐