2009-06-08 9 views
6

Subversionを使用してチーム全体で作業を行い、エンタープライズシステムとしてHarvestを使用する場合は、SubversionとCA Harvest SCMをどのように統合しますか?SubversionとHarvest SCMリポジトリを同期しますか?

私が調査しているアプローチは、HarvestにSVNタグを読み込むスクリプトを作成することですが、他の誰かが以前にこのようなことを行っているか、問題に近づけるより良い方法があるかどうか不思議です。

+0

...明らかではありません! – cwash

+0

良い答えが出たら、投稿してください。 :-) –

答えて

4

SubversionとHarvestを同期させるためのスクリプトを作成しました。他の方法と同期させる必要はありませんが、代わりにスクリプトを変更するのは難しくありません。ここでスクリプトをチェックすることができます - >http://developerdad.com/2011/03/28/synchronize-subversion-to-ca-allfusion-harvest/

私たちはJenkins(以前のHudson)CIサーバーでこのスクリプトを使用していますので、新しいHarvestパッケージが作成されます(Jenkinsによって設定された%JOB_NAME%それぞれのProductionビルドが実行されます。

アップデートは

ウェブサイトがアップされているとダウンするので、ここでのスクリプトは次のとおりです。

@echo off 

REM ########################################################################### 
REM # 
REM # Script file to move changes from Subversion to Harvest 
REM # 
REM ########################################################################### 

if "%1" == "" goto usage 

setlocal 

set PROJECT_STAGE=-b "" -en "" -st "" 
set VIEW=-vp "" 
set CREDENTIALS=-usr "" -pw "" 
set SUBVERSION_REPO=svn:////trunk/ 

REM Clean up any build artifacts if present 
call ant clean 

REM Create Harvest package 
hcp %1 %PROJECT_STAGE% %CREDENTIALS% 

REM Delete the checked-out Subversion code 
REM Note: You will need to remove everything (except this file of course), so more rmdir or del statements may be required below 
rmdir /S /Q project 

REM Check out the files in Harvest to modify 
hco * %PROJECT_STAGE% %CREDENTIALS% %VIEW% -p "%1" -pn "Check Out Files for Update" -up -r -s * -op pc -cp %CD% 

REM Delete the checked-out Harvest code 
REM Note: You will need to remove everything (except this file of course), so more rmdir or del statements may be required below 
rmdir /S /Q project 

REM Replace with the latest code from Subversion repository 
svn co %SUBVERSION_REPO% . 

REM Delete the .svn directories 
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *svn') do (
    rd /s /q "%%i" 
) 

REM What are the updates for Harvest? Check them into Harvest 
hci * %PROJECT_STAGE% %CREDENTIALS% %VIEW% -p "%1" -pn "Check In Modified Files" -s * -ur -de "Added in Subversion" -if ne -op pc -cp %CD% 

REM Remove the log files from Harvest 
REM Note: You may need to change or remove this statement depending on whether you want the Harvest logs checked in 
hdv *.log %PROJECT_STAGE% %CREDENTIALS% %VIEW% -pn "Delete Versions" 

REM What removals from Harvest do we need to process? (What files were deleted in Subversion?) 
hsv %PROJECT_STAGE% %CREDENTIALS% %VIEW% -p "%1" -it r -s "*" 

REM This will not work if the file path has spaces in it. You can use %%j %%k ... in the -vp switch for one space in your project name (For example, if you have 2 spaces, it should be -vp %%j %%k %%l) 
for /f "tokens=1-5 skip=3" %%i in (hsv.log) do (
    if not "%%i"=="hsv" (
     hci "%%i" %PROJECT_STAGE% %CREDENTIALS% -vp "%%j" -p "%1" -pn "Check In Modified Files" -ro -cp %CD% 
     hri "%%i" %PROJECT_STAGE% %CREDENTIALS% -vp "%%j" -p "%1" 
    ) 
) 

REM remove read-only attribute from all files 
attrib -r -h * /s 

REM delete all harvest.sig files 
del /f /s /q harvest.sig 

endlocal 

goto end 

:usage 

echo USAGE: 
echo ----------------------------------------------------------------------------- 
echo "svn2harvest {package_name}" 
echo ----------------------------------------------------------------------------- 

:end 
+0

甘い!それはそれを行う一つの方法です。 – cwash

1

私は、CA Harvestのいくつかの機能を呼び出すことができるかもしれない各コミット時にスクリプトを実行するようにサーバーを設定することができます。

Eclipseを使用している場合は、Mylynを使用して統合することもできます。 MylynはSubversionと統合されています。私はCA HarvestのEclipseプラグインがあると思います。おそらくそれらはすべてうまく連携しますか?

0
@ECHO OFF 

REM By Developer Dad 

REM ########################################################################### 
REM # 
REM # Archivo script para mover los cambios desde el SVN al Harvest 
REM # 
REM ########################################################################### 

IF "%1" == "" GOTO usage 

REM Enable local environment to be changed without affecting anything else 
REM 
SETLOCAL 

SET PROJECT_STAGE=-b "" -en "" -st "" 
SET VIEW=-vp "" 
SET CREDENTIALS=-usr "" -pw "" 
SET SUBVERSION_REPO=svn:////trunk/ 

REM Clean up any build artifacts if present 
REM 
CALL NAnt clean 

REM Create Harvest package 
REM 
HCP %1 %PROJECT_STAGE% %CREDENTIALS% 

REM Delete the checked-out Subversion code 
REM Note: You will need to remove everything (except this file of course), so more RMDIR or del statements may be required below 
REM 
RMDIR /S /Q project 

REM Check out the files in Harvest to modify 
REM 
HCO * %PROJECT_STAGE% %CREDENTIALS% %VIEW% -p "%1" -pn "Check Out Files for Update" -up -r -s * -op pc -cp %CD% 

REM Delete the checked-out Harvest code 
REM Note: You will need to remove everything (except this file of course), so more RMDIR or del statements may be required below 
REM 
RMDIR /S /Q project 

REM Replace with the latest code from Subversion repository 
REM 
SVN co %SUBVERSION_REPO% . 

REM Delete the .svn directories 
REM 
FOR /f "tokens=* delims=" %%i IN ('DIR /s /b /a:d *svn') DO (
    RD /s /q "%%i" 
) 

REM What are the updates for Harvest? Check them into Harvest 
REM 
HCI * %PROJECT_STAGE% %CREDENTIALS% %VIEW% -p "%1" -pn "Check In Modified Files" -s * -ur -de "Added in Subversion" -if ne -op pc -cp %CD% 

REM Remove the log files from Harvest 
REM Note: You may need to change or remove this statement depending on whether you want the Harvest logs checked in 
REM 
HDV *.log %PROJECT_STAGE% %CREDENTIALS% %VIEW% -pn "Delete Versions" 

REM What removals from Harvest do we need to process? (What files were deleted in Subversion?) 
REM 
HSV %PROJECT_STAGE% %CREDENTIALS% %VIEW% -p "%1" -it r -s "*" 

REM This will not work if the file path has spaces in it. You can use %%j %%k ... in the -vp switch for one space in your project name (For example, if you have 2 spaces, it should be -vp %%j %%k %%l) 
REM 
FOR /f "tokens=1-5 skip=3" %%i IN (hsv.log) DO (
    IF NOT "%%i"=="hsv" (
     HCI "%%i" %PROJECT_STAGE% %CREDENTIALS% -vp "%%j" -p "%1" -pn "Check In Modified Files" -ro -cp %CD% 
     HRI "%%i" %PROJECT_STAGE% %CREDENTIALS% -vp "%%j" -p "%1" 
    ) 
) 

REM remove read-only attribute from all files 
REM 
ATTRIB -r -h * /s 

REM delete all harvest.sig files 
REM 
DEL /f /s /q harvest.sig 

ENDLOCAL 

GOTO end 

:usage 

ECHO USAGE: 
ECHO ----------------------------------------------------------------------------- 
ECHO "svn2harvest {package_name}" 
ECHO ----------------------------------------------------------------------------- 

:end 
関連する問題