Mercurial Transition Issues

Michael Sperber sperber at deinprogramm.de
Sun Dec 9 11:01:21 EST 2007



"Vin Shelton" <acs at alumni.princeton.edu> writes:

> 2. The CVS date tag has not yet been updated in the version.sh file.
> I propose that whoever dees the weekly merge from xemacs to
> xemacs-beta updates the version.sh with the GMT time at the time of
> the merge.

I've been thinking about that: I think it would be better if we used the
Mercurial changeset ID as xemacs_extra_name.  I've attached a draft
patch to do this, but I'm not sure my approach works on Windows.  Could
you comment and/or try this out?

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
-------------- next part --------------
diff --git a/Makefile.in.in b/Makefile.in.in
--- a/Makefile.in.in
+++ b/Makefile.in.in
@@ -256,7 +256,7 @@ all: Makefile ${GENERATED_HEADERS} ${MAK
 .PHONY: ${SUBDIR} all beta
 
 ## Convenience target for XEmacs beta testers
-beta: elcclean all
+beta: elcclean update-version all
 
 ## Convenience target for XEmacs maintainers
 ## This would run `make-xemacsdist' if I were really confident that everything
@@ -315,6 +315,15 @@ FRC.lisp.finder-inf.el:
 
 ${SUBDIR}: ${SUBDIR_MAKEFILES} ${GENERATED_HEADERS} FRC
 	cd ./$@ && $(MAKE) $(RECURSIVE_MAKE_ARGS) all
+
+## This should be the same code as in configure.ac.
+update-version:
+	cp ${srcdir}/version.sh.in ${srcdir}/version.sh
+	if test -d ${srcdir}/.hg; then \
+	    (cd ${srcdir}; hg identify | cut -d " " -f 1 >> version.sh); \
+	else \
+	    cat ${srcdir}/extra-name >> ${srcdir}/version.sh; \
+	fi
 
 ## Building modules depends on ellcc, found in lib-src.
 modules/sample modules/ldap modules/zlib modules/base64: lib-src
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1176,6 +1176,13 @@ dnl ------------------------------------
 dnl ----------------------------------------
 dnl Find out which version of XEmacs this is
 dnl ----------------------------------------
+dnl This should be the same code as in Makefile.in.in
+cp "$srcdir/version.sh.in" "$srcdir/version.sh"
+if test -d "$srcdir/.hg"; then
+    (cd "$srcdir"; hg identify | cut -d " " -f 1 >> version.sh)
+else
+    cat "$srcdir/extra-name" >> "$srcdir/version.sh"
+fi
 . "$srcdir/version.sh" || exit 1;
 dnl Must do the following first to determine verbosity for AC_DEFINE
 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
diff --git a/extra-name b/extra-name
new file mode 100644
--- /dev/null
+++ b/extra-name
@@ -0,0 +1,1 @@
+a6d7e031a10b
diff --git a/lisp/build-report.el b/lisp/build-report.el
--- a/lisp/build-report.el
+++ b/lisp/build-report.el
@@ -69,7 +69,7 @@ emacs_minor_version\\s-*=\\s-*\\([0-9]+\
 emacs_minor_version\\s-*=\\s-*\\([0-9]+\\)
 emacs_beta_version\\s-*=\\s-*\\([0-9]+\\)?
 xemacs_codename\\s-*=\\s-*\"\\([^\"]+\\)\"\\(
-xemacs_extra_name\\s-*=\\s-*\"\\([^\"]+\\)\"\\)?"
+xemacs_extra_name\\s-*=\\s-*\"?\\([^\"]+\\)\"?\\)?"
   "*REGEXP matching XEmacs Beta Version variable assignments in
 `build-report-version-file' file.  This variable is used by
 `build-report-version-file-data'.")
diff --git a/nt/xemacs.mak b/nt/xemacs.mak
--- a/nt/xemacs.mak
+++ b/nt/xemacs.mak
@@ -73,6 +73,18 @@ BLDROOT=$(MAKEROOT)
 BLDROOT=$(MAKEROOT)
 !endif
 !endif
+
+!if exist $(SRCROOT)/.hg
+version.sh:
+	cd $(SRCROOT)
+	hg identify >> version.sh
+!else
+version.sh:
+	type extra-name >> version.sh
+!endif
+
+
+
 
 # Program name and version
 !include "$(SRCROOT)\version.sh"
diff --git a/src/emacs.c b/src/emacs.c
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -4245,10 +4245,9 @@ Appropriate surrounding whitespace will 
 Appropriate surrounding whitespace will be added, but typically looks best
 if enclosed in parentheses.
 
-A standard use is to indicate the date version.sh was last updated from
-the CVS mainline, where it is automatically given a value similar to
-\"(+CVS-20050221)\".  Developers may also use it to indicate particular
-branches, etc.
+A standard use is to indicate the topmost hash id of the Mercurial
+changeset from which XEmacs was compiled.  Developers may also use it
+to indicate particular branches, etc.
 */ );
 #ifdef XEMACS_EXTRA_NAME
   Vxemacs_extra_name = build_string (XEMACS_EXTRA_NAME);
diff --git a/version.sh b/version.sh.in
rename from version.sh
rename to version.sh.in
--- a/version.sh.in
+++ b/version.sh.in
@@ -8,5 +8,5 @@ infodock_major_version=4
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=8
-xemacs_extra_name="(+CVS-20071205)"
 xemacs_release_date="2007-05-21"
+xemacs_extra_name=
\ No newline at end of file


More information about the XEmacs-Beta mailing list