Perl还是Python SVN爬虫

0 投票
3 回答
788 浏览
提问于 2025-04-16 22:42

有没有一种工具可以在SVN(一个版本控制系统)中自动浏览,列出所有现有的分支和标签?

最好是用Perl或Python这两种编程语言来实现……

3 个回答

0

感谢大家的帮助,以下是我在你们的帮助下用Python写的代码:

# -*- coding: utf-8 -*-
import os
import sys
import pysvn
svnclient = pysvn.Client()
projects = svnclient.list(sys.argv[1])
for project_path, project_info in projects:
    try:
        project_branches = svnclient.list(project_path.path + '/branches/')
        if ( len(project_branches)>2 ):
            for branch, info in project_branches:
                print branch.path
    except:
        pass
1

这里有一段小代码,可以用来打印SVN仓库中关于文件的信息,使用的是python

# svncrawler.py
import os
import sys
import pysvn

svn_client = pysvn.Client()

for file_status in svn_client.status(sys.argv[1]):
    print u'SVN File %s %s' % (file_status, file_status.text_status)

你可以这样调用它:

python svncrawler.py my_repository

修改这段代码,让它只打印标签和分支应该很简单。

6

SVN中的标签和分支其实就是一些文件夹,通常会有特定的命名规则。你可以很简单地用perl语言来获取它们,像这样:

my @branches = `svn ls YourRepoBaseURL/branches`;
chomp @branches; # remove newlines
chop @branches; # remove trailing /
my @tags = `svn ls YourRepoBaseURL/tags`;
chomp @tags;
chop @tags;

撰写回答