08.08.2014

Subversion: синхронизация каталога между двумя репозитариями

Например, мы ведем java код в одном репозитарии, а объекты sql и ldt складируем в другой. Заказчик захотел в каталогах функциональных расширений видеть ещё и папку java c исходниками. Пишем batник синхроинзации.
@echo off
@echo ---------------------------------------
@echo Sync Java sources from java JSVN to source SSVN
@echo ---------------------------------------
# защита от случайного запуска. Обязательно должны запускать с -refresh
if "%1" == "refresh" (
# временный каталог для импорта
if exist c:\svn_tmp (
  <nul set /p strTemp=Cleaning a temp folder...
  rmdir c:\svn_tmp /s /q
  <nul set /p strTemp=done.
  echo.
)
# импорт содержимого репозитария
svn export https://JSVN-url/java_folder c:\svn_tmp
# если что-то появилось в каталоге, начинаем экспорт
if exist c:\svn_tmp\xxmy000(
 <nul set /p strTemp=Cleaning old revisions in SSVN...
 svn delete svn://SSVN-url/appscode/trunk/XXMY/XXMY000/java/src/oracle/apps/xxmy/xxmy000 -m "clean old rev"
 <nul set /p strTemp=done.
 echo.
 <nul set /p strTemp=Importing new revisions to SSVN...
 svn import c:\svn_tmp\xxmy000 svn://SSVN-url/appscode/trunk/XXMY/XXMY000/java/src/oracle/apps/xxmy/xxmy000 -m "actualize"
 <nul set /p strTemp=done.
 echo.
 <nul set /p strTemp=Cleaning a temp folder...
 rmdir c:\svn_tmp /s /q
 <nul set /p strTemp=done.
) else (
 @echo --------!! Error during import
)
) else (
 @echo !Error: Parameter 1 not found. Nothing done.
)
pause