实习日志(第三周2)
来源:互联网 发布:centos配置本地yum源 编辑:程序博客网 时间:2024/04/30 02:56
任务:编写脚本完成git日志以及svn日志的拉取
解决思路:
git日志拉取
- 安装GitBash
- 将Pycharm中的git设置关联GitBash.exe
- 安装os模块
import osprint os.system('git clone "https://github.com/521xueweihan/git-tips"')#使用os.system(git clone“url”)命令拉取GitHub上的git
import osprint os system('git log>log.txt')#拉取本地git日志并将其保存到log.txt文档中
svn日志拉取
- 安装visual svn,部署svn服务器
- 安装TortoiseSVN,部署svn客户端
- 将Pycharm中的Subversion关联svn.exe
import osos.system('svn log>log.txt')#拉取本地svn日志并将其保存到log.txt文档中
python脚本总的代码
#!/usr/bin/env python# -*- coding:gbk -*-# Need to have git and svn configuration environment can runimport osimport _winregimport clickdef get_desktop(): # 获取桌面路径 key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders') return _winreg.QueryValueEx(key, "Desktop")[0]def determine_save_path(save_path): if not os.path.isdir(save_path): os.makedirs(save_path) # 在桌面生成保存提取日志的get_log文件夹,如果已经存在则跳过def fetch_local_git_log(url, save_path): os.chdir(url) os.system('git log>{}/local_git_log.txt'.format(save_path))def fetch_server_git_log(url, save_path): os.chdir(save_path) os.system('git clone ' + url) # 先克隆'github'上的git到本地计算机然后查看日志 url_new = eval(url) git_path = os.path.basename(url_new) os.chdir(save_path + '/' + git_path) os.system('git log>{}/server_git_log.txt'.format(save_path))def fetch_local_svn_log(url, save_path): os.chdir(url) os.system('svn log>{}/local_svn_log.txt'.format(save_path))def fetch_server_svn_log(url, save_path): os.chdir(save_path) os.system('svn checkout ' + url) # 先检出svn服务器上的svn到本地计算机然后拉取日志 git_path = url.split('/')[-2] os.chdir(save_path + '/' + git_path) os.system('svn log>{}/server_svn_log.txt'.format(save_path))@click.command() # 装饰一个函数,使之成为命令行接口@click.option('--url', prompt='请输入你要拉取的日志地址', type=str, help='本地日志地址输入格式:url;远程日志地址输入格式:"url" ')def fetch_log(url): save_path = get_desktop()+'\get_log' determine_save_path(save_path) if os.path.exists(url+'\.git'): # 判断是否是git版本库 fetch_local_git_log(url, save_path) print 1 elif os.path.exists(url+'\.svn'): # 判断是否是svn版本库 fetch_local_svn_log(url, save_path) elif 'github' in url: # 判断是否是'github'路径 fetch_server_git_log(url, save_path) elif 'svn' in url: # 判断是否是svn服务器路径 fetch_server_svn_log(url, save_path) else: click.echo("输入指令有误,请重新输入") # raw_input("提取日志成功,输入ctrl+C退出")if __name__ == '__main__': fetch_log()
运行效果
地址输入错误则会报错。
日志保存在桌面生成的get_log文件夹下
阅读全文
0 0
- 实习日志(第三周2)
- 实习日志(第三周)
- 实习日志(第六周2)
- 第三周实习记
- 实习第三周
- 实习日志(第六周)
- 实习日志(第五周)
- 实习日志(第七周)
- 实习日志2
- 实习日志-2
- 实习日志2
- Android第三周实习笔记
- 远程实习第三周总结
- 我的实习日志 2
- 实习日志(第四周2)
- 实习第三周总结(2013.07.29-2013.08.2)
- 实习日志
- 实习日志
- 算法模板之中国剩余定理
- Android开发笔记: 解决View宽高为0的问题
- addHeaderView()异常 —— setAdapter has already been called
- I2C-tool使用
- 错过互联网风口的你,今天别再错过数据时代
- 实习日志(第三周2)
- RoundRobinVolumeChoosingPolicy will cause storage imbalance when multiple storage type is specified
- 北大和人大两年整理出来的阅读书单【无论你是什么专业】
- Java面试题Day2
- db2相关操作知识点积累及WINDOWS环境DB2连接远程数据库实例
- Fiori学习笔记
- 日知录2017第二届企业存储峰会日程新鲜出炉!
- ETL工具—kettle使用之一
- jsch实现sftp服务器的文件时上传下载