Python 查找使用svn检查更改的模块
我有一个多模块maven项目Python 查找使用svn检查更改的模块,python,perl,parsing,svn,shell,Python,Perl,Parsing,Svn,Shell,我有一个多模块maven项目 Project -Module1 -Module2 -Module3 -Module4 -Module5 我想根据修订号查找文件签入的模块 我知道svn log-v-r12345-r12346svn://repo-path.com/project将获取更改路径的日志,但我只需要模块名称 例如:从下面的日志中我想要 --------------------------------------------------------
Project
-Module1
-Module2
-Module3
-Module4
-Module5
我想根据修订号查找文件签入的模块
我知道svn log-v-r12345-r12346svn://repo-path.com/project
将获取更改路径的日志,但我只需要模块名称
例如:从下面的日志中我想要
------------------------------------------------------------------------
r12345 | debajyoti.das@email.com | 2013-02-06 01:40:23 -0800 (Wed, 06 Feb 2013) | 1 line
Changed paths:
M /PROJECT/SHARED/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/NamedExtensionPoint.java
M /PROJECT/SHARED/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/PrePostExtensionPoint.java
M /PROJECT/SHARED/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/helper/ExtensionConfigurationHelper.java
M /PROJECT/SRE/branches/DEV_Branch/ext/src/main/java/com/companyname/ext/DocumentGeneratorExt.java
M /PROJECT/SRE/branches/DEV_Branch/ext/src/main/java/com/companyname/ext/NamedExtensionPoint.java
M /PROJECT/SRE/branches/DEV_Branch/ext/src/main/java/com/companyname/ext/SystemDateBll.java
BUG 12345678 - BLAH IMPLEMENTATION
------------------------------------------------------------------------
r12346 | debajyoti.das@email.com | 2013-02-06 01:40:23 -0800 (Wed, 06 Feb 2013) | 1 line
Changed paths:
M /MODULE/CYCLE/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/FileCycle1.java
M /MODULE/CYCLE/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/FileCycle2.java
BUG 12345679 - BLAH IMPLEMENTATION
------------------------------------------------------------------------
我想在日志文件中提取PROJECT.SHARED
、PROJECT.SRE
和MODULE.CYCLE
,以便以后在构建过程中使用它们
当我想手动传递多个修订号并生成通过svn签入更改的模块列表时,如何执行此操作。三个单独的任务:
svn
创建日志三,。取决于你想要什么…我回答了这个问题,但OP无法接受这个问题,并使其适用于倍数。这似乎有点不公平和欠缺,我希望他没有因为提供解决方案而得到报酬。@sotapme我创建了一个单独的问题,因为我的要求改变了。上一次我提供了一些错误的输入。我把它打开了,以便我能告诉你这个问题的新要求。附言:我没有得到报酬:)只是个人要求。
import subprocess as sp
svn_url = "svn://repo-path.com/project"
revisions = [12345, 12346]
revision_clargs = ["-r%i" % revision for revision in revisions]
popen = sp.Popen(["svn", "log", "-v"] + revision_clargs + [svn_url],stdout=sp.PIPE,stderr=sp.PIPE)
out,err = popen.communicate()
input_ = """
------------------------------------------------------------------------
r12345 | debajyoti.das@email.com | 2013-02-06 01:40:23 -0800 (Wed, 06 Feb 2013) | 1 line
Changed paths:
M /PROJECT/SHARED/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/NamedExtensionPoint.java
M /PROJECT/SHARED/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/PrePostExtensionPoint.java
M /PROJECT/SHARED/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/helper/ExtensionConfigurationHelper.java
M /PROJECT/SRE/branches/DEV_Branch/ext/src/main/java/com/companyname/ext/DocumentGeneratorExt.java
M /PROJECT/SRE/branches/DEV_Branch/ext/src/main/java/com/companyname/ext/NamedExtensionPoint.java
M /PROJECT/SRE/branches/DEV_Branch/ext/src/main/java/com/companyname/ext/SystemDateBll.java
BUG 12345678 - BLAH IMPLEMENTATION
------------------------------------------------------------------------
r12346 | debajyoti.das@email.com | 2013-02-06 01:40:23 -0800 (Wed, 06 Feb 2013) | 1 line
Changed paths:
M /MODULE/CYCLE/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/FileCycle1.java
M /MODULE/CYCLE/branches/DEV_Branch/extensibility/src/main/java/com/companyname/extensibility/FileCycle2.java
BUG 12345679 - BLAH IMPLEMENTATION
------------------------------------------------------------------------
"""
modified_prefix = " M "
projects = set(map(lambda x: ".".join(x.split("/")[1:3]),
filter(lambda x: x.startswith(modified_prefix),
(input_.split("\n")))))