summaryrefslogtreecommitdiff
path: root/GitRepo.hs
Commit message (Collapse)AuthorAge
* more pointless monadic golfingGravatar Joey Hess2011-05-16
|
* Maybe reduction pass 2Gravatar Joey Hess2011-05-15
|
* simplified a bunch of Maybe handlingGravatar Joey Hess2011-05-15
|
* Work around a bug in Network.URI's handling of bracketed ipv6 addresses.Gravatar Joey Hess2011-05-06
|
* Avoid pipeline stall when running git annex drop or fsck on a lot of files.Gravatar Joey Hess2011-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When it's stalled, there are 3 processes: git annex git ls-files git check-attr git-annex stalls trying to write to git check-attr, which stalls trying to write to stdout (read by git-annex). git ls-files does not seem to be involved directly; I've seen the stall when it was still streaming out the file list, and after it had exited and zombified. The read and write are supposed to be handled by two different threads, which pipeBoth forks off, thus avoiding deadlock. But it does deadlock. (Certian signals unblock the deadlock for a while, then it stalls again.) So, this is another case of WTF is the ghc IO manager doing today? I avoid the issue by converting the writer to a separate process. Possibly this was caused by some change in ghc 7 -- I'm offline and cannot verify now, but I'm sure I used to be able to run git annex drop w/o it hanging! And the code does not seem to have changed, except for commit c1dc4079419cff94cca72441d5e67a866110ec7e, which I tried reverting without success. In fact, I reverted all the way back to 0.20110316 and still saw the stall. Update: Minimal test case: import System.Cmd.Utils main = do as <- checkAttr "blah" $ map show [1..100000] sequence $ map (putStrLn . show) as checkAttr attr files = do (_, s) <- pipeBoth "git" params $ unlines files return $ lines s where params = ["check-attr", attr, "--stdin"] Bug filed on ghc in debian, #624389
* Avoid using absolute paths when staging location log, as that can confuse ↵Gravatar Joey Hess2011-04-25
| | | | | | | | | | | git when a remote's path contains a symlink. Closes: #621386 This was a real PITA to fix, since location logs can be staged in both the current repo, as well as in local remote's repos, in which case the cwd will not be in the repo. And git add needs different params in both cases, when absolute paths are not used. In passing, git annex fsck now stages location log fixes.
* fix relativeGravatar Joey Hess2011-04-25
| | | | Not currently used, but was buggy.
* store annex.uuid in bup reposGravatar Joey Hess2011-04-09
|
* some reorg and further remote generalizationGravatar Joey Hess2011-03-27
|
* tweakGravatar Joey Hess2011-03-22
|
* Fix space leak in fsck and drop commands.Gravatar Joey Hess2011-03-22
| | | | | | | | | | | | | | The space leak was somehow caused by this line: absfiles <- mapM absPath files I confess, I don't quite understand why this caused bad buffering, but apparently the whole pipeline from git-ls-files backed up at that point. Happily, rewriting the code to only get the cwd once and use a pure function to calculate absfiles clears it up, and should be a little more efficient in syscalls too.
* Fix support for remotes with '.' in their names.Gravatar Joey Hess2011-03-18
|
* improve GitRepos functions for pulling apart URL to repoGravatar Joey Hess2011-03-05
|
* remove debugging printfGravatar Joey Hess2011-03-03
|
* support git funky remote syntaxesGravatar Joey Hess2011-03-03
| | | | | | * Look for dir.git directories the same as git does. * Support remote urls specified as relative paths. * Support non-ssh remote paths that contain tilde expansions.
* remove unused codeGravatar Joey Hess2011-03-03
|
* avoid failing if a local repo is not currently availableGravatar Joey Hess2011-03-03
| | | | | | The added check if a repo is bare means its config needs to be read, but in this case it cannot be. That means that a repo currently not available is assumed to be non-bare.
* some initial support for local bare reposGravatar Joey Hess2011-03-03
| | | | | | | | | | | This relies on git-annex's behavior of reading the config of local repos. That allows repoIsLocalBare to examine the git config for core.bare. Hopefully, gitAnnexLocation, gitAnnexDir, and gitAnnexObjectDir are only used on local repos. But, I have not audited fully, since they're probably not (see for example copyToRemote). And so, the functions fall back to their old non-bare-aware behavior for non-local repos.
* renameGravatar Joey Hess2011-02-28
|
* use ShellParam typeGravatar Joey Hess2011-02-28
| | | | | So, I have a type checked safe handling of filenames starting with dashes, throughout the code.
* Fix test suite to reap zombies.Gravatar Joey Hess2011-02-13
| | | | | | | | I had not taken into account that the code was written to run git and leave zombies, for performance/laziness reasons, when I wrote the test suite. So rather than the typical 1 zombie process that git-annex develops, test developed dozens. Caused problems on system with low process limits. Added a reap function to GitRepo, that waits for any zombie child processes.
* fix absrepo data lossGravatar Joey Hess2011-02-04
| | | | it was dropping the config map for the repos it changed
* map improvementsGravatar Joey Hess2011-02-03
| | | | | | | | | | | | added uuid.log repos group repos by host avoid displaying most urls display remote names on edges still some bugs
* more accessor functions and better bad url handlingGravatar Joey Hess2011-02-03
|
* add check for unclean treeGravatar Joey Hess2011-02-01
|
* idiomGravatar Joey Hess2011-01-27
|
* add checks that location log files are committedGravatar Joey Hess2011-01-11
| | | | currently failing for move --to
* use concatGravatar Joey Hess2011-01-09
|
* support ssh urls containing "~", and relative user:pathGravatar Joey Hess2010-12-31
|
* use git-annex-shell configlistGravatar Joey Hess2010-12-31
|
* Support scp-style urls for remotes (host:path).Gravatar Joey Hess2010-12-28
|
* Avoid multiple calls to git ls-files when passed eg, "*".Gravatar Joey Hess2010-12-23
|
* Support remotes using git+ssh and ssh+git as protocol. Closes: #607056Gravatar Joey Hess2010-12-14
|
* Support remotes using git+ssh:// as protocol. Closes: #607056Gravatar Joey Hess2010-12-14
|
* Bugfix: Always correctly handle gitattributes when in a subdirectory of the ↵Gravatar Joey Hess2010-11-28
| | | | repository.
* hlint tweaksGravatar Joey Hess2010-11-22
| | | | Remotes.hs next, and also Backend/* and Command/*
* got rid of several more calls to git when finding unlocked filesGravatar Joey Hess2010-11-11
|
* add typeChangedFilesGravatar Joey Hess2010-11-10
|
* hlinted a few filesGravatar Joey Hess2010-11-06
|
* add a stupid test harnessGravatar Joey Hess2010-11-02
|
* clean upGravatar Joey Hess2010-11-02
|
* clean upGravatar Joey Hess2010-11-02
|
* blew several hours on getting the decodeGitFile 100% right with quickcheckGravatar Joey Hess2010-11-02
|
* reorgGravatar Joey Hess2010-11-02
|
* deal with git's insane octal filename encodingGravatar Joey Hess2010-11-02
|
* updatGravatar Joey Hess2010-11-01
|
* fix checkAttr to not deadlock and not need strictnessGravatar Joey Hess2010-11-01
| | | | Yeah, "will never deadlock" is never a good sign in code comments. ;)
* wrote checkAttrGravatar Joey Hess2010-11-01
|
* finished adding support for annex.ssh-optionsGravatar Joey Hess2010-11-01
|
* more Wall cleaningGravatar Joey Hess2010-10-31
|