需要知道 SVN 存储库中的总代码行数

问题描述 投票:0回答:1

我正在向人们做演示,我需要提供给定存储库中代码行数的大概数字。

知道如何计算吗?

此外,我是否可以进行细分(Java 行数、JavaScript 行数等)

编辑:计算签出的存储库的行数是可以接受的(而不是直接在远程存储库上)

svn tortoisesvn
1个回答
0
投票

正如评论中所建议的,这个问题实际上是两个基本上相互独立的问题。 Q1 是如何使用 Subversion 签出工作副本,并且包含在基本用法中。 Q2 是如何计算代码库中的代码行数。

这两个问题都很难解决,但无论如何我们还是看一下。 关于一种解决方案如何影响另一种解决方案需要考虑一些因素。

第 1 部分:签出工作副本

虽然可以使用

svn ls
svn cat
或也可能使用
svnlook tree
编写一些脚本来爬取 Subversion 存储库,但这些只是更多工作。

假设与存储库的网络连接快速,则执行

svn checkout
svn export
是更有希望的选择。

请注意,

svn checkout
还将在您的工作副本中创建一个
.svn
目录,您必须在后续步骤中忽略该目录。因此
svn export
只为您提供没有任何元信息的文件。另一方面,您可能已经有了一份工作副本,并且想要节省精力来进行
export

Subersion 自己的文档详细介绍了这部分内容。

第 2 部分:计算代码行数

计算代码行数已经被问过,不是一百万次,但足够频繁了。

有针对特定 IDE 和编程语言的解决方案。

我想到的一种非常简单的方法是下面的 shell 一行代码

find . -name .svn -prune -o -type f -name '*.js' | xargs wc -l

wc
实用程序为您提供word c数量,其
-l
参数为您提供lines。我们向它提供当前目录和子目录中的任何内容(如果存在,则排除
.svn
),类型为 file 且名称与
*.js
匹配。您可以根据您感兴趣的文件模式调整
-name '*.js'
部分。或者完全忽略它来处理所有文件。

这不会考虑注释,尽管我确信 - 在一个理智的代码库中 - 注释会被谨慎使用并且确实有其目的,所以计算它们是公平的。只是我个人意见。

对于超出此基本级别的任何内容,请参阅本网站上的其他答案之一。

© www.soinside.com 2019 - 2024. All rights reserved.