Я хотел бы запустить пакетный файл с помощью post-commit hook в Subversion. Моя проблема заключается в том, что я хочу запустить его один раз для каждого файла, который был зафиксирован, но я не знаю, как получить имена зафиксированных файлов в пределах крюка. Я могу запустить его для каждого файла в папке, однако, когда я вышел из этой тестовой среды и на самом деле использую эту функцию, есть много разных файлов, и это будет очень неэффективно. Есть идеи??Крючки в Subversion
ответ
Мне удалось выяснить это с помощью партии и использовать временные текстовые файлы для хранения некоторых данных. Я должен был сделать некоторую обработку, чтобы получить только имя файла в переменной, так как это то, что мне нужно в качестве параметра. Это не может быть наиболее эффективным методом, но он достиг своей цели ...
setlocal EnableDelayedExpansion
rem write a list of the changed files in a text file
"C:\svnpath\bin\svn.exe" log "C:\repo-path\project" -r %TXN% --verbose > "C:\path\changelist.txt"
rem write the list of all files into a text file
cd "C:\repo-path\project"
dir /b > "C:\path\filelist.txt"
rem loop through files
cd "C:\path"
for /F "delims=" %%i IN (filelist.txt) do (
rem search for file name in list of changed files, if found run batch file on it
find /i "%%i" changelist.txt > nul
echo %%i > "C:\path\temp.txt"
if not errorlevel 1 (
cd "C:\repo-path\project"
batchfile.bat %%i
)
)
rem delete temp files when finished
del "C:\path\filelist.txt"
del "C:\path\changelist.txt"
del "C:\path\changedfiles.txt"
SVN передает на крючок два значения, путь к репозиторию и номер версии, которые были сгенерированы.
Используя эту информацию, вы можете запросить SVN путь, измененный в этой ревизии, и получить список добавленных/измененных файлов.
, но хорошо знать, что это можно сделать. .. можете ли вы предложить какую-либо помощь в том, как получить измененные файлы? У меня есть скрипт, который делает это для каждого файла в папке сейчас, если вы можете показать мне скрипт для получения исправленного или измененного файла, я бы очень признателен! :) – mgrenier
В сценарии просто вызовите svn-журнал, используя переданную ему ревизию, и вы получите полный список всего, что было изменено в commit. –
Итак, теперь я могу получить имена измененных файлов, мне интересно, могу ли я выводить их в структуру данных, такую как массив, чтобы я мог перебирать их, чтобы вызвать мой пакетный файл для каждого из них? – mgrenier
Вы сделали только один маленький ошибка: список файлов в транзакции (на стороне сервера, как крючками, выполненных на сервере) можно получить проще (и без «шума» журнала), чем svn log -v
. Это svnlook
с субкомандой changed
Образцом для пересмотра в репо (для сделки вы будете использовать -t %TXN%
)
>svnlook.exe changed -r 31 Hello
U trunk/Hello.de.txt
U trunk/Hello.en.txt
U trunk/Hello.fr.txt
Hello
является путем к хранилищу корня (не рабочей копии), вывод команды, кажется, частично как вывод svn st
, путь к файлам - относительные пути от репо-корня
- 1. Подвижные крючки в папке конфигурации
- 2. PostCommit Крючки в Jenkins/SVN
- 3. Крючки в Ghostscript
- 4. Крючки Клавиатура в C#
- 5. Крючки в Laravel 5?
- 6. Дистанционные крючки в шлейфе
- 7. Есть «крючки» в SASS?
- 8. Крючки в Codeigniter
- 9. Местоположение перехватчиков subversion
- 10. Добавить Subversion Repo
- 11. крючки для регистрации в drupal
- 12. Какие крючки предусмотрены в jQuery?
- 13. Где разместить крючки в Drupal?
- 14. крючки не загружались в codeigniter
- 15. Крючки на функции в node.js
- 16. Защитные крючки в шаблоне шаблона
- 17. Как использовать крючки в огурцах?
- 18. Что такое крючки в codigniter?
- 19. Крючки в приложениях Windows 8
- 20. Операции крючки или удаленные крючки для метода создания
- 21. Лучшая стратегия писать крючки для подрывной деятельности в ОС Windows
- 22. Что такое CSS-крючки и какие очень распространенные CSS-крючки?
- 23. Кордова крючки заказать
- 24. Угловые 2 крючки ngOnInit
- 25. Крючки для «умных» элементов
- 26. Вебсайты «крючки» помощь
- 27. Крючки для git-svn
- 28. Spree как использовать крючки
- 29. Цепные крючки git
- 30. Где найти крючки wscript?
Что именно делает ваш скрипт? – bahrep
Сейчас все, что он делает, это дата обновления моей рабочей копии, однако для использования кода с сторонним программным обеспечением, которое моя компания использует, ему необходимо запустить скрипт, этот скрипт должен запускаться для каждого измененного файла. Я создал пакетный файл, который позволяет запускать его как ... myscript.bat changefile.c из командной строки ... Я хотел бы запустить мой пакетный файл для каждого измененного файла – mgrenier