我正在向人们做演示,我需要提供给定存储库中代码行数的大概数字。
知道如何计算吗?
此外,我是否可以进行细分(Java 行数、JavaScript 行数等)
编辑:计算签出的存储库的行数是可以接受的(而不是直接在远程存储库上)
正如评论中所建议的,这个问题实际上是两个基本上相互独立的问题。 Q1 是如何使用 Subversion 签出工作副本,并且包含在基本用法中。 Q2 是如何计算代码库中的代码行数。
这两个问题都很难解决,但无论如何我们还是看一下。 关于一种解决方案如何影响另一种解决方案需要考虑一些因素。
虽然可以使用
svn ls
和 svn cat
或也可能使用 svnlook tree
编写一些脚本来爬取 Subversion 存储库,但这些只是更多工作。
假设与存储库的网络连接快速,则执行
svn checkout
或 svn export
是更有希望的选择。
请注意,
svn checkout
还将在您的工作副本中创建一个.svn
目录,您必须在后续步骤中忽略该目录。因此 svn export
只为您提供没有任何元信息的文件。另一方面,您可能已经有了一份工作副本,并且想要节省精力来进行 export
。
Subersion 自己的文档详细介绍了这部分内容。
计算代码行数已经被问过,不是一百万次,但足够频繁了。
有针对特定 IDE 和编程语言的解决方案。
我想到的一种非常简单的方法是下面的 shell 一行代码
find . -name .svn -prune -o -type f -name '*.js' | xargs wc -l
wc
实用程序为您提供word c数量,其-l
参数为您提供lines。我们向它提供当前目录和子目录中的任何内容(如果存在,则排除 .svn
),类型为 file 且名称与 *.js
匹配。您可以根据您感兴趣的文件模式调整 -name '*.js'
部分。或者完全忽略它来处理所有文件。
这不会考虑注释,尽管我确信 - 在一个理智的代码库中 - 注释会被谨慎使用并且确实有其目的,所以计算它们是公平的。只是我个人意见。
对于超出此基本级别的任何内容,请参阅本网站上的其他答案之一。