Jenkins中對svn進行操作,可通過插件和腳本兩種方式進行。
- 插件方式
在插件管理中安裝"Subversion Plug-in",即可在任務的"源碼管理"中配置SVN。(插件官方說明地址)
-
- Module:指svn上的模塊。一個任務中可以添加多個不同來源的svn模塊。
- Repository URL:svn代碼倉庫的地址。
- Credentials:訪問svn代碼倉庫所需的賬號密碼。
- Local module directory:svn檢出到本機的文件夾路徑
- Repository depth:需要檢出的文件夾深度,一般設為infinity(配置文件夾下的所有文件,包括子文件夾)具體說明可見插件幫助。
- Ignore externals / Additional Credentials:未用到,不作說明。
- Check-out Strategy:更新svn到本地的幾種方式。建議使用 Use 'svn update' as much as possible, with 'svn revert' before update (先放棄所有本地修改,然后盡可能進行svn更新。避免本地修改導致本地項目與代碼倉庫不一致)
-
- 通過插件進行svn更新的情況,插件可提供若干參數(svn版本號及svn路徑),供其它shell或插件使用,可參考官方文檔(注意當配置了多個模塊時的參數名命名方式):
- 腳本方式(Shell)
- 腳本方式下,只需了解svn所支持的命令列表,即可在shell中自行配置。其自由度相比插件更高,可以方便地對特殊需求進行處理。
- 常用命令包括:
- 檢出 svn checkout
- 更新 svn update
- 取消本地修改 svn revert
- 清理本地項目 svn cleanup
- 向代碼倉庫新增文件 svn add
- 提交到代碼倉庫 svn commit
- 腳本方式下取得svn 版本號可以通過shell的sed命令:
build_svn_version=`svnversion ${clientPath} |sed 's/^.*://' |sed 's/[A-Z]*$//'`
上述語句中${clientPath}為本地svn項目的根目錄(即包含了.svn隱藏文件夾的目錄),build_svn_version存放了取出的svn版本號。