windows 利用apache + git 搭建远程版本仓库

2017-3-13 C++

需求:

    局域网内电脑代码同步管理

环境:

    mac osx/windows7

软件:

    wamp:安装php + http + mysql 开发环境

    git:git版本控制

步骤:参考http://blog.csdn.net/wangwei_cq/article/details/9379757

    第一步:安装wamp:傻瓜化一步步就可以

    第二步:安装git:基本也是傻瓜化看情况选择配置

    第三步:配置Apache服务器

进入Apache安装目录下的conf目录,打开httpd.conf文件,找到<directory />节点,修改如下:

<directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</directory>

然后在httpd.conf文件的末尾追加:

# Set this to the root folder containing your Git repositories.

# 指定 Git 版本库的位置

SetEnv GIT_PROJECT_ROOT C:/workspace

# 该目录下的所有版本库都可以透过 HTTP(S) 的方式存取

SetEnv GIT_HTTP_EXPORT_ALL

# Route specific URLS matching this regular expression to the git http server.

# 令 Apache 把 Git 相关 URL 导向给 Git 的 http 处理程序

ScriptAliasMatch \

"(?x)^/(.*/(HEAD | \

info/refs | \

objects/(info/[^/]+ | \

[0-9a-f]{2}/[0-9a-f]{38} | \

pack/pack-[0-9a-f]{40}\.(pack|idx)) | \

git-(upload|receive)-pack))$" \

"C:/Program Files/Git/libexec/git-core/git-http-backend.exe/$1"

#这边git-http-backend.exe安装路径又得时在c:/Program Files/Git/mingw64/libexec/git-core/git-http-backend.exe

<Location />

AuthType Basic

AuthName "GIT Repository"

AuthUserFile "C:/Program Files/Git/htpassword"

#密码需求,不需要可以注释掉

Require valid-user

</Location>

第四步:添加用户

进入Apache安装目录下的bin,执行

htpasswd -cmb htpassword abc 123456

把生成的htpassword放到c:/Program Files/Git(位置随意,跟上面的AuthUserFile对应就行)

第五步: 测试

进入c:/workspace 创建空版本库

git init --bare test.git

到目的电脑上执行命令上传版本

如:服务端ip为192.168.0.2

git push http://192.168.0.2/test.git master


标签: git apache

评论(0) 浏览(1589)

windows android studio 下载地址

2017-3-12 android

developer.android.com需要翻墙才能访问!

最近google下载软件地址好像放开了!

windows 版本 android studio下载地址如下:

https://dl.google.com/dl/android/studio/install/2.3.0.8/android-studio-ide-162.3764568-windows.exe

标签: android studio

评论(0) 浏览(1048)

PHP实现soap null wsdl服务端,android 实现android client访问

2017-3-11 android

利用php实现soap的服务端供app等客户端访问

服务端:

新建php文件testServer.php

<?php
class service
{
    public function HelloWorld()
    {
        return "hello";
    }
}
$s = new SoapServer(null, array('uri' => 'test'));
$s->setClass("service");
$s->handle();
?>

客户端:

PHP调用:

import urllib2

SM_TEMPLATE = """<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
  </soap:Header>
  <soap:Body>
    <HelloWorld>
    </HelloWorld>
  </soap:Body>
</soap:Envelope>"""

url = "http://www.qs77.net/testServer.php"
http_headers = {
    "Accept": "application/soap+xml,multipart/related,text/*",
    "Cache-Control":"no-cache",
    "Content-Type": "text/xml; charset=utf-8"
}

request = urllib2.Request(url, SM_TEMPLATE, http_headers)
response = urllib2.urlopen(request)
print response.read()
android调用:

new Thread(new Runnable() { 

@Override public void run() { 

try

final String soaptemp = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" + " <soap:Header>" + " </soap:Header>" + " <soap:Body>" + " <HelloWorld>" + " </HelloWorld>" + " </soap:Body>" + "</soap:Envelope>";


URL url = new URL("http://www.qs77.net/testService.php");
HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();
urlCon.setUseCaches(false);
urlCon.setRequestProperty("Accept", "application/soap+xml,multipart/related,text/*");
urlCon.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
urlCon.setRequestProperty("Content-Length", "" + soaptemp.getBytes().length);
urlCon.setRequestProperty("soapAction", "HelloWorld");
urlCon.setRequestMethod("POST");
urlCon.setDoOutput(true);
urlCon.setDoInput(true);
OutputStream out = urlCon.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
writer.write(soaptemp);
writer.flush();
writer.close();
int status = urlCon.getResponseCode();
WolfLog.e(TAG, "" + status);
InputStream in = null; if (status == 200) {
in = urlCon.getInputStream();
} else {
in = urlCon.getErrorStream();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String inputLine;
StringBuilder input = new StringBuilder();
while ((inputLine = reader.readLine()) != null) {
input.append(inputLine);
}
Document document = DocumentHelper.parseText(input.toString());
Element elementRoot = document.getRootElement();
Iterator<Element> iter = elementRoot.elementIterator(); 
while (iter.hasNext()) {
Element element = (Element)iter.next();
if ("Body".equals(element.getName())) {
Iterator<Element> innerIter = element.elementIterator(); 
while (innerIter.hasNext()) {
Element innerElement = (Element)innerIter.next();
WolfLog.e(TAG, innerElement.getName()); 
if ("HelloWorldResponse".equals(innerElement.getName())) {
Iterator<Element> iinnerIter = innerElement.elementIterator(); 
while(iinnerIter.hasNext()) {
Element iinnerElement = (Element) iinnerIter.next(); 
if ("return".equals(iinnerElement.getName())) {
Message msg = mHandler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("msg", iinnerElement.getText());
msg.setData(bundle); 
mHandler.sendMessage(msg);
}
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();


标签: android python soap php dom4j

评论(0) 浏览(1184)

find xargs cp 拷贝查找出来的文件到目标目录

2017-2-10 android

查找目录底下的png文件到新的目录下

find . -name "*.png" | xargs -I{} cp "{}" xxxxx    

标签: shell find xargs cp

评论(0) 浏览(1122)

华为荣耀获取root权限后remount rw还是提示not permitted

2017-2-9 android

adb shell    
su root       
mount -o rw,remount /system 
cd system   
chattr -R -i * (回车)(关键步骤,没有这一步对底下的文件进行操作还是会提示not permitted)

标签: android adb remount not permitted

评论(0) 浏览(1327)

使用python改变文件夹中的代码文件编码

2017-1-18 python

现状:

项目以前在windows底下写的使用的编码是gbk

在mac os底下用xcode显示中文乱码

解决方式:

    把项目底下文件的编码改为utf-8编码

使用工具:

    python

代码如下:

   

#-*- coding:utf-8 -*-

import os

class CodeConvert :

    def __init__(self, path, dcode, scode) :

        self.file_lists = []

        if os.path.exists(path) :

            self.parent_path = path

        else :

            self.parent_path = ""

        self.dest_code = dcode

        self.src_code = scode

        self.exts = [".cpp", ".c", ".h"]

    def ListFiles(self) :

        for root, dirs, files in os.walk(self.parent_path) :

            for name in files :

                self.file_lists.append(os.path.join(root, name))

    def Convert2DestCode(self) :

        for file in self.file_lists:

            ext = os.path.splitext(file)[1]

            ext = ext.lower()

            if ext in self.exts :

                self.Convert(file)

    def Convert(self, file) :

        try :

            print file

            f = open(file)

            buf = f.read()

            f.close()

            u1 = buf.decode(self.src_code)

            utf1 = u1.encode(self.dest_code)

            f = open(file, 'w+')

            f.write(utf1)

            f.close()

        except :

            print "except" + file


def main() :

    convert = CodeConvert('/Users/xxx/Desktop/xxx', 'utf8', 'gbk')

    convert.ListFiles()

    convert.Convert2DestCode()

标签: python utf8 gbk xcode

评论(0) 浏览(1108)

python利用py2exe生成的exe窗口一闪而过解决办法

2016-12-1 python

利用py2exe把python脚本生成exe后,运行程序一闪而过

窗口提示找不到模块例如xlsxwriter

原因是xlsxwriter库使在egg里面,因此py2exe生成时没办法导入

解决办法:

把xlsxwriter解压到工程目录文件夹中,再重新生成下就可以了

标签: python py2exe xlsxwriter

评论(0) 浏览(2056)

win10 createprocess等执行批处理窗口闪退

2016-10-26 C++

32位程序本来在win7 64位系统上运行没问题,后来系统升级到win10时,原先使用createprocess等执行的批处理程序启动不了

后来把程序编译成64位后就可以了!

通过测试,发现原来是win10系统上的32位cmd.exe启动不起来,而32位系统虽然是调用c:\windows\system32里面的cmd.exe,

实际上调用的是c:\windows\sysWow64里面的cmd.exe,具体可以查看如下网址解释:

http://www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html

当然如果要在32位系统调用system32里面的cmd.exe,微软也有提供接口实现!

Wow64DisableWow64FsRedirection:具体调用方式参考:

https://msdn.microsoft.com/zh-tw/library/aa365743(v=vs.85).aspx


标签: win10 createprocess 批处理

评论(0) 浏览(3083)

vs2008编译出错C2813 #import is not supported with /MP

2016-10-25 C++

用vs2008编译别人项目时候出错,报错码c2813  #import is not supported with /MP

上网找了下原因大致是import不支持并发编译;

具体错误解释https://msdn.microsoft.com/zh-cn/library/bb384890.aspx

解决办法:在项目属性的c/c++命令行加上额外参数/MP1 使用单处理器编译

标签: vs2008 C2813 MP

评论(0) 浏览(3657)

python yield 使用说明

2016-10-15 python

标签: python yield

评论(0) 浏览(1093)

Powered by EMLOG Copyright @ 狼酒 版权所有. 闽ICP备14012694号-2