Merge branch 'master' into ghc7.0
This commit is contained in:
commit
a2f0cd1564
5 changed files with 54 additions and 10 deletions
|
@ -19,6 +19,7 @@ import Control.Monad
|
|||
import qualified Network.Browser as Browser
|
||||
import Network.HTTP
|
||||
import Network.URI
|
||||
import Data.Maybe
|
||||
|
||||
import Utility.SafeCommand
|
||||
import Utility.Path
|
||||
|
@ -87,12 +88,32 @@ get url =
|
|||
|
||||
{- Makes a http request of an url. For example, HEAD can be used to
|
||||
- check if the url exists, or GET used to get the url content (best for
|
||||
- small urls). -}
|
||||
- small urls).
|
||||
-
|
||||
- This does its own redirect following because Browser's is buggy for HEAD
|
||||
- requests.
|
||||
-}
|
||||
request :: URI -> RequestMethod -> IO (Response String)
|
||||
request url requesttype = Browser.browse $ do
|
||||
Browser.setErrHandler ignore
|
||||
Browser.setOutHandler ignore
|
||||
Browser.setAllowRedirects True
|
||||
snd <$> Browser.request (mkRequest requesttype url :: Request_String)
|
||||
request url requesttype = go 5 url
|
||||
where
|
||||
go :: Int -> URI -> IO (Response String)
|
||||
go 0 _ = error "Too many redirects "
|
||||
go n u = do
|
||||
rsp <- Browser.browse $ do
|
||||
Browser.setErrHandler ignore
|
||||
Browser.setOutHandler ignore
|
||||
Browser.setAllowRedirects False
|
||||
snd <$> Browser.request (mkRequest requesttype u :: Request_String)
|
||||
case rspCode rsp of
|
||||
(3,0,x) | x /= 5 -> redir (n - 1) u rsp
|
||||
_ -> return rsp
|
||||
ignore = const $ return ()
|
||||
redir n u rsp = do
|
||||
case retrieveHeaders HdrLocation rsp of
|
||||
[] -> return rsp
|
||||
(Header _ newu:_) ->
|
||||
case parseURIReference newu of
|
||||
Nothing -> return rsp
|
||||
Just newURI -> go n newURI_abs
|
||||
where
|
||||
newURI_abs = fromMaybe newURI (newURI `relativeTo` u)
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
My annex contains several large files that I have unlocked, edited, and committed again, i.e. the annex contains the version history of those files. However, I don't want the history -- keeping the latest version is good enough for me. Running `git annex unused` won't detect those old versions, though, because they aren't unused as old Git revisions still refer to them. So I wonder:
|
||||
|
||||
1. What is the best way to get rid of the old versions of files in the annex?
|
||||
|
||||
2. What is the best way to detect old versions of files in the annex?
|
||||
|
||||
I guess, I could run `git rebase -i` to squash commits to those files into one commit, thereby getting rid of the references to the old copies, but that approach feels awkward and error prone. Is anyone aware of a better way?
|
|
@ -0,0 +1,8 @@
|
|||
[[!comment format=mdwn
|
||||
username="http://peter-simons.myopenid.com/"
|
||||
ip="77.186.179.173"
|
||||
subject="comment 1"
|
||||
date="2012-02-09T18:53:00Z"
|
||||
content="""
|
||||
Sorry for commmenting on my own question ... I think I just figured out that `git annex unused` *does* in fact do what I want. When I tried it, it just didn't show the obsolete versions of the files I edited because I hadn't yet synchronized all repositories, so that was why the obsolete versions were still considered used.
|
||||
"""]]
|
|
@ -0,0 +1,8 @@
|
|||
[[!comment format=mdwn
|
||||
username="http://joey.kitenet.net/"
|
||||
nickname="joey"
|
||||
subject="comment 2"
|
||||
date="2012-02-09T19:42:28Z"
|
||||
content="""
|
||||
Yes, contents are still considered used while tags or refs refer to them. Including remote tracking branches like `remotes/origin/master`
|
||||
"""]]
|
|
@ -8,10 +8,10 @@ The web can be used as a [[special_remote|special_remotes]] too.
|
|||
Now the file is downloaded, and has been added to the annex like any other
|
||||
file. So it can be renamed, copied to other repositories, and so on.
|
||||
|
||||
Note that git-annex assumes that, if the web site does not 404, the file is
|
||||
still present on the web, and this counts as one [[copy|copies]] of the
|
||||
file. So it will let you remove your last copy, trusting it can be
|
||||
downloaded again:
|
||||
Note that git-annex assumes that, if the web site does not 404, and has the
|
||||
right file size, the file is still present on the web, and this counts as
|
||||
one [[copy|copies]] of the file. So it will let you remove your last copy,
|
||||
trusting it can be downloaded again:
|
||||
|
||||
# git annex drop example.com_video.mpeg
|
||||
drop example.com_video.mpeg (checking http://example.com/video.mpeg) ok
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue