源文件:http://ju.outofmemory.cn/entry/35762
这是一篇关于pysvn模块的指南.
完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html.
pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个.
该API不能创建新的仓库; 只能作用在现有仓库上. 如果你需要创建一个仓库, 请使用Subversion的svnadmin命令.
使用这个API, 你可以check out一份工作拷贝, 添加, 编辑, 和删除工作文件, 和check in, 比较, 或者放弃更改. 仓库属性, 如关键字扩展, 行字符结束, 或者忽略的列表也可以检查和控制.
Subversion 模型
Subversion是一个更新-编辑-提交的模型. 首先在本地建立一个工作副本. 在工作副本上进行修改, 最后提交到中央仓库 (可以是本地或者远程).
这个模型允许多人偶尔会同时修改同一个文件. 大多情况下. Subversion不会干预合并这些不同修改, 如果一个提交失败, 用户或者应用则要重新检查和修改然后再次提交.
常见任务
本节给出一些使用pysvn接口的常用例子. 业务可以会递归的处理目录. 添加参数recurse=False以防止这种行为; 例如, 你可以需要添加内容没有增加一个目录.
check out一份工作副本
import pysvn client = pysvn.Client()#check out the current version of the pysvn project client.checkout('http://localhost/example/trunk','./examples/pysvn')#check out revision 11 of the pysvn project client.checkout('http://localhost/example/trunk','./examples/pysvn-11', revision=pysvn.Revision(pysvn.opt_revision_kind.number,11))
这是一个建立example测试项目的例子,目录是examples/pysvn. 这个项目是用在剩下的例子.
添加一个文件或者目录到仓库
import pysvn # write a file foo.txt f = file('./examples/pysvn/foo.txt','w') f.write('Sample versioned file via pithon\n') f.close() client = pysvn.Client()#schedule the addition;# the working copy will now track the file as a scheduled change client.add('./examples/pysvn/foo.txt')#committing the change actually adds the file to the repository client.checkin(['./examples/pysvn/foo.txt'],'Adding a sample file')
这个例子是在工作副本中创建了'foo.txt'文件, 然后添加到仓库. 请注意Client.import_()命令会同时增加和提交. 大多数应用, 会在许多修改后再提交.
更新工作副本
import pysvn client = pysvn.Client() client.update('./examples/pysvn')
从仓库中更新其他用户修改并保存到本地副本. 大多数应用应该经常这样做以防止冲突.
提交更新到仓库
import pysvn
# edit the file foo.txt
f = open('./examples/pysvn/foo.txt','w')
f.write('Sample versioned file via python\n')
f.close()# checkin the change with a log message
client = pysvn.Client()
client.checkin(['./examples/pysvn'],'Corrected spelling of python in foo.txt')
提交到Subversion是原子的. 要么所有修改都成功提交, 要么提交失败. 大部分应用会提交工作副本所有修改, 如本例所示, 或者通过个别文件或者目录, 但必须是同一单位.
放弃工作副本修改
import pysvn
# edit the file foo.txt
f = file('./examples/pysvn/foo.txt','w')
f.write('This change will never be seen\n')
f.close()#discard the edits
client = pysvn.Client()
client.revert('./examples/pysvn/foo.txt')
这丢弃在工作拷贝和恢复的文件或目录的任何未提交的未经编辑的状态变化.
正在计划增加或移除留无版本或恢复到工作拷贝.
重命名或者移动文件
import pysvn
client = pysvn.Client()#rename the file client side
client.move('./examples/pysvn/foo.txt','./examples/pysvn/foo2.txt')#checkin the change removes the file from the repository
client.checkin(['./examples/pysvn/foo.txt','./examples/pysvn/foo2.txt'],'Foo has become Foo2')
移动或重命名文件删除旧路径或名称的文件, 并增加了在新的位置, 同时保留以前的版本有关的信息.
在这个例子里, 我们通过文件名Client.checkin()传递父目录也将是有效的.
转移和合并可以在服务器端单步完成; 可以参见仓库任务的那节例子.
从仓库中删除文件或目录
import pysvn
client = pysvn.Client()#schedule the removal;# the file will be removed from the working copy
client.remove('./examples/pysvn/foo2.txt')#committing the change removes the file from the repository
client.checkin(['./examples/pysvn/foo2.txt'],'Removing sample file')
有些人把删除的文件, 或是用完全清除存储库目录. 该文件仍然存在于以前的版本, 可以通过检查或以其他方式进行审查以前修订的内容检索.
确定等待变动
import pysvn
client = pysvn.Client()
changes = client.status('./examples/pysvn')print'files to be added:'print[f.path for f in changes if f.text_status == pysvn.wc_status_kind.added]print'files to be removed:'print[f.path for f in changes if f.text_status == pysvn.wc_status_kind.deleted]print'files that have changed:'print[f.path for f in changes if f.text_status == pysvn.wc_status_kind.modified]print'files with merge conflicts:'print[f.path for f in changes if f.text_status == pysvn.wc_status_kind.conflicted]print'unversioned files:'print[f.path for f in changes if f.text_status == pysvn.wc_status_kind.unversioned]
生成差异或补丁
import pysvn
client = pysvn.Client()
diff_text = client.diff('./tmp-file-prefix-','.')
获取仓库URL
import pysvn
client = pysvn.Client()
entry = client.info('.')print'Url:',entry.url
仓库任务
本节说明任务的例子, 操纵或检查仓库.虽然共同任务, 通过本地工作副本时间的变化, 这些任务直接影响到库 获取仓库目录的清单
import pysvn
client = pysvn.Client()
entry_list = client.ls('.')
从仓库获取文件内容
import pysvn
client = pysvn.Client()
file_content = client.cat('file.txt')
创建一个标记或分支
import pysvn
client = pysvn.Client()
log_message ="reason for change"def get_log_message():returnTrue, log_message
client.callback_get_log_message = get_log_message
client.copy('http://svnrepo.com/svn/trunk','http://svnrepo.com/svn/tag/%s'% tag_name )
从仓库中转移或者重命名
import pysvn
client = pysvn.Client()
client.move('file_old.txt','file_new.txt')
锁定文件
import pysvn
client = pysvn.Client()
client.lock('file.txt','reason for locking')
锁定文件并锁定其他用户或者工作副本
import pysvn
client = pysvn.Client()
client.lock('file.txt','reason for locking', force=True)
解锁
import pysvn
client = pysvn.Client()
client.unlock('file.txt')
解锁文件并锁定其他用户或工作副本
import pysvn
client = pysvn.Client()
client.unlock('file.txt', force=True)
测试锁定文件
Method 1:
all_entries =self.client.info2( path, recurse=False)for path, info in all_entries:if info['lock']:if info['lock']['token']!='':print'%s is locked'% path
print info['lock']['comment']
Method 2:
all_status =self.client.status( path, recurse=False, update=True)for status in all_status:if status.entry isnotNone:if status.entry.lock_token isnotNone:print'%s is locked'% status.path
相关推荐
而PySVN则扮演着连接Python与SVN的角色,让Python程序员能够轻松地进行版本控制操作。 PySVN 1.9.6是这个库的一个稳定版本,对于那些在macOS环境下工作的开发者来说,这是一个好消息。尽管pysvn.tigris.org已经不可...
在pysvn-1.7.0这个压缩包中,包含了pysvn模块的源代码和相关文档,你可以通过阅读源代码了解其内部实现,或者查阅文档以获取更详细的使用指南和API参考。 总结来说,pysvn是Python开发者与Subversion仓库进行交互的...
《PySVN在Windows64位环境下的安装与使用指南》 PySVN是一款强大的Python库,它为Python程序员提供了一种便捷的方式来与Subversion(SVN)版本控制系统交互。这款库使得Python开发者能够轻松地执行SVN命令,如添加...
福兴讯V587对讲机写频,调频软件。福摩斯特V587对讲机写频,调频
app开发
内容概要:本文介绍了LangChain这一开源框架,它专为开发基于大型语言模型(LLM)的应用程序而设计。文章阐述了LangChain的核心理念、架构组成及其重要性。LangChain通过模块化设计解决了大模型应用开发中的效率低下和局限性问题,提供了标准化的接口和丰富的抽象层,使开发者能够轻松接入不同大模型并构建高效的应用程序。文中详细讲解了几个关键模块,包括Model I/O、Retrieval、Chains、Memory、Agents和Callbacks,以及如何安装和使用LangChain进行开发。此外,还展示了具体的代码示例,如如何调用OpenAI的API、构建LLMChain链路、设置回调机制和实现对话记忆功能。 适合人群:对大语言模型有一定了解并且有兴趣开发基于LLM的应用程序的研发人员和技术爱好者。 使用场景及目标:①帮助开发者快速掌握LangChain的基本概念和使用方法;②提供实用的代码示例,便于开发者实际操作;③解释如何通过LangChain克服大模型应用开发中的常见难题,如模型差异、输出不稳定等。 阅读建议:鉴于LangChain涉及较多的专业术语和技术细节,建议读者在阅读时结合官方文档和示例代码一起学习,尤其是对于核心模块的理解和实践。同时,关注GitHub上的最新版本更新,以获取最新的特性和改进。
网络伴侣 iCompanion 2.1 网络计费软件,功能全面,支持ISDN
app开发
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
app开发
移动开发_Flutter_轮子推荐_开发效率提升_1742851671.zip
内容概要:本文详细介绍了往复活塞杆密封件在瞬态条件下热弹流润滑仿真的Python实现。首先定义了几何、材料和工况参数,然后分别构建了流体力学、热力学和固体力学模型。流体力学模型使用有限差分法求解瞬态雷诺方程,热力学模型考虑了温度和压力对粘度的影响,固体力学模型则采用了Mooney-Rivlin超弹性模型和Prony级数描述的粘弹性松弛。最后通过耦合求解实现了整个系统的时间积分,并绘制了液膜厚度和压力分布图。文中还讨论了模型的特点、简化假设以及扩展建议。 适合人群:机械工程领域的研究人员和技术人员,尤其是对密封件性能优化感兴趣的从业者。 使用场景及目标:适用于研究往复活塞杆密封件的工作机理及其在不同工况下的表现,帮助工程师理解和预测密封件的动态特性,从而改进设计和选材。 其他说明:该实现基于论文中的理论框架,但在实际应用时可能需要进一步调整和完善。
人人商城V3-3.2.1版本.zip 亲测能用
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
Java面向对象编程,出现的示例代码
蓝桥杯python,蓝桥杯python相关资源,真题,蓝桥杯,蓝桥杯Python练习系统题库,蓝桥杯Python练习系统题库
rgrgdfsegfasgrsredgf
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。