map: Support remotes with /~/ and /~user/
More accurately, it was supported already when map uses git-annex-shell, but not when it does not. Note that the user name cannot be shell escaped using git-annex's current approach for shell escaping. I tried and some shells like dash cannot cd ~'joey'. Rest of directory is still shell escaped, not for security but in case a directory has a space or other weird character.
This commit is contained in:
		
					parent
					
						
							
								826d5887b2
							
						
					
				
			
			
				commit
				
					
						71b216d1fb
					
				
			
		
					 3 changed files with 14 additions and 5 deletions
				
			
		| 
						 | 
					@ -195,11 +195,17 @@ tryScan r
 | 
				
			||||||
		configlist =
 | 
							configlist =
 | 
				
			||||||
			onRemote r (pipedconfig, Nothing) "configlist" []
 | 
								onRemote r (pipedconfig, Nothing) "configlist" []
 | 
				
			||||||
		manualconfiglist = do
 | 
							manualconfiglist = do
 | 
				
			||||||
			let sshcmd =
 | 
					 | 
				
			||||||
				"cd " ++ shellEscape(Git.workTree r) ++ " && " ++
 | 
					 | 
				
			||||||
				"git config --list"
 | 
					 | 
				
			||||||
			sshparams <- sshToRepo r [Param sshcmd]
 | 
								sshparams <- sshToRepo r [Param sshcmd]
 | 
				
			||||||
			liftIO $ pipedconfig "ssh" sshparams
 | 
								liftIO $ pipedconfig "ssh" sshparams
 | 
				
			||||||
 | 
								where
 | 
				
			||||||
 | 
									sshcmd = cddir ++ " && " ++
 | 
				
			||||||
 | 
										"git config --list"
 | 
				
			||||||
 | 
									dir = Git.workTree r
 | 
				
			||||||
 | 
									cddir
 | 
				
			||||||
 | 
										| take 2 dir == "/~" =
 | 
				
			||||||
 | 
											let (userhome, reldir) = span (/= '/') (drop 1 dir)
 | 
				
			||||||
 | 
											in "cd " ++ userhome ++ " && cd " ++ shellEscape (drop 1 reldir)
 | 
				
			||||||
 | 
										| otherwise = "cd " ++ shellEscape dir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		-- First, try sshing and running git config manually,
 | 
							-- First, try sshing and running git config manually,
 | 
				
			||||||
		-- only fall back to git-annex-shell configlist if that
 | 
							-- only fall back to git-annex-shell configlist if that
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								debian/changelog
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/changelog
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
git-annex (3.20111108) UNRELEASED; urgency=low
 | 
					git-annex (3.20111111) unstable; urgency=low
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  * Handle a case where an annexed file is moved into a gitignored directory,
 | 
					  * Handle a case where an annexed file is moved into a gitignored directory,
 | 
				
			||||||
    by having fix --force add its change.
 | 
					    by having fix --force add its change.
 | 
				
			||||||
| 
						 | 
					@ -7,8 +7,9 @@ git-annex (3.20111108) UNRELEASED; urgency=low
 | 
				
			||||||
    for files that are already present.
 | 
					    for files that are already present.
 | 
				
			||||||
  * Automatically fix up badly formatted uuid.log entries produced by
 | 
					  * Automatically fix up badly formatted uuid.log entries produced by
 | 
				
			||||||
    3.20111105, whenever the uuid.log is changed (ie, by init or describe).
 | 
					    3.20111105, whenever the uuid.log is changed (ie, by init or describe).
 | 
				
			||||||
 | 
					  * map: Support remotes with /~/ and /~user/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 -- Joey Hess <joeyh@debian.org>  Mon, 07 Nov 2011 18:08:42 -0400
 | 
					 -- Joey Hess <joeyh@debian.org>  Fri, 11 Nov 2011 13:44:18 -0400
 | 
				
			||||||
 | 
					
 | 
				
			||||||
git-annex (3.20111107) unstable; urgency=low
 | 
					git-annex (3.20111107) unstable; urgency=low
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,3 +42,5 @@ map` works too:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ok
 | 
					    ok
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> [[fixed|done]] --[[Joey]] 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue