summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-02-08 17:52:32 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-02-08 17:52:32 -0400
commit3ae654254da0449c5ddc4fe16600b76c82e828fe (patch)
tree35a065fb13cd883390db9ca05cf8d946868889c8
parent97d5e23430748487d9b6dea842cdba4e66ba39d9 (diff)
make remotes absolute while spidering
-rw-r--r--Command/Map.hs9
1 files changed, 7 insertions, 2 deletions
diff --git a/Command/Map.hs b/Command/Map.hs
index 1b15e34f6..05c03feaf 100644
--- a/Command/Map.hs
+++ b/Command/Map.hs
@@ -110,7 +110,7 @@ edge umap fullinfo from to =
Dot.graphEdge (nodeId from) (nodeId fullto) edgename
where
-- get the full info for the remote, to get its UUID
- fullto = findfullinfo (absRepo from to)
+ fullto = findfullinfo to
findfullinfo n =
case (filter (same n) fullinfo) of
[] -> n
@@ -140,8 +140,13 @@ spider' (r:rs) known
| any (same r) known = spider' rs known
| otherwise = do
r' <- scan r
+
+ -- The remotes will be relative to r', and need to be
+ -- made absolute for later use.
let remotes = map (absRepo r') (Git.remotes r')
- spider' (rs ++ remotes) (r':known)
+ let r'' = Git.remotesAdd r' remotes
+
+ spider' (rs ++ remotes) (r'':known)
absRepo :: Git.Repo -> Git.Repo -> Git.Repo
absRepo reference r