mirror of
				https://github.com/cmderdev/cmder.git
				synced 2025-10-31 17:32:27 +08:00 
			
		
		
		
	Updated the HG prompt (#2002)
Per our email discussion, I have updated the HG prompt code to use the '-ib' option to 'hg id' so the branch name is always available, regardless of the state of the working copy.
This commit is contained in:
		
				
					committed by
					
						 Benjamin Staneck
						Benjamin Staneck
					
				
			
			
				
	
			
			
			
						parent
						
							524fce25ab
						
					
				
				
					commit
					961f38a399
				
			
							
								
								
									
										20
									
								
								vendor/clink.lua
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/clink.lua
									
									
									
									
										vendored
									
									
								
							| @@ -324,15 +324,19 @@ local function hg_prompt_filter() | |||||||
|             dirty = "\x1b[31;1m", |             dirty = "\x1b[31;1m", | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         -- 'hg id' gives us BOTH the branch name AND an indicator that there |         -- 'hg id -ib' gives us BOTH the branch name AND an indicator that there | ||||||
|         -- are uncommitted changes, in one fast(er) call |         -- are uncommitted changes, in one fast(er) call compared to "hg status" | ||||||
|         local pipe = io.popen("hg id 2>&1") |         local pipe = io.popen("hg id -ib 2>&1") | ||||||
|         local output = pipe:read('*all') |         local output = pipe:read('*all') | ||||||
|         local rc = { pipe:close() } |         local rc = { pipe:close() } | ||||||
|  |  | ||||||
|  |         -- strip the trailing newline from the branch name | ||||||
|  |         local n = #output | ||||||
|  |         while n > 0 and output:find("^%s", n) do n = n - 1 end | ||||||
|  |         output = output:sub(1, n) | ||||||
|  |  | ||||||
|         if output ~= nil and |         if output ~= nil and | ||||||
|            string.sub(output,1,7) ~= "abort: " and             -- not an HG working copy |            string.sub(output,1,7) ~= "abort: " and             -- not an HG working copy | ||||||
|            string.sub(output,1,12) ~= "000000000000" and       -- empty wc (needs update) |  | ||||||
|            (not string.find(output, "is not recognized")) then -- 'hg' not in path |            (not string.find(output, "is not recognized")) then -- 'hg' not in path | ||||||
|             local color = colors.clean |             local color = colors.clean | ||||||
|             -- split elements on space delimiter |             -- split elements on space delimiter | ||||||
| @@ -342,8 +346,12 @@ local function hg_prompt_filter() | |||||||
|             end |             end | ||||||
|             -- if the repo hash ends with '+', the wc has uncommitted changes |             -- if the repo hash ends with '+', the wc has uncommitted changes | ||||||
|             if string.sub(items[1], -1, -1) == "+" then color = colors.dirty end |             if string.sub(items[1], -1, -1) == "+" then color = colors.dirty end | ||||||
|             -- substitute the branch in directly -- already WITH parentheses.  :) |             -- substitute the branch in directly | ||||||
|             result = color .. items[2] -- string.sub(items[2], 1, string.len(items[2]) - 1) |             if items[2] ~= nil then | ||||||
|  |                 result = color .. "(" .. items[2] .. ")" | ||||||
|  |             else | ||||||
|  |                 result = color .. "*" | ||||||
|  |             end | ||||||
|         end |         end | ||||||
|     end |     end | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user