[英]Git fetch tags but missing latest version
最近我升级了我的 gitlab( 8.17.3 -> 12.10.9 )。 升级git后一切正常。
但有时,某些项目无法获取完整标签(缺少最新版本)。 使用 jenkins 时,错误消息是“找不到要构建的任何修订。验证此作业的存储库和分支配置”。
git 客户端版本为:1.7.1.2、1.8.3.1、2.8.4 和 2.22.0
如何重现:
git init test ;
cd test ;
git fetch --tags --progress http://url_to_git/abc.git "+refs/heads/*:refs/remotes/origin/*" --prune
...
From From http://url_to_git/abc.gi
* [new branch] Dev_Long_Br -> origin/Dev_Long_Br
* [new branch] ft_dev_0805_ppt -> origin/ft_dev_0805_ppt
* [new branch] ft_dev_0911 -> origin/ft_dev_0911
* [new branch] master -> origin/master
* [new tag] dev_fiba_dmm_20190302_1028 -> dev_fiba_dmm_20190302_1028
* [new tag] rls_fiba_dmm_20191126 -> rls_fiba_dmm_20191126
结果似乎缺少最新的分支“rls_0929”。 但是等一会儿再试取标签,我得到了最新的分支
git fetch --tags --progress http://url_to_git/abc.git "+refs/heads/*:refs/remotes/origin/*" --
...
From http://url_to_git/abc.git
7501d7d..1a9a602 ft_dev_0911 -> origin/ft_dev_0911
* [new branch] rls_0929 -> origin/rls_0929
如果我删除.git
目录,重新fetch tags
,一切似乎都是正确的。
工作步骤如下:
rm -rf .git
retry fetch
git init; git fetch --tags --progress http://url_to_git/abc.git "+refs/heads/*:refs/remotes/origin/*" --prune
...
From From http://url_to_git/abc.gi
* [new branch] Dev_Long_Br -> origin/Dev_Long_Br
* [new branch] ft_dev_0805_ppt -> origin/ft_dev_0805_ppt
* [new branch] ft_dev_0911 -> origin/ft_dev_0911
* [new branch] master -> origin/master
* [new branch] rls_0929 -> origin/rls_0929
* [new tag] dev_fiba_dmm_20190302_1028 -> dev_fiba_dmm_20190302_1028
* [new tag] rls_fiba_dmm_20191126 -> rls_fiba_dmm_20191126
我用nfs作为存储服务,是不是存储缓存问题 nfs server info:
# rpm -qa|grep nfs
libnfsidmap-0.25-15.el7.x86_64
nfs-utils-1.3.0-0.33.el7_3.x86_64
[root@gitpprdtools-prod34 ~]# service nfs status
Redirecting to /bin/systemctl status nfs.service
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Active: active (exited) since Sat 2020-07-18 00:14:18 CST; 2 months 12 days ago
Main PID: 16701 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
NFS 客户端/gitlab 应用程序服务器信息:
mount|grep git-data
NFS_IP:/var/opt/gitlab/git-data on /var/opt/gitlab/git-data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,soft,proto=tcp,timeo=600,retrans=2,sec=
sys,mountaddr=NFS_IP,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=NFS_IP)
该分支实际存在于远程 git 服务器上。 我怀疑这是一个 nfs 问题,我的 git 服务器是 4 个 git 应用程序服务器,具有一个 vip 并安装相同的 nfs 存储。 发生错误时,客户端真正请求的git服务器具有没有最新分支的nfs缓存。 所以我将我的设置修改为 git doc,但错误继续https://docs.gitlab.com/12.10/ee/administration/high_availability/nfs.html 。
jenkins specify branch to build时出现missing lastest branch错误,错误如下:
Started from command line by jenkinsadmin
Building remotely on docker10-2.64 (C++ docker10 docker) in workspace /data/jenkins/workspace/workspace/Flow_dockerMakePackage_5387053_774
Cloning the remote Git repository
Cloning repository http://git.a.com/b/c.git
> git init /data/jenkins/workspace/workspace/Flow_dockerMakePackage_5387053_774 # timeout=10
Fetching upstream changes from http://git.a.com/b/c.git
> git --version # timeout=10
using GIT_ASKPASS to set credentials root_gitlab
> git fetch --tags --progress http://git.a.com/b/c.git +refs/heads/*:refs/remotes/origin/* # timeout=30
> git config remote.origin.url http://git.a.com/b/c.git # timeout=10
> git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
> git config remote.origin.url http://git.a.com/b/c.git # timeout=10
Cleaning workspace
> git rev-parse --verify HEAD # timeout=10
No valid HEAD. Skipping the resetting
> git clean -fdx # timeout=10
Pruning obsolete local branches
Fetching upstream changes from http://git.a.com/b/c.git
using GIT_ASKPASS to set credentials root_gitlab
> git fetch --tags --progress http://git.a.com/b/c.git +refs/heads/*:refs/remotes/origin/* --prune # timeout=30
> git rev-parse b215fc6cf5a4f431408773e3e05130a72f263546^{commit} # timeout=10
> git rev-parse origin/b215fc6cf5a4f431408773e3e05130a72f263546^{commit} # timeout=10
> git rev-parse b215fc6cf5a4f431408773e3e05130a72f263546^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
谁能帮忙?
您用rls_0929
分支描述了 git 的正常行为,该分支最初在遥控器上不存在,并且是在您的 2 git fetch
调用之间创建的。
是什么因素让你产生了不同的想法?
要查看您期望的分支是否确实存在于您的遥控器上,请检查其内容:
gitlab
因为你的遥控器是一个 gitlab 实例,对吗?)git ls-remote <url> refs/heads/rls_0929
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.