Я новичок в таких вещах.Вроде первый пост за всю историю программирования, так как до сих пор мне удавалось гуглить все что мне нужноСпасибо за ваше терпение :).
О моей проблеме / цели: В нашем проекте нам потребуется некоторый контроль управления документацией.У нас будет около 160 файлов .docx (все файлы уже известны), для контроля версий мы будем использовать SVN.Эти файлы будут сохранены в разных папках (далее я создам структуру репозитория), у папок будет функция фазы, на которой мы сейчас находимся в нашем проекте (у нас будет около 12 папок).Когда фаза завершена, пометьте aka.Официальный релиз будет сделан.Каждый файл будет размещен в столбце MS Excel WorkSheet с такими данными, как: Фаза, Имя, Редакция, Тег, Гиперссылка.
Что мне нужно сделать, это: Макрос, который будет искать файл в хранилище, еслинайден прочитан, его ревизия, тег (последний) .. запишите его в таблицу Excel, а также создайте гиперссылку на этот файл в другом столбце.
Структура репозитория:
- транк
- System_Development
- System_Requirements_Specifications.docx
- System_Architecture_Description.docx
- System_Safety_Plan.docx
- ...
- Планирование программного обеспечения
- Software_Quality_Assurance_Plan.docx
- Software_Configuration_Management_Plan.docx
- ...
- ...
- ветви (вероятно, не привыкнут, пока не уверены)
- теги
- 1
- System_Development
- System_Requirements_Specifications.docx
- System_Architecture_Description.docx
- System_Safety_Plan.docx
- ...
- 2
- System_Development
- System_Requirements_Specifications.docx
- System_Architecture_Description.docx
- System_Safety_Plan.docx
- ...
- Планирование программного обеспечения
- Software_Quality_Assurance_Plan.docx
- Software_Configuration_Management_Plan.docx
- ...
Я уже сделал макрос, который делает точную вещь, но проблема в том, что он очень медленный.Как и почему?
Я использовал 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, что сделало бы мою функцию тега очень медленной.
Iпонятия не имею, как получить доступ к хранилищу любым другим способом, кроме svn.exe.Я думаю об удаленном доступе к хранилищу и запросе базы данных или о чем-то еще, все еще исследуя эту часть.
Надеюсь, вы понимаете мою проблему, для получения дополнительной информации, которую я могу получить целый день!Спасибо за вашу помощь!