`

svn自动从主干合入代码到分支bat命令

 
阅读更多
echo off
setlocal enabledelayedexpansion&pushd %~dp0

rem 这里假设主干和分支的根目录为:Onetrack

rem 填写在本次提交代码中,你提交了的任一文件之一,注意完成的SVN路径
set oneFile=

rem 你需要合入的Onetrack分支版本,根目录到OneTrack即可
set DestinationURL=

rem 请指定一个临时处理文件的目录
set TMP_DIR=D:\AutoMergeTempDirectory

rem 你提交的代码onetrack,SVN路径,来自oneFile
set replace=!oneFile:*/OneTrack=!
set SourceURL=!oneFile:%replace%=!


if exist "%TMP_DIR%\Onetrack" rd /s/q "%TMP_DIR%\Onetrack"
if exist "%TMP_DIR%\Onetrack" (
   echo 无法删除%TMP_DIR%目录,请手动删除
  cmd /c start %TMP_DIR%
   echo.
   pause
   goto end
)
if not exist %TMP_DIR% mkdir %TMP_DIR%

cd /d %TMP_DIR%
svn checkout %DestinationURL% --depth immediates
cd OneTrack
svn checkout %DestinationURL%/GV --depth immediates
svn checkout %DestinationURL%/Common --depth immediates
svn checkout %DestinationURL%/Feature --depth immediates
svn log %oneFile% -v -l1 -q --xml>..\svnCommitLog.xml
for /f "delims=" %%a in ('findstr "action=" %TMP_DIR%\svnCommitLog.xml') do (
set b=%%a
set b=!b:*OneTrack/=!
for /f "tokens=1,2 delims=/" %%i in ("!b!") do (
cd %%i/%%j
svn up --set-depth infinity
cd ..
cd ..
)
)
rem 获取版本号
for /f %%a in ('findstr "revision=" %TMP_DIR%\svnCommitLog.xml') do (
for /f tokens^=1-2*^ delims^=^" %%i in ("%%a") do (
set revision=%%j
)
)
echo %revision%

svn merge -c%revision% --ignore-ancestry %SourceURL% %TMP_DIR%\OneTrack
cmd /c start %TMP_DIR%
:end
pause
分享到:
评论

相关推荐

    SVN分支合并到主干 冲突处理

    合并分支到主干是将分支上的改动整合到主干的过程。这个过程可能涉及多个提交,所以需要确保每次合并都是基于最新的主干代码。合并命令如下: ```shell svn merge https://your-repo-url/branches/branch-name . ``...

    Eclipse svn创建分支、合并、切换讲解

    合并操作是 SVN 中的一种重要操作,通过合并操作,可以将分支中的修改合并到主干中。在 Eclipse 中,合并操作可以通过以下步骤实现: 1. 在分支中进行开发,并且提交,在主干中进行更新。 2. 打开合并,选择类型,...

    SVN主干和分支操作

    - 可以选择从主干合并到分支、从分支合并到主干等不同操作。 - 根据需求选择合并选项,点击“OK”后会显示差异列表供用户确认。 #### 四、实践总结 通过上述步骤,我们可以有效地利用 SVN 进行项目的版本管理和...

    svn分主干合并,让你分主干合并立马搞定

    在提供的示例中,开发人员使用 `svn cp` 命令从主干创建了一个新的分支。这一步骤确保了开发工作可以在不影响主干的情况下进行: ```bash svn cp ...

    svn主干与分支互相合并

    新手看看。高手绕道。主要是关于svn主干与分支互相合并的问题

    Windows下git拉取/推送,SVN更新/提交,maven自动编译打包,angular打包的bat脚本

    例如,`git pull origin master`用来从远程仓库的master分支拉取最新代码,`git push origin master`则将本地更改推送到远程master分支。为了确保身份验证,可以设置Git的全局配置,包括用户名和邮箱。 接下来是SVN...

    bat更新SVN文件

    但最近由于需求变更,每次发布新版本要更新几十个,一个个太麻烦,所以就想用一个批处理文件,即BAT文件自动更新SVN文件,附件是从网上找到的,找了好久才找到,不是本人原他创,共大家分分享。

    SVN 主干(trunk)、分支(branch )、标记(tag)

    资源中有 SVN 主干(trunk)、分支(branch )、标记(tag) 的详细解释,和作用 并带 SVN分支与合并 的详细操作文档(附图)。 SVN分支与合并的总结 1.分支(branche)的创建。 1、分支创建是建立在主干上的。 2、创建...

    SVN分支与主干代码合并.png

    在信息技术飞速发展的今天,为了加快开发的效率,提升各个部门的联动...日益更新的用户需求和不断升级的版本,如何才能做到灵活控制版本,今天我们请到了智博创享web端开发大牛卢建敏,他将分享使用SVN的心得和经验。

    SVN分支的合并和同步

    SVN分支的合并和同步 SVN(Subversion)是一种版本...* 不管是从trunk合并到分支还是最终从分支合并回trunk,在每次合并前最好先update,然后将本地的修改先全部commit,保护好现场,万一合并不理想随时都可以revert

    svn 自动 lock 自动锁

    "svn 自动 lock 自动锁"的主题涉及到如何在svn操作中实现文件的自动锁定,以优化多用户同时编辑同一文件时的效率。在多人共享代码库的环境中,文件锁定机制可以避免冲突,确保只有一个用户能够修改特定文件,其他...

    自动获取SVN代码并编译代码 以及自动部署方案

    2. **自动获取代码**:利用脚本(通常为bash、Python或Windows批处理脚本)定期检查 SVN 仓库的更新,当有新的提交时,自动将代码拉取到本地。这一步通常被称为“拉取”或“更新”,它确保开发人员始终拥有最新的源...

    SVN一份提交往多个分支合入.docx

    这样,你就可以有效地将同一份代码修改合入到多个SVN分支中,避免了重复劳动,提高了工作效率。值得注意的是,虽然这种方法适用于大部分情况,但仍然需要根据项目的具体规则和需求进行适当的调整。在实际操作中,...

    SVN自动提交脚本 For Windows

    SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入

    svn分支管理

    分支合并到主干是svn分支管理的最后一步。在分支合并到主干中,我们需要按照以下步骤进行: 1. 将分支中改动的代码全部提交。 2. 切换到trunk。 3. 右击项目->Team->合并,选择merge two different trees,然后输入...

    SVN创建、合并与切换分支操作详解

    2. 使用SVN命令(如`svn copy`)或客户端工具来复制`trunk`到新的分支路径。 3. 更新你的工作副本到新创建的分支,此时你就可以在这个分支上进行独立的开发了。 ### 合并分支 合并分支的步骤: 1. 选择要合并的分支...

    SVN自动更新提交脚本.zip(windows版本)

    SVN自动更新功能允许用户定期从服务器获取最新的项目代码,确保本地工作副本与远程仓库同步。这在多个人协作的团队中尤其重要,因为其他人可能随时在服务器上进行提交。脚本通过执行`svn update`命令实现这一功能,...

    SVN自动备份代码/文档功能

    在企业环境中,确保代码和文档的安全性至关重要,因此实施SVN自动备份功能是必要的。本文将详细解释如何配置和使用SVN自动备份,以及如何利用Windows计划任务实现定期备份。 首先,我们需要理解SVN自动备份的基本...

    SVN 拉分支及合并演示

    拉分支(或称创建分支)是将主干(trunk)上的代码复制到一个新的分支(branch)中。在 SVN 中,分支是主干的一个独立副本,允许开发人员在不影响主线的情况下进行实验性更改。当在主干上创建 `new_trunk_main.txt` ...

Global site tag (gtag.js) - Google Analytics