detect local urls on DOS
This commit is contained in:
parent
49e9296d5f
commit
81cded2b9d
2 changed files with 10 additions and 5 deletions
|
@ -21,6 +21,8 @@ module Git.Construct (
|
||||||
checkForRepo,
|
checkForRepo,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
{-# LANGUAGE CPP #-}
|
||||||
|
|
||||||
import System.Posix.User
|
import System.Posix.User
|
||||||
import qualified Data.Map as M hiding (map, split)
|
import qualified Data.Map as M hiding (map, split)
|
||||||
import Network.URI
|
import Network.URI
|
||||||
|
@ -139,6 +141,9 @@ fromRemoteLocation :: String -> Repo -> IO Repo
|
||||||
fromRemoteLocation s repo = gen $ calcloc s
|
fromRemoteLocation s repo = gen $ calcloc s
|
||||||
where
|
where
|
||||||
gen v
|
gen v
|
||||||
|
#ifdef __WINDOWS__
|
||||||
|
| dosstyle v = fromRemotePath v repo
|
||||||
|
#endif
|
||||||
| scpstyle v = fromUrl $ scptourl v
|
| scpstyle v = fromUrl $ scptourl v
|
||||||
| urlstyle v = fromUrl v
|
| urlstyle v = fromUrl v
|
||||||
| otherwise = fromRemotePath v repo
|
| otherwise = fromRemotePath v repo
|
||||||
|
@ -172,6 +177,11 @@ fromRemoteLocation s repo = gen $ calcloc s
|
||||||
| "/" `isPrefixOf` d = d
|
| "/" `isPrefixOf` d = d
|
||||||
| "~" `isPrefixOf` d = '/':d
|
| "~" `isPrefixOf` d = '/':d
|
||||||
| otherwise = "/~/" ++ d
|
| otherwise = "/~/" ++ d
|
||||||
|
#ifdef __WINDOWS__
|
||||||
|
-- git on Windows will write a path to .git/config with "drive:",
|
||||||
|
-- which is not to be confused with a "host:"
|
||||||
|
dosstyle = hasDrive
|
||||||
|
#endif
|
||||||
|
|
||||||
{- Constructs a Repo from the path specified in the git remotes of
|
{- Constructs a Repo from the path specified in the git remotes of
|
||||||
- another Repo. -}
|
- another Repo. -}
|
||||||
|
|
|
@ -3,11 +3,6 @@ now! --[[Joey]]
|
||||||
|
|
||||||
## status
|
## status
|
||||||
|
|
||||||
* git-annex fails to access a clone located on the local machine
|
|
||||||
(including other drives). It thinks that `c:\clone` is a ssh remote.
|
|
||||||
(When Cygwin's build of git is used to make the clone, it puts the
|
|
||||||
slashes the other way around in .git/config, which also doesn't work
|
|
||||||
for git-annex.)
|
|
||||||
* Does not work with Cygwin's build of git (that git does not consistently
|
* Does not work with Cygwin's build of git (that git does not consistently
|
||||||
support use of DOS style paths, which git-annex uses on Windows).
|
support use of DOS style paths, which git-annex uses on Windows).
|
||||||
Must use the upstream build of git for Windows.
|
Must use the upstream build of git for Windows.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue