2009-06-08 19 views
6

Subversion ve CA Harvest SCM'yi, bir ekipteki çalışmayı senkronize etmek ve Kurumsal kayıt sistemi olarak Hasat için Subversion'ı kullanıyorsanız nasıl entegre ederdiniz?Sync Subversion ve Hasat SCM depoları?

Araştırmakta olduğum bir yaklaşım, bir SVN etiketini Hasat'a yükleyen bir komut dosyası oluşturmaktır, ancak daha önce böyle bir şey yaptıysa veya sorunu çözmenin daha iyi bir yolu varsa merak ediyorum.

+0

... görünüşte değil! – cwash

+0

Eğer iyi bir cevap ile gelirseniz, lütfen gönderin. :-) –

cevap

4

Subversion to Harvest ile senkronize etmek için bir komut dosyası oluşturdum. Diğer yolu senkronize etmek zorunda değiliz, ancak bunun yerine betiği değiştirmek zor olmaz. Komut dosyasını buradan kontrol edebilirsiniz ->http://developerdad.com/2011/03/28/synchronize-subversion-to-ca-allfusion-harvest/

Şu an bu komut dosyasını Jenkins (eski Hudson) CI sunucumuzla kullanacağız. Böylece yeni bir Hasat paketi oluşturuldu (Jenkins tarafından ayarlanan% JOB_NAME% değişkeni tarafından adlandırıldı) Her Üretim ile çalışır.

Güncelleme

web sitesi yukarı olmuştur ve aşağı, işte senaryo:

@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

Tatlı! Bunu yapmanın bir yolu. – cwash

1

Subversion ile sunucuyu, her harekette bir komut dosyası çalıştıracak şekilde yapılandırabilirsiniz. Bu, CA Harvest'deki bazı işlevleri çağırabilir.

Eğer Eclipse kullanıyorsanız başka bir alternatif de Mylyn ile bütünleşmek olacaktır. Mylyn Subversion ile bütünleşiyor ve CA Harvest için bir Eclipse eklentisi olduğunu düşünüyorum - belki hepsi birlikte güzelce çalışacaklar mı?

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