Update revision.h if branch unmatch not only revision [ci skip]

This commit is contained in:
Nobuyoshi Nakada 2024-05-08 21:39:32 +09:00
parent ba062a6231
commit 5a332940ed
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
2 changed files with 13 additions and 7 deletions

View File

@ -429,14 +429,19 @@ endif
ifeq ($(HAVE_GIT),yes)
REVISION_LATEST := $(shell $(CHDIR) $(srcdir) && $(GIT) log -1 --format=%H 2>/dev/null)
BRANCH_LATEST := $(shell $(CHDIR) $(srcdir) && $(GIT) symbolic-ref --short HEAD 2>/dev/null)
else
REVISION_LATEST := update
BRANCH_LATEST :=
endif
REVISION_IN_HEADER := $(shell sed '/^\#define RUBY_FULL_REVISION "\(.*\)"/!d;s//\1/;q' $(wildcard $(srcdir)/revision.h revision.h) /dev/null 2>/dev/null)
ifeq ($(REVISION_IN_HEADER),)
REVISION_IN_HEADER := none
endif
ifneq ($(REVISION_IN_HEADER),$(REVISION_LATEST))
revision.h := $(wildcard $(srcdir)/revision.h revision.h)
REVISION_IN_HEADER := $(if $(revision.h),\
$(shell sed '/^\#define RUBY_FULL_REVISION "\(.*\)"/!d;s//\1/;q' $(revision.h)))
BRANCH_IN_HEADER := $(if $(revision.h),\
$(shell sed '/^\#define RUBY_BRANCH_NAME \(".*"\)/!d;s//\1/;s,.* // ,,;s/"//g;q' $(revision.h)))
REVISION_IN_HEADER := $(if $(REVISION_IN_HEADER),$(REVISION_IN_HEADER),none)
BRANCH_IN_HEADER := $(if $(BRANCH_IN_HEADER),$(BRANCH_IN_HEADER),...)
ifneq ($(REVISION_IN_HEADER):$(BRANCH_IN_HEADER),$(REVISION_LATEST):$(BRANCH_LATEST))
$(REVISION_H): PHONY
endif

View File

@ -256,8 +256,9 @@ class VCS
if branch
e = '..'
name = branch.sub(/\A(.{#{limit-e.size}}).{#{e.size+1},}/o) {$1+e}
name = name.dump.sub(/\\#/, '#')
code << "#define RUBY_BRANCH_NAME #{name}"
(name = name.dump).gsub!(/\\#/, '#')
comment = " // #{branch}" unless name == %["#{branch}"]
code << "#define RUBY_BRANCH_NAME #{name}#{comment}"
end
if title
title = title.dump.sub(/\\#/, '#')