diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index f05714702b..d714e8c0c1 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -191,6 +191,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
if (!current_runlevel)
SetRunLevel(RUNLEVEL_LOBBY)
+ GLOB.revdata = new // It can load revdata now, from tgs or .git or whatever
+
// Sort subsystems by display setting for easy access.
sortTim(subsystems, /proc/cmp_subsystem_display)
// Set world options.
diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm
index 7c214e3a29..7cfac614e6 100644
--- a/code/datums/helper_datums/getrev.dm
+++ b/code/datums/helper_datums/getrev.dm
@@ -1,4 +1,4 @@
-var/global/datum/getrev/revdata = new()
+GLOBAL_DATUM(revdata, /datum/getrev)
/datum/getrev
var/branch
@@ -40,40 +40,46 @@ var/global/datum/getrev/revdata = new()
to_world_log("Revision: [revision]")
/datum/getrev/proc/GetTestMergeInfo(header = TRUE)
+ . = list()
if(!testmerge.len)
- return ""
- . = header ? "The following pull requests are currently test merged:
" : ""
+ return
+ if(header)
+ . += "The following pull requests are currently test merged:"
for(var/line in testmerge)
var/datum/tgs_revision_information/test_merge/tm = line
var/cm = tm.pull_request_commit
var/details = ": '" + html_encode(tm.title) + "' by " + html_encode(tm.author) + " at commit " + html_encode(copytext_char(cm, 1, 11))
if(details && findtext(details, "\[s\]") && (!usr || !usr.client.holder))
continue
- . += "#[tm.number][details]
"
+ . += "#[tm.number][details]"
client/verb/showrevinfo()
set category = "OOC"
set name = "Show Server Revision"
set desc = "Check the current server code revision"
+ if(!GLOB.revdata)
+ to_chat(src, "Please wait until server initializations are complete.")
+ return
+
var/list/msg = list()
- if(revdata.revision)
- msg += "Server revision: [revdata.branch] - [revdata.date]"
+ if(GLOB.revdata.revision)
+ msg += "Server revision: B:[GLOB.revdata.branch] D:[GLOB.revdata.date]"
if(config.githuburl)
- msg += "[revdata.revision]"
+ msg += "Commit: [GLOB.revdata.revision]"
else
- to_chat(src,revdata.revision)
+ msg += "Commit: GLOB.revdata.revision"
else
msg += "Server revision: Unknown"
if(world.TgsAvailable())
var/datum/tgs_version/version = world.TgsVersion()
- msg += "TGS version: [version.raw_parameter]"
+ msg += "TGS version: [version.raw_parameter]"
var/datum/tgs_version/api_version = world.TgsApiVersion()
- msg += "DMAPI version: [api_version.raw_parameter]"
+ msg += "DMAPI version: [api_version.raw_parameter]"
- if(revdata.testmerge.len)
- msg += revdata.GetTestMergeInfo()
+ if(GLOB.revdata.testmerge.len)
+ msg += GLOB.revdata.GetTestMergeInfo()
to_chat(src, msg.Join("
"))
diff --git a/code/game/world.dm b/code/game/world.dm
index 1ffffcbbc5..18568ed60d 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -214,8 +214,8 @@ var/world_topic_spam_protect_time = world.timeofday
return list2params(positions)
else if(T == "revision")
- if(revdata.revision)
- return list2params(list(branch = revdata.branch, date = revdata.date, revision = revdata.revision))
+ if(GLOB.revdata.revision)
+ return list2params(list(branch = GLOB.revdata.branch, date = GLOB.revdata.date, revision = GLOB.revdata.revision))
else
return "unknown"