Go最全定制repo(不再切换python和google源)(1),程序员必学

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 有的项目用的是repo2有的项目用的是repo3,每次都要去确认,然后选择用哪个

由于repo分别有python2.7和python3+的版本,在文章下面我们统称为repo2和repo3

各用各的repo

repo本质上是一个python代码编译出的linux二进制文件。

如果使用apt来安装repo,将会默认安装在usr/bin/

在linux服务器中,如果有用户更新、替换了repo,甚至切换了python,那可能会影响另一个用户的行为。

所以解决方案是:

git clone git@xxx.net:/git-repo.git
cd git-repo/
mkdir ~/bin/
cp repo ~/bin/
chmod a+x ~/bin/repo

这样就互不干涉,比如用户abc,用的repo就在/home/abc/bin/repo下面

并且将这个bin加入环境变量PATH:

PATH=~/bin:$PATH

由于repo有2和3两个版本,

如果适用python2,我们就命名为repo2;

如果适用python3,我们就命名为repo3;

下面我们会讲解如何解决不同的repo要使用不同的python版本的问题。

git clone git@xxx.net:/git-repo2.git
cd git-repo2/
mkdir ~/bin/
cp repo ~/bin/repo2
chmod a+x ~/bin/repo2

git clone git@xxx.net:/git-repo3.git
cd git-repo3/
mkdir ~/bin/
cp repo ~/bin/repo3
chmod a+x ~/bin/repo3

定制repo2/repo3源码

repo每次都会拉取更新最新的repo版本,但是很多内容的更新,并不一定对我们普通工程师有影响。

所以,提出了一个大胆的想法,将repo单独领出来,建一个自己的仓库,而不去goole的源码地址拉取,不然国内老提示无法访问。

以下是本人的仓库

https://github.com/KingofHubGit/git-repo2

https://github.com/KingofHubGit/git-repo3

对于google官方的源码做了以下几处修改:

  • 修改每次拉取的源为我自己的github地址:
REPO_URL = "git@github.com:KingofHubGit/git-repo3.git"

  • 修改每次拉取的源为我自己的github分支:
REPO_REV = "main"

由于早期项目都是默认master分支,现在改为main分支了。所以此处要更新。

  • 使用repo过程中,发现python脚本不对,我们就会使用以下命令:
sudo update-alternatives --config python

如果老是切换python版本,这样会影响别人,影响android源码的编译

所以针对于repo3,将python环境变量改为

#!/usr/bin/env python3

针对于repo2,将python环境变量改为

#!/usr/bin/env python2

  • 虽然github国内可以访问,也经常抽搐,可以改成gitee。

最根本的方法是直接不要再拉取最新的源码啦!

默认关闭拉取源码:

group.add_option(
        "--no-repo-verify",
        dest="repo\_verify",
        default=False,
        action="store\_false",
        help="do not verify repo source code",
    )
    
    
    def check\_repo\_verify(repo_verify=False, quiet=False):

自动识别repo2/repo3项目

有了上面的定制化修改,不用再切换python版本啦!

但如果项目A的源码用repo2, 项目B的源码用了repo3,那可咋整啊,每次repo2和repo3要改来改去,最初的repo呢?

针对于这个,这里提出了一个妙招:

可以在~/.bashrc下面增加一个repo的函数方法,用于判断识别项目是repo2还是repo3,然后调用对应的repo:

repo(){
	#echo "$@"
	#确认已经是repo项目了
    if [ -f "./.repo/repo/repo" ]; then
    	#判断是否为repo2
    	is\_repo2=`grep 'MIN\_PYTHON\_VERSION.\*2,' ./.repo/repo/repo | wc -l`
    	#echo "is\_repo2="$is\_repo2
        if [ "$is\_repo2" == "1" ];then 
        	echo "repo2 working"
        	#调用~/bin/repo2
    		eval "~/bin/repo2 $@ "
    	else
    		echo "repo3 working"
    		#调用~/bin/repo3
    		eval "~/bin/repo3 $@"
    	fi
    else
        #默认使用~/bin/repo3
    	echo "repo3 working"
    	eval "~/bin/repo3 $@"
    fi
}

完整解决方案:

  • 拉取repo2
git clone git@github.com:KingofHubGit/git-repo2.git

cd git-repo2/
mkdir ~/bin/
PATH=~/bin:$PATH
cp repo ~/bin/repo2
chmod a+x ~/bin/repo2

  • 拉取repo3

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值