在我的CI系统上,我需要从我克隆的另一个repo中获取转速计数。 因此,我这样做:
var event = {
summary:summary,
location: location,
description: '',
start: {dateTime: newdatestart.toISOString()},
end: {dateTime: newdateend.toISOString()},
attendees: [
{email: ''},{email: ''}],
// Red background. Use Calendar.Colors.get() for the full list.
colorId: 11
};
event = Calendar.Events.insert(event, calendarId);
这有效,但是我可以执行git clone https://gitlab-ci-token:$CI_JOB_TOKEN@git.my.company/my-project.git temp
cd temp && VERSIONCODE=$(git rev-list master --count) && cd -
而无需克隆整个回购或者甚至根本不能克隆它吗?
答案 0 :(得分:3)
你确切问题的答案是“可能没有”。如果要使用git rev-list --count
,则必须存在要计数的所有提交。当您说git rev-list master --count
时,这将计算从master
可到达的每个提交。如果您的大部分历史记录都可以从主人那里获得,我一点都不会感到惊讶。
(例如,如果您使用gitflow分支模型,那么所有发布版本,所有已完成的修补程序分支,所有已完成的发布分支,dev分支到最新版本,以及所有功能都包含在dev分支中,直到最新版本,都将被计算在内。)
如果此repo的分支工作流由于某种原因确实留下了很多master
无法访问的历史记录,那么您可以使用--single-branch
上的clone
选项,该选项应该提取究竟需要计算什么。
git clone --single-branch --branch master <url>
但是如果你不能限制你需要的提交?从理论上讲,我认为--count
操作可以在没有构成提交内容的所有对象的情况下工作;但是git没有“仅元数据”克隆的概念。任何提取提交的克隆或获取操作都需要内容。所以这不实用。
您最好的选择是,如果包含其他repo的托管软件提供的API可以为您提供信息。