如果使用Subversion同步跨團隊和收穫作爲記錄的企業制度的工作你會如何整合顛覆和CA收穫SCM?同步Subversion和Harvest SCM存儲庫?
的一種方法,我調查是創建加載SVN標籤進入收穫一個劇本,但很好奇,如果任何人做了這樣的事情之前,或者有更好的辦法來解決這個問題。
如果使用Subversion同步跨團隊和收穫作爲記錄的企業制度的工作你會如何整合顛覆和CA收穫SCM?同步Subversion和Harvest SCM存儲庫?
的一種方法,我調查是創建加載SVN標籤進入收穫一個劇本,但很好奇,如果任何人做了這樣的事情之前,或者有更好的辦法來解決這個問題。
我結束了創建一個腳本來顛覆同步到收穫。我們不必同步其他方式,但改變腳本來做這件事並不難。您可以在此處查看腳本 - >http://developerdad.com/2011/03/28/synchronize-subversion-to-ca-allfusion-harvest/
我們現在正在使用此腳本與我們的Jenkins(以前的Hudson)CI服務器創建一個新的Harvest軟件包(由Jenkins設置的%JOB_NAME%變量命名)每個生產版本都運行。
更新
該網站已經漲有跌,所以這裏的腳本:
@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
我知道,與顛覆,你可以配置服務器運行一個腳本在每次提交,這可能是能夠呼籲CA收穫一些功能。
,如果你使用的是Eclipse將使用Mylyn的整合另一種選擇。 Mylyn與Subversion集成,我認爲CA Harvest有一個Eclipse插件 - 也許它們將很好地協同工作?
@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
...顯然不是! – cwash 2009-06-23 02:57:16
如果你拿出一個很好的回答,請張貼起來。 :-) – 2010-03-16 12:46:52