【repo】创建新branch
来源:互联网 发布:gtv网络棋牌直播 编辑:程序博客网 时间:2024/05/21 18:43
背景
Android BSP,使用repo管理源代码。
共有多个不同平台,如imx6,imx5,zx2000等等。每个平台又分为不同板子。因此有多个分支。
需要基于imx6_m6_vab820
创建新的branch。
当前我的工作目录中,代码处于zx2000_l5_vt6091
branch。
过程
在已有其他分支基础上操作
使工作目录干净,就是删除未跟踪的和已跟踪但是内容改变了的文件。
repo init -b imx6_m6_vab820repo sync
sync完之后,报错,某个项目三方合并失败。查看一些项目git状态,发现分支错乱,就是各种本地分支都指向最新commit,分支跟踪也丢了。
动作失败。
在新建目录下操作
重新在新建目录All下进行。
repo init -u ... -b imx6_m6_vab820repo sync -crepo start --all imx6-m6-vab820repo forall -c "git checkout -b imx6-m6-artigo_a820"
查看分支
~/workspace/01-git/mce-tfs03/Android/All$ repo branch* imx6-m6-artigo_a820 | in all projects imx6-m6-vab820 | in all projects
如何将各项目新branch上传到服务器呢?
首先尝试repo upload:
~/workspace/01-git/mce-tfs03/Android/All$ repo upload> no branches ready for upload
通过git push方式
~/workspace/01-git/mce-tfs03/Android/All$ repo forall -c "git push tfs imx6-m6-artigo_a820"To http://。。。_arm64.git * [new branch] imx6-m6-artigo_a820 -> imx6-m6-artigo_a820Total 0 (delta 0), reused 0 (delta 0)……
为manifest创建新分支
进入.repo/manifests
git checkout -b imx6-m6-artigo_a820
vim default.xml, change revision
repo sync -c
repo sync -cFetching projects: 99% (455/459) Fetching project platform_external_chromium-libpac.gitFetching projects: 100% (459/459), done.Syncing work tree: 100% (459/459), done.libcore/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/android-emulator/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/clang/darwin-x86/host/3.6/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/clang/linux-x86/host/3.6/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/devtools/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/eclipse/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/darwin-x86/arm/arm-eabi-4.8/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/darwin-x86/host/headers/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/arm/arm-eabi-4.8/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/gradle-plugin/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/libs/libedit/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/maven_repo/android/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/misc/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/ndk/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/python/darwin-x86/2.7.5/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/python/linux-x86/2.7.5/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/qemu-kernel/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/sdk/: leaving imx6-m6-artigo_a820; does not track upstreamprebuilts/tools/: leaving imx6-m6-artigo_a820; does not track upstream
查看原因
~/workspace/01-git/mce-tfs03/Android/All/dalvik$ git branch -vv* imx6-m6-artigo_a820 f8ed7d3 Fixes unnecessary multi-merge steps. imx6-m6-vab820 f8ed7d3 [tfs/imx6-m6-vab820] Fixes unnecessary multi-merge steps.~/workspace/01-git/mce-tfs03/Android/All/prebuilts/android-emulator$ git branch -vv* (分离自 b728a25) b728a25 am 353d3bf8: (-s ours) Update emulator binaries to fix platform boot. automerge: 9a73dd3 imx6-m6-artigo_a820 b728a25 am 353d3bf8: (-s ours) Update emulator binaries to fix platform boot. automerge: 9a73dd3 imx6-m6-vab820 b728a25 am 353d3bf8: (-s ours) Update emulator binaries to fix platform boot. automerge: 9a73dd3vim manifest.xml----<manifest> <remote name="tfs" fetch="http://..../tfs/DefaultCollection/Android/_git" /> <remote name="aosp" fetch="git://..../vab-820/aosp" revision="refs/tags/android-6.0.1_r3" /> <default revision="refs/heads/imx6-m6-artigo_a820" remote="tfs" sync-j="4" />…… <project path="platform_testing" name="platform_platform_testing.git" /> <project path="prebuilts/android-emulator" name="platform/prebuilts/android-emulator" groups="pdk-fs" remote="aosp" /> <project path="prebuilts/clang/darwin-x86/host/3.6" name="platform/prebuilts/clang/darwin-x86/host/3.6" groups="pdk,darwin" remote="aosp" /> <project path="prebuilts/clang/linux-x86/host/3.6" name="platform/prebuilts/clang/linux-x86/host/3.6" groups="pdk,linux" remote="aosp" /> <project path="prebuilts/devtools" name="platform/prebuilts/devtools" groups="pdk-fs" remote="aosp" /> <project path="prebuilts/eclipse" name="platform/prebuilts/eclipse" groups="pdk" remote="aosp" /> <project path="prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9" groups="pdk,darwin,arm" remote="aosp" /> <project path="prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" groups="pdk,darwin,arm" remote="aosp" />---- ~/workspace/01-git/mce-tfs03/Android/All/prebuilts/android-emulator$ git remote -vaosp git://.../vab-820/aosp/platform/prebuilts/android-emulator (fetch)aosp git://.../vab-820/aosp/platform/prebuilts/android-emulator (push)
在tfs上查看git对应的branch
原来这些项目都是从另一个服务器fetch来的。
但是迷惑的地方
为什么 repo branch显示所有的projects都在分支imx6-m6-artigo_a820,而实际上某些project却是分离的分支状态。
/workspace/01-git/mce-tfs03/Android/All$ repo branch* imx6-m6-artigo_a820 | in all projects imx6-m6-vab820 | in all projects~/workspace/01-git/mce-tfs03/Android/All/prebuilts/android-emulator$ git branch -vv* (分离自 b728a25) b728a25 am 353d3bf8: (-s ours) Update emulator binaries to fix platform boot. automerge: 9a73dd3 imx6-m6-artigo_a820 b728a25 am 353d3bf8: (-s ours) Update emulator binaries to fix platform boot. automerge: 9a73dd3 imx6-m6-vab820 b728a25 am 353d3bf8: (-s ours) Update emulator binaries to fix platform boot. automerge: 9a73dd3
附录
本地manifest文件使用
What I do in a situation like this is to create a file named local_manifest.xml in the .repo directory which contains information about the projects that will deviate from the branch I’ve already synced. For example:
<?xml version="1.0" encoding="UTF-8"?> <manifest> <remove-project name="platform/bionic"/> <project path="bionic" name="platform/bionic" revision="my-awesome-feature-branch"/> </manifest>
After adding this file I simply repo sync again.
- 【repo】创建新branch
- GitHub之创建自己的新repo
- 图解用sourcetree创建新的branch,进行branch代码merge, cherry pick,reverse commit
- git 创建一个新branch,push到远端后,通过网页可以看到新建的branch
- check android source version && repo change branch
- svn branch 创建分支
- svn branch 创建分支
- git 创建branch分支
- [git]创建分支(branch)以测试或添加新特性
- 创建Repo仓库
- 创建Repo仓库
- CVS 创建Branch和Version
- Cornerstone的创建分支Branch
- google新的repo地址:
- repo新的下载地址
- repo新的下载地址
- repo新的下载地址
- repo新的下载地址
- Bean的装配方式
- iOS--UIGraphicsBeginImageContext系列知识(图片缩放裁剪、改变大小、合并、裁剪部分、保存到媒体库)
- 线程安全和锁优化
- 试一下treeview接收什么样的数据类型
- Java原理 完整java开发中JDBC连接数据库代码和步骤
- 【repo】创建新branch
- 去除表中的重复 记录(多字段)
- bzoj 2822: [AHOI2012]树屋阶梯 (卡特兰数+高精度)
- 这可能是最全的?Redis?集群方案介绍了
- stdin stderr stdout
- Shell中各种括号
- sql server几种读写分离方案对比
- RSA2017:专家揭密影响全球Mirai僵尸有多“狠”?
- 解释型语言与编译型语言的区别