我对这类事情很陌生。这是第一篇关于编程的文章,因为到目前为止我设法用谷歌搜索我需要的一切。感谢您的耐心等待:) .
关于我的问题/目标: 在我们的项目中,我们必须有某种文档管理控制。我们将有大约 160 个 .docx 文件(所有文件都是已知的),为了进行版本控制,我们将使用 SVN。这些文件将保存在不同的文件夹中(进一步我将制作存储库结构),文件夹将具有我们当前项目中的一个阶段的功能(我们将有大约 12 个文件夹)。当一个阶段完成后,标记 aka。将会正式发布。 每个文件都将在 MS Excel 工作表列中占有一席之地,其中包含以下数据:阶段、名称、修订、标签、超链接 ..
我要做的是: 将在存储库中搜索文件的宏,如果找到,则读取其修订版本,标记(最新).. 将其写入 Excel 工作表中,并在另一列中创建指向该文件的超链接。
存储库结构:
- 树干
- 系统_开发
- System_Requirements_Specifications.docx
- System_Architecture_Description.docx
- System_Safety_Plan.docx
- ...
- 软件规划
- Software_Quality_Assurance_Plan.docx
- Software_Configuration_Management_Plan.docx
- ...
- ...
- 系统_开发
- 分支(可能不会被使用,还不确定)
- 标签
- 1
- 系统_开发
- System_Requirements_Specifications.docx
- System_Architecture_Description.docx
- System_Safety_Plan.docx
- ...
- 系统_开发
- 2
- 系统_开发
- System_Requirements_Specifications.docx
- System_Architecture_Description.docx
- System_Safety_Plan.docx
- ...
- 软件规划
- Software_Quality_Assurance_Plan.docx
- Software_Configuration_Management_Plan.docx
- ...
- 系统_开发
- 1
我已经制作了一个可以完成确切操作的宏,但问题是它非常慢。如何以及为何?
我正在使用ShellAndWait("cmd.exe /c svn list --verbose http:\\localhost\trunk > text.txt")
,解析该文本文件以获取主干中的文件夹,然后检查这些文件夹中有哪些文件(每个文件夹都有另一个 ShellAndWait),如果找到它们,则获取修订号等..
正如您最后看到的,在我的代码中 svn 命令执行了 13 次,因此找到了存储库中的文件。通过 svn list --verbose 我还得到了修订号。对于 svn 命令执行它持续大约 0.15-0.20 秒,所以我的修订号收集持续大约 2 秒。这不是问题。
获取标签是一个问题,因为我的文件夹中有文件夹,所以最终我们可能会执行大约 40 次甚至更多的 svn,这将使我的标签功能非常慢。
我不知道如何使用 svn.exe 以外的任何其他方式访问存储库。我正在考虑远程访问存储库并查询数据库或其他什么,仍在研究那部分。
希望您理解我的问题,有关更多信息,我全天都可以提供!感谢您的帮助!
最佳答案
svn list 有一个选项 -R 或 --recursive 来包含所有子文件夹。因此,以所有必需的文件夹都是主文件夹的子文件夹的方式组织文件夹结构将减少所需的调用次数。 或者,您可以使用 --depth 选项来控制子文件夹的深度下降。
从 svn 帮助列表
输出中提取:
-R [--recursive] : descend recursively, same as --depth=infinity
--depth ARG : limit operation by depth ARG ('empty', 'files',
'immediates', or 'infinity')
我。 e.以主干和分支在文件夹结构中相对较高的方式组织项目,不同的阶段在其下方。
关于svn - 存储库信息 (SVN) 与 Excel 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404480/