anchor.diff:  /datum/getrev
  -	var/originmastercommit
  -	var/commit
  +	var/commit  // git rev-parse HEAD
  +	var/date
  +	var/originmastercommit  // git rev-parse origin/master
   	var/list/testmerge = list()
  -	var/date
   
   /datum/getrev/New()
   	testmerge = world.TgsTestMerges()
  -	log_world("Running /tg/ revision:")
   	var/datum/tgs_revision_information/revinfo = world.TgsRevision()
   	if(revinfo)
   		commit = revinfo.commit
  
positive.code: 	set name = "Show Server Revision"
  	set desc = "Check the current server code revision"
  
  	if(GLOB.round_id)
  		to_chat(src, "<b>Round ID:</b> [GLOB.round_id]")
  	if(GLOB.revdata.originmastercommit)
  		to_chat(src, "<b>Server revision compiled on:</b> [GLOB.revdata.date]")
  		var/prefix = ""
  		if(GLOB.revdata.testmerge.len)
  			to_chat(src, GLOB.revdata.GetTestMergeInfo())
  			prefix = "Based off origin/master commit: "
  		var/pc = GLOB.revdata.originmastercommit
  		to_chat(src, "[prefix]<a href=\"[CONFIG_GET(string/githuburl)]/commit/[pc]\">[copytext(pc, 1, min(length(pc), 11))]</a>")
  	else
  		to_chat(src, "Master revision unknown")
  	to_chat(src, "Revision: [GLOB.revdata.commit]")
  	if(world.TgsAvailable())
  		to_chat(src, "Server tools version: [world.TgsVersion()]")
  	to_chat(src, "<b>Current Informational Settings:</b>")
  	to_chat(src, "Protect Authority Roles From Traitor: [CONFIG_GET(flag/protect_roles_from_antagonist)]")
  	to_chat(src, "Protect Assistant Role From Traitor: [CONFIG_GET(flag/protect_assistant_from_antagonist)]")
  	to_chat(src, "Enforce Human Authority: [CONFIG_GET(flag/enforce_human_authority)]")
  	to_chat(src, "Allow Latejoin Antagonists: [CONFIG_GET(flag/allow_latejoin_antagonists)]")
  	to_chat(src, "Enforce Continuous Rounds: [length(CONFIG_GET(keyed_list/continuous))] of [config.modes.len] roundtypes")
  	to_chat(src, "Allow Midround Antagonists: [length(CONFIG_GET(keyed_list/midround_antag))] of [config.modes.len] roundtypes")
  	if(CONFIG_GET(flag/show_game_type_odds))
  		var/list/probabilities = CONFIG_GET(keyed_list/probability)
  		if(SSticker.IsRoundInProgress())
  
negative.code: 				probs[ctag] = 1
  				prob_sum += probabilities[ctag]
  			if(current_odds_differ)
  				msg += "<b>Game Mode Odds for current round:</b>"
  				for(var/ctag in probs)
  					if(probabilities[ctag] > 0)
  						var/percentage = round(probabilities[ctag] / prob_sum * 100, 0.1)
  						msg += "[ctag] [percentage]%"
  
  		msg += "<b>All Game Mode Odds:</b>"
  		var/sum = 0
  		for(var/ctag in probabilities)
  			sum += probabilities[ctag]
  		for(var/ctag in probabilities)
  			if(probabilities[ctag] > 0)
  				var/percentage = round(probabilities[ctag] / sum * 100, 0.1)
  				msg += "[ctag] [percentage]%"
  	to_chat(src, msg.Join("<br>"))
  