fix breakage caught by test suite
Can't use show-ref --tags --branches, as that omits remote branches. Instead, filter out the synced refs directly.
This commit is contained in:
parent
240711d1ae
commit
084aba8aaf
3 changed files with 13 additions and 14 deletions
|
@ -138,7 +138,7 @@ pushToRemotes threadname now st mpushmap remotes = do
|
||||||
refspec b = concat
|
refspec b = concat
|
||||||
[ s
|
[ s
|
||||||
, ":"
|
, ":"
|
||||||
, "refs" </> "synced" </> fromUUID u </> s
|
, "refs/synced/" ++ fromUUID u ++ "/" ++ s
|
||||||
]
|
]
|
||||||
where s = show $ Git.Ref.base b
|
where s = show $ Git.Ref.base b
|
||||||
|
|
||||||
|
|
|
@ -251,16 +251,15 @@ withKeysReferencedInGit a = do
|
||||||
rs <- relevantrefs <$> showref
|
rs <- relevantrefs <$> showref
|
||||||
forM_ rs (withKeysReferencedInGitRef a)
|
forM_ rs (withKeysReferencedInGitRef a)
|
||||||
where
|
where
|
||||||
{- List heads and tags, but not other refs used in syncing. -}
|
showref = inRepo $ Git.Command.pipeRead [Param "show-ref"]
|
||||||
showref = inRepo $ Git.Command.pipeRead
|
|
||||||
[Param "show-ref", Param "--heads", Param "--tags"]
|
|
||||||
relevantrefs = map (Git.Ref . snd) .
|
relevantrefs = map (Git.Ref . snd) .
|
||||||
nubBy uniqref .
|
nubBy uniqref .
|
||||||
filter ourbranches .
|
filter ourbranches .
|
||||||
map (separate (== ' ')) . lines
|
map (separate (== ' ')) . lines
|
||||||
uniqref (x, _) (y, _) = x == y
|
uniqref (x, _) (y, _) = x == y
|
||||||
ourbranchend = '/' : show Annex.Branch.name
|
ourbranchend = '/' : show Annex.Branch.name
|
||||||
ourbranches (_, b) = not $ ourbranchend `isSuffixOf` b
|
ourbranches (_, b) = not (ourbranchend `isSuffixOf` b)
|
||||||
|
&& not ("refs/synced/" `isPrefixOf` b)
|
||||||
|
|
||||||
withKeysReferencedInGitRef :: (Key -> Annex ()) -> Git.Ref -> Annex ()
|
withKeysReferencedInGitRef :: (Key -> Annex ()) -> Git.Ref -> Annex ()
|
||||||
withKeysReferencedInGitRef a ref = do
|
withKeysReferencedInGitRef a ref = do
|
||||||
|
|
18
test.hs
18
test.hs
|
@ -475,33 +475,33 @@ test_unused = "git-annex unused/dropunused" ~: intmpclonerepo $ do
|
||||||
sha1annexedfilekey <- annexeval $ findkey sha1annexedfile
|
sha1annexedfilekey <- annexeval $ findkey sha1annexedfile
|
||||||
git_annex "get" [annexedfile] @? "get of file failed"
|
git_annex "get" [annexedfile] @? "get of file failed"
|
||||||
git_annex "get" [sha1annexedfile] @? "get of file failed"
|
git_annex "get" [sha1annexedfile] @? "get of file failed"
|
||||||
checkunused []
|
checkunused [] "after get"
|
||||||
boolSystem "git" [Params "rm -q", File annexedfile] @? "git rm failed"
|
boolSystem "git" [Params "rm -q", File annexedfile] @? "git rm failed"
|
||||||
checkunused []
|
checkunused [] "after rm"
|
||||||
boolSystem "git" [Params "commit -q -m foo"] @? "git commit failed"
|
boolSystem "git" [Params "commit -q -m foo"] @? "git commit failed"
|
||||||
checkunused []
|
checkunused [] "after commit"
|
||||||
-- unused checks origin/master; once it's gone it is really unused
|
-- unused checks origin/master; once it's gone it is really unused
|
||||||
boolSystem "git" [Params "remote rm origin"] @? "git remote rm origin failed"
|
boolSystem "git" [Params "remote rm origin"] @? "git remote rm origin failed"
|
||||||
checkunused [annexedfilekey]
|
checkunused [annexedfilekey] "after origin branches are gone"
|
||||||
boolSystem "git" [Params "rm -q", File sha1annexedfile] @? "git rm failed"
|
boolSystem "git" [Params "rm -q", File sha1annexedfile] @? "git rm failed"
|
||||||
boolSystem "git" [Params "commit -q -m foo"] @? "git commit failed"
|
boolSystem "git" [Params "commit -q -m foo"] @? "git commit failed"
|
||||||
checkunused [annexedfilekey, sha1annexedfilekey]
|
checkunused [annexedfilekey, sha1annexedfilekey] "after rm sha1annexedfile"
|
||||||
|
|
||||||
-- good opportunity to test dropkey also
|
-- good opportunity to test dropkey also
|
||||||
git_annex "dropkey" ["--force", Types.Key.key2file annexedfilekey]
|
git_annex "dropkey" ["--force", Types.Key.key2file annexedfilekey]
|
||||||
@? "dropkey failed"
|
@? "dropkey failed"
|
||||||
checkunused [sha1annexedfilekey]
|
checkunused [sha1annexedfilekey] ("after dropkey --force " ++ Types.Key.key2file annexedfilekey)
|
||||||
|
|
||||||
git_annex "dropunused" ["1", "2"] @? "dropunused failed"
|
git_annex "dropunused" ["1", "2"] @? "dropunused failed"
|
||||||
checkunused []
|
checkunused [] "after dropunused"
|
||||||
git_annex "dropunused" ["10", "501"] @? "dropunused failed on bogus numbers"
|
git_annex "dropunused" ["10", "501"] @? "dropunused failed on bogus numbers"
|
||||||
|
|
||||||
where
|
where
|
||||||
checkunused expectedkeys = do
|
checkunused expectedkeys desc = do
|
||||||
git_annex "unused" [] @? "unused failed"
|
git_annex "unused" [] @? "unused failed"
|
||||||
unusedmap <- annexeval $ Logs.Unused.readUnusedLog ""
|
unusedmap <- annexeval $ Logs.Unused.readUnusedLog ""
|
||||||
let unusedkeys = M.elems unusedmap
|
let unusedkeys = M.elems unusedmap
|
||||||
assertEqual "unused keys differ"
|
assertEqual ("unused keys differ " ++ desc)
|
||||||
(sort expectedkeys) (sort unusedkeys)
|
(sort expectedkeys) (sort unusedkeys)
|
||||||
findkey f = do
|
findkey f = do
|
||||||
r <- Backend.lookupFile f
|
r <- Backend.lookupFile f
|
||||||
|
|
Loading…
Reference in a new issue